Sparse resources: create correct device interface
authorMaciej Jesionowski <maciej.jesionowski@mobica.com>
Wed, 14 Dec 2016 13:44:19 +0000 (14:44 +0100)
committerPyry Haulos <phaulos@google.com>
Thu, 15 Dec 2016 14:08:53 +0000 (09:08 -0500)
Make sure correct function pointers are used with the a VkDevice.
This should make no actual difference on most implementations.

Affected tests:
- dEQP-VK.sparse_resources.*

Change-Id: Id39cf318c4ae24b47135e1f27308985bd20a0009

14 files changed:
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBase.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBase.hpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferMemoryAliasing.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseBinding.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseResidency.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferTests.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseResidency.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesMipmapSparseResidency.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesQueueBindSparseTests.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesShaderIntrinsicsBase.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesShaderIntrinsicsSampled.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesShaderIntrinsicsStorage.cpp

index 6d672bb..177ef36 100644 (file)
@@ -67,7 +67,6 @@ void SparseResourcesBaseInstance::createDeviceSupportingQueues(const QueueRequir
        typedef std::map<deUint32, std::vector<float> >                         QueuePrioritiesMap;
 
        const InstanceInterface&        instance                = m_context.getInstanceInterface();
-       const DeviceInterface&          deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
 
        deUint32 queueFamilyPropertiesCount = 0u;
@@ -156,7 +155,8 @@ void SparseResourcesBaseInstance::createDeviceSupportingQueues(const QueueRequir
        };
 
        m_logicalDevice = createDevice(instance, physicalDevice, &deviceInfo);
-       m_allocator             = de::MovePtr<Allocator>(new SimpleAllocator(deviceInterface, *m_logicalDevice, getPhysicalDeviceMemoryProperties(instance, physicalDevice)));
+       m_deviceDriver  = de::MovePtr<DeviceDriver>(new DeviceDriver(instance, *m_logicalDevice));
+       m_allocator             = de::MovePtr<Allocator>(new SimpleAllocator(*m_deviceDriver, *m_logicalDevice, getPhysicalDeviceMemoryProperties(instance, physicalDevice)));
 
        for (QueuesMap::iterator queuesIter = m_queues.begin(); queuesIter != m_queues.end(); ++queuesIter)
        {
@@ -165,7 +165,7 @@ void SparseResourcesBaseInstance::createDeviceSupportingQueues(const QueueRequir
                        Queue& queue = queuesIter->second[queueNdx];
 
                        VkQueue queueHandle = 0;
-                       deviceInterface.getDeviceQueue(*m_logicalDevice, queue.queueFamilyIndex, queue.queueIndex, &queueHandle);
+                       m_deviceDriver->getDeviceQueue(*m_logicalDevice, queue.queueFamilyIndex, queue.queueIndex, &queueHandle);
 
                        queue.queueHandle = queueHandle;
                }
index 5876dd6..15385b4 100644 (file)
@@ -26,6 +26,7 @@
 #include "vkDefs.hpp"
 #include "vktTestCase.hpp"
 #include "vkRef.hpp"
+#include "vkPlatform.hpp"
 #include "deUniquePtr.hpp"
 
 #include <map>
@@ -64,11 +65,13 @@ protected:
 
        void                                                                                            createDeviceSupportingQueues    (const QueueRequirementsVec& queueRequirements);
        const Queue&                                                                            getQueue                                                (const vk::VkQueueFlags queueFlags, const deUint32 queueIndex) const;
+       const vk::DeviceInterface&                                                      getDeviceInterface                              (void) const { return *m_deviceDriver; }
        vk::VkDevice                                                                            getDevice                                               (void) const { return *m_logicalDevice; }
        vk::Allocator&                                                                          getAllocator                                    (void)           { return *m_allocator; }
 
 private:
        std::map<vk::VkQueueFlags, std::vector<Queue> >         m_queues;
+       de::MovePtr<vk::DeviceDriver>                                           m_deviceDriver;
        vk::Move<vk::VkDevice>                                                          m_logicalDevice;
        de::MovePtr<vk::Allocator>                                                      m_allocator;
 };
index 72f43f8..b5839a6 100644 (file)
@@ -153,7 +153,6 @@ BufferSparseMemoryAliasingInstance::BufferSparseMemoryAliasingInstance (Context&
 tcu::TestStatus BufferSparseMemoryAliasingInstance::iterate (void)
 {
        const InstanceInterface&                instance                = m_context.getInstanceInterface();
-       const DeviceInterface&                  deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice                  physicalDevice  = m_context.getPhysicalDevice();
 
        if (!getPhysicalDeviceFeatures(instance, physicalDevice).sparseBinding)
@@ -171,8 +170,9 @@ tcu::TestStatus BufferSparseMemoryAliasingInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        VkBufferCreateInfo bufferCreateInfo =
        {
index 2bd5f78..1eec940 100644 (file)
@@ -98,7 +98,6 @@ BufferSparseBindingInstance::BufferSparseBindingInstance (Context&                    context,
 tcu::TestStatus BufferSparseBindingInstance::iterate (void)
 {
        const InstanceInterface&        instance                = m_context.getInstanceInterface();
-       const DeviceInterface&          deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
 
        if (!getPhysicalDeviceFeatures(instance, physicalDevice).sparseBinding)
@@ -113,8 +112,9 @@ tcu::TestStatus BufferSparseBindingInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        VkBufferCreateInfo bufferCreateInfo;
 
index de49a70..b5575c5 100644 (file)
@@ -137,7 +137,6 @@ BufferSparseResidencyInstance::BufferSparseResidencyInstance (Context&                      context
 tcu::TestStatus BufferSparseResidencyInstance::iterate (void)
 {
        const InstanceInterface&                 instance                                       = m_context.getInstanceInterface();
-       const DeviceInterface&                   deviceInterface                        = m_context.getDeviceInterface();
        const VkPhysicalDevice                   physicalDevice                         = m_context.getPhysicalDevice();
        const VkPhysicalDeviceProperties physicalDeviceProperties       = getPhysicalDeviceProperties(instance, physicalDevice);
 
@@ -153,8 +152,9 @@ tcu::TestStatus BufferSparseResidencyInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        VkBufferCreateInfo bufferCreateInfo =
        {
index 1f271a7..f1ae906 100644 (file)
@@ -745,7 +745,6 @@ public:
                , m_colorFormat                                 (VK_FORMAT_R8G8B8A8_UNORM)
                , m_colorBufferSize                             (m_renderSize.x() * m_renderSize.y() * tcu::getPixelSize(mapVkFormat(m_colorFormat)))
        {
-               const DeviceInterface&                  vk                      = m_context.getDeviceInterface();
                const VkPhysicalDeviceFeatures  features        = getPhysicalDeviceFeatures(m_context.getInstanceInterface(), m_context.getPhysicalDevice());
 
                if (!features.sparseBinding)
@@ -768,6 +767,7 @@ public:
                        createDeviceSupportingQueues(requirements);
                }
 
+               const DeviceInterface& vk               = getDeviceInterface();
                m_sparseQueue                                   = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0u);
                m_universalQueue                                = getQueue(VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, 0u);
 
@@ -817,15 +817,15 @@ protected:
                           Renderer::SpecializationMap  specMap                         = Renderer::SpecializationMap())
        {
                const UniquePtr<Renderer> renderer(new Renderer(
-                       m_context.getDeviceInterface(), getDevice(), getAllocator(), m_universalQueue.queueFamilyIndex, descriptorSetLayout,
+                       getDeviceInterface(), getDevice(), getAllocator(), m_universalQueue.queueFamilyIndex, descriptorSetLayout,
                        m_context.getBinaryCollection(), "vert", "frag", *m_colorBuffer, m_renderSize, m_colorFormat, Vec4(1.0f, 0.0f, 0.0f, 1.0f), topology, specMap));
 
-               renderer->draw(m_context.getDeviceInterface(), getDevice(), m_universalQueue.queueHandle, *this);
+               renderer->draw(getDeviceInterface(), getDevice(), m_universalQueue.queueHandle, *this);
        }
 
        tcu::TestStatus verifyDrawResult (void) const
        {
-               invalidateMappedMemoryRange(m_context.getDeviceInterface(), getDevice(), m_colorBufferAlloc->getMemory(), 0ull, m_colorBufferSize);
+               invalidateMappedMemoryRange(getDeviceInterface(), getDevice(), m_colorBufferAlloc->getMemory(), 0ull, m_colorBufferSize);
 
                const tcu::ConstPixelBufferAccess resultImage (mapVkFormat(m_colorFormat), m_renderSize.x(), m_renderSize.y(), 1u, m_colorBufferAlloc->getHostPtr());
 
@@ -950,7 +950,7 @@ public:
 
        void rendererDraw (const VkPipelineLayout pipelineLayout, const VkCommandBuffer cmdBuffer) const
        {
-               const DeviceInterface&  vk                              = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                              = getDeviceInterface();
                const VkDeviceSize              vertexOffset    = 0ull;
 
                vk.cmdBindVertexBuffers (cmdBuffer, 0u, 1u, &m_vertexBuffer.get(), &vertexOffset);
@@ -960,7 +960,7 @@ public:
 
        tcu::TestStatus iterate (void)
        {
-               const DeviceInterface&          vk                                      = m_context.getDeviceInterface();
+               const DeviceInterface&          vk                                      = getDeviceInterface();
                MovePtr<SparseAllocation>       sparseAllocation;
                Move<VkBuffer>                          sparseBuffer;
                Move<VkBuffer>                          sparseBufferAliased;
@@ -1226,7 +1226,7 @@ public:
        DrawGridTestInstance (Context& context, const TestFlags flags, const VkBufferUsageFlags usage, const VkDeviceSize minChunkSize)
                : SparseBufferTestInstance      (context, flags)
        {
-               const DeviceInterface&  vk                                                      = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                                                      = getDeviceInterface();
                VkBufferCreateInfo              referenceBufferCreateInfo       = getSparseBufferCreateInfo(usage);
 
                {
@@ -1265,7 +1265,7 @@ public:
        {
                initializeBuffers();
 
-               const DeviceInterface&  vk      = m_context.getDeviceInterface();
+               const DeviceInterface&  vk      = getDeviceInterface();
 
                // Upload to the sparse buffer
                {
@@ -1341,7 +1341,7 @@ public:
                m_context.getTestContext().getLog()
                        << tcu::TestLog::Message << "Drawing a grid of triangles backed by a sparse vertex buffer. There should be no red pixels visible." << tcu::TestLog::EndMessage;
 
-               const DeviceInterface&  vk                              = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                              = getDeviceInterface();
                const deUint32                  vertexCount             = 6 * (GRID_SIZE * GRID_SIZE) / 2;
                VkDeviceSize                    vertexOffset    = 0ull;
 
@@ -1385,7 +1385,7 @@ public:
                m_context.getTestContext().getLog()
                        << tcu::TestLog::Message << "Drawing a grid of triangles from a sparse index buffer. There should be no red pixels visible." << tcu::TestLog::EndMessage;
 
-               const DeviceInterface&  vk                              = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                              = getDeviceInterface();
                const VkDeviceSize              vertexOffset    = 0ull;
                VkDeviceSize                    indexOffset             = 0ull;
 
@@ -1403,7 +1403,7 @@ public:
        void initializeBuffers (void)
        {
                // Vertex buffer
-               const DeviceInterface&  vk                                      = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                                      = getDeviceInterface();
                const VkDeviceSize              vertexBufferSize        = 2 * m_halfVertexCount * sizeof(Vec4);
                                                                m_vertexBuffer          = makeBuffer(vk, getDevice(), makeBufferCreateInfo(vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT));
                                                                m_vertexBufferAlloc     = bindBuffer(vk, getDevice(), getAllocator(), *m_vertexBuffer, MemoryRequirement::HostVisible);
@@ -1453,7 +1453,7 @@ public:
                m_context.getTestContext().getLog()
                        << tcu::TestLog::Message << "Drawing two triangles covering the whole viewport. There should be no red pixels visible." << tcu::TestLog::EndMessage;
 
-               const DeviceInterface&  vk                              = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                              = getDeviceInterface();
                const VkDeviceSize              vertexOffset    = 0ull;
                VkDeviceSize                    indirectOffset  = 0ull;
 
@@ -1468,7 +1468,7 @@ public:
        void initializeBuffers (void)
        {
                // Vertex buffer
-               const DeviceInterface&  vk                                      = m_context.getDeviceInterface();
+               const DeviceInterface&  vk                                      = getDeviceInterface();
                const VkDeviceSize              vertexBufferSize        = 2 * 3 * sizeof(Vec4);
                                                                m_vertexBuffer          = makeBuffer(vk, getDevice(), makeBufferCreateInfo(vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT));
                                                                m_vertexBufferAlloc     = bindBuffer(vk, getDevice(), getAllocator(), *m_vertexBuffer, MemoryRequirement::HostVisible);
index 385c25e..60dc2a2 100644 (file)
@@ -165,7 +165,6 @@ ImageSparseMemoryAliasingInstance::ImageSparseMemoryAliasingInstance (Context&
 tcu::TestStatus ImageSparseMemoryAliasingInstance::iterate (void)
 {
        const InstanceInterface&                        instance                                = m_context.getInstanceInterface();
-       const DeviceInterface&                          deviceInterface                 = m_context.getDeviceInterface();
        const VkPhysicalDevice                          physicalDevice                  = m_context.getPhysicalDevice();
        const tcu::UVec3                                        maxWorkGroupSize                = tcu::UVec3(128u, 128u, 64u);
        const tcu::UVec3                                        maxWorkGroupCount               = tcu::UVec3(65535u, 65535u, 65535u);
@@ -235,8 +234,9 @@ tcu::TestStatus ImageSparseMemoryAliasingInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        // Create sparse image
        const Unique<VkImage> imageRead(createImage(deviceInterface, getDevice(), &imageSparseInfo));
index 186af3b..4a8b652 100644 (file)
@@ -113,7 +113,6 @@ ImageSparseBindingInstance::ImageSparseBindingInstance (Context&                                    context,
 tcu::TestStatus ImageSparseBindingInstance::iterate (void)
 {
        const InstanceInterface&        instance                = m_context.getInstanceInterface();
-       const DeviceInterface&          deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
        VkImageCreateInfo                       imageSparseInfo;
        std::vector<DeviceMemorySp>     deviceMemUniquePtrVec;
@@ -135,8 +134,9 @@ tcu::TestStatus ImageSparseBindingInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        imageSparseInfo.sType                                   = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;                                  //VkStructureType               sType;
        imageSparseInfo.pNext                                   = DE_NULL;                                                                                              //const void*                   pNext;
index 75b102f..d915878 100644 (file)
@@ -196,7 +196,6 @@ ImageSparseResidencyInstance::ImageSparseResidencyInstance (Context&                                        context
 tcu::TestStatus ImageSparseResidencyInstance::iterate (void)
 {
        const InstanceInterface&                        instance = m_context.getInstanceInterface();
-       const DeviceInterface&                          deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice                          physicalDevice = m_context.getPhysicalDevice();
        const VkPhysicalDeviceProperties        physicalDeviceProperties = getPhysicalDeviceProperties(instance, physicalDevice);
        VkImageCreateInfo                                       imageCreateInfo;
@@ -247,8 +246,9 @@ tcu::TestStatus ImageSparseResidencyInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        // Create sparse image
        const Unique<VkImage> sparseImage(createImage(deviceInterface, getDevice(), &imageCreateInfo));
index 775ee39..5df9758 100644 (file)
@@ -125,7 +125,6 @@ MipmapSparseResidencyInstance::MipmapSparseResidencyInstance (Context&                                      conte
 tcu::TestStatus MipmapSparseResidencyInstance::iterate (void)
 {
        const InstanceInterface&        instance                = m_context.getInstanceInterface();
-       const DeviceInterface&          deviceInterface = m_context.getDeviceInterface();
        const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
        VkImageCreateInfo                       imageSparseInfo;
        std::vector<DeviceMemorySp>     deviceMemUniquePtrVec;
@@ -185,8 +184,9 @@ tcu::TestStatus MipmapSparseResidencyInstance::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& computeQueue       = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    computeQueue    = getQueue(VK_QUEUE_COMPUTE_BIT, 0);
 
        // Create sparse image
        const Unique<VkImage> imageSparse(createImage(deviceInterface, getDevice(), &imageSparseInfo));
index 1aa3b7c..da019c5 100644 (file)
@@ -154,7 +154,6 @@ public:
 
        tcu::TestStatus iterate (void)
        {
-               const DeviceInterface&          vk                              = m_context.getDeviceInterface();
                const InstanceInterface&        vki                             = m_context.getInstanceInterface();
                const VkPhysicalDevice          physDevice              = m_context.getPhysicalDevice();
                const Queue*                            sparseQueue             = DE_NULL;
@@ -182,6 +181,8 @@ public:
                        }
                }
 
+               const DeviceInterface&                          vk = getDeviceInterface();
+
                std::vector<SemaphoreSp>                        allSemaphores;
                std::vector<VkSemaphore>                        waitSemaphores;
                std::vector<VkSemaphore>                        signalSemaphores;
index bc6a382..4f5ff4b 100644 (file)
@@ -184,7 +184,6 @@ std::string getOpTypeImageResidency (const ImageType imageType)
 tcu::TestStatus SparseShaderIntrinsicsInstanceBase::iterate (void)
 {
        const InstanceInterface&                        instance                                = m_context.getInstanceInterface();
-       const DeviceInterface&                          deviceInterface                 = m_context.getDeviceInterface();
        const VkPhysicalDevice                          physicalDevice                  = m_context.getPhysicalDevice();
        VkImageCreateInfo                                       imageSparseInfo;
        VkImageCreateInfo                                       imageTexelsInfo;
@@ -251,9 +250,11 @@ tcu::TestStatus SparseShaderIntrinsicsInstanceBase::iterate (void)
                createDeviceSupportingQueues(queueRequirements);
        }
 
+       const DeviceInterface&  deviceInterface = getDeviceInterface();
+
        // Create queues supporting sparse binding operations and compute/graphics operations
-       const Queue& sparseQueue        = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
-       const Queue& extractQueue       = getQueue(getQueueFlags(), 0);
+       const Queue&                    sparseQueue             = getQueue(VK_QUEUE_SPARSE_BINDING_BIT, 0);
+       const Queue&                    extractQueue    = getQueue(getQueueFlags(), 0);
 
        // Create sparse image
        const Unique<VkImage> imageSparse(createImage(deviceInterface, getDevice(), &imageSparseInfo));
index 3761164..acb4db6 100644 (file)
@@ -632,7 +632,7 @@ void SparseShaderIntrinsicsInstanceSampledBase::recordCommands (const VkCommandB
                                                                                                                                const VkImage                           imageResidency)
 {
        const InstanceInterface&                 instance                       = m_context.getInstanceInterface();
-       const DeviceInterface&                   deviceInterface        = m_context.getDeviceInterface();
+       const DeviceInterface&                   deviceInterface        = getDeviceInterface();
        const VkPhysicalDevice                   physicalDevice         = m_context.getPhysicalDevice();
        const VkPhysicalDeviceProperties deviceProperties       = getPhysicalDeviceProperties(instance, physicalDevice);
 
index 17e8bde..5eff476 100644 (file)
@@ -341,7 +341,7 @@ void SparseShaderIntrinsicsInstanceStorage::recordCommands (const VkCommandBuffe
                                                                                                                        const VkImage                           imageResidency)
 {
        const InstanceInterface&        instance                = m_context.getInstanceInterface();
-       const DeviceInterface&          deviceInterface = m_context.getDeviceInterface();
+       const DeviceInterface&          deviceInterface = getDeviceInterface();
        const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
 
        // Check if device supports image format for storage image