Add testing for sparse D/S/DS images.
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / pipeline / vktPipelineImageUtil.hpp
index 5a3675e..9c6a65c 100644 (file)
@@ -32,6 +32,7 @@
 #include "vkRef.hpp"
 #include "tcuTexture.hpp"
 #include "tcuCompressedTexture.hpp"
+#include "deSharedPtr.hpp"
 
 namespace vkt
 {
@@ -93,6 +94,25 @@ void                                                 uploadTestTexture                       (const vk::DeviceInterface&             vk,
                                                                                                                         const TestTexture&                             testTexture,
                                                                                                                         vk::VkImage                                    destImage);
 
+/*--------------------------------------------------------------------*//*!
+ * Uploads data from a test texture to a destination VK image using sparse
+ * binding.
+ *
+ * The VkImage must be non-multisampled and able to be used as a
+ * destination operand for transfer operations.
+ *//*--------------------------------------------------------------------*/
+void                                                   uploadTestTextureSparse         (const vk::DeviceInterface&                                             vk,
+                                                                                                                        vk::VkDevice                                                                   device,
+                                                                                                                        const vk::VkPhysicalDevice                                             physicalDevice,
+                                                                                                                        const vk::InstanceInterface&                                   instance,
+                                                                                                                        const vk::VkImageCreateInfo&                                   imageCreateInfo,
+                                                                                                                        vk::VkQueue                                                                    queue,
+                                                                                                                        deUint32                                                                               queueFamilyIndex,
+                                                                                                                        vk::Allocator&                                                                 allocator,
+                                                                                                                        std::vector<de::SharedPtr<vk::Allocation> >&   allocations,
+                                                                                                                        const TestTexture&                                                             srcTexture,
+                                                                                                                        vk::VkImage                                                                    destImage);
+
 class TestTexture
 {
 public: