From: Juasheem Sultan Date: Fri, 1 Nov 2019 22:26:14 +0000 (-0700) Subject: Re-align importing dedicated memory to spec X-Git-Tag: upstream/1.3.5~1624^2~3^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5117600d3e791a80584f2da933fc8f28c750d3c;p=platform%2Fupstream%2FVK-GL-CTS.git Re-align importing dedicated memory to spec Re-implemented importing dedicated memory for synchronization test to better align with the Vulkan spec. The current solution makes the assumption that not requiring memory to be dedicated upon import implies that the memory is required to not be dedicated, and this does not appear to align with the spec. Affects: * dEQP-VK.synchronization.signal_order.* Components: Vulkan VK-GL-CTS issue: 2071 Change-Id: Ie1ada8e4966e044ff0d265dce65f4a0680b311aa --- diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp index 6ab78aa..57f1797 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp @@ -265,13 +265,12 @@ MovePtr importAndBindMemory (const DeviceInterface& vkd, VkBuffer buffer, NativeHandle& nativeHandle, VkExternalMemoryHandleTypeFlagBits externalType, - const deUint32 exportedMemoryTypeIndex, - const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags) + const deUint32 exportedMemoryTypeIndex) { const VkMemoryRequirements requirements = getBufferMemoryRequirements(vkd, device, buffer); Move memory; - if ((externalMemoryFeatureFlags & VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT) != 0) + if (!!buffer) memory = importDedicatedMemory(vkd, device, buffer, requirements, externalType, exportedMemoryTypeIndex, nativeHandle); else memory = importMemory(vkd, device, requirements, externalType, exportedMemoryTypeIndex, nativeHandle); @@ -286,13 +285,12 @@ MovePtr importAndBindMemory (const DeviceInterface& vkd, VkImage image, NativeHandle& nativeHandle, VkExternalMemoryHandleTypeFlagBits externalType, - deUint32 exportedMemoryTypeIndex, - const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags) + deUint32 exportedMemoryTypeIndex) { const VkMemoryRequirements requirements = getImageMemoryRequirements(vkd, device, image); Move memory; - if ((externalMemoryFeatureFlags & VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT) != 0) + if (!!image) memory = importDedicatedMemory(vkd, device, image, requirements, externalType, exportedMemoryTypeIndex, nativeHandle); else memory = importMemory(vkd, device, requirements, externalType, exportedMemoryTypeIndex, nativeHandle); @@ -426,8 +424,7 @@ de::MovePtr importResource (const DeviceInterface& vkd, const OperationSupport& writeOp, NativeHandle& nativeHandle, VkExternalMemoryHandleTypeFlagBits externalType, - deUint32 exportedMemoryTypeIndex, - const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags) + deUint32 exportedMemoryTypeIndex) { if (resourceDesc.type == RESOURCE_TYPE_IMAGE) { @@ -480,7 +477,7 @@ de::MovePtr importResource (const DeviceInterface& vkd, }; Move image = createImage(vkd, device, &createInfo); - MovePtr allocation = importAndBindMemory(vkd, device, *image, nativeHandle, externalType, exportedMemoryTypeIndex, externalMemoryFeatureFlags); + MovePtr allocation = importAndBindMemory(vkd, device, *image, nativeHandle, externalType, exportedMemoryTypeIndex); return MovePtr(new Resource(image, allocation, extent, resourceDesc.imageType, resourceDesc.imageFormat, subresourceRange, subresourceLayers)); } @@ -513,8 +510,7 @@ de::MovePtr importResource (const DeviceInterface& vkd, *buffer, nativeHandle, externalType, - exportedMemoryTypeIndex, - externalMemoryFeatureFlags); + exportedMemoryTypeIndex); return MovePtr(new Resource(resourceDesc.type, buffer, allocation, offset, size)); } @@ -666,8 +662,7 @@ public: *m_writeOpSupport, nativeMemoryHandle, m_memoryHandleType, - memoryTypeIndex, - m_externalMemoryFeatureFlags)); + memoryTypeIndex)); iter.writeOp = makeSharedPtr(m_writeOpSupport->build(*operationContextA, *iter.resourceA)); @@ -963,8 +958,6 @@ private: if ((externalProperties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR) == 0) return false; - m_externalMemoryFeatureFlags = externalProperties.externalMemoryProperties.externalMemoryFeatures; - return true; } else @@ -990,8 +983,6 @@ private: || (properties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR) == 0) return false; - m_externalMemoryFeatureFlags = properties.externalMemoryProperties.externalMemoryFeatures; - return true; } } @@ -1004,7 +995,6 @@ private: VkExternalSemaphoreHandleTypeFlagBits m_semaphoreHandleType; PipelineCacheData& m_pipelineCacheData; de::Random m_rng; - VkExternalMemoryFeatureFlags m_externalMemoryFeatureFlags; }; class QueueSubmitSignalOrderSharedTestCase : public TestCase