From 890f9e15fd8e2c85410c5a45f9a897ccca5f786b Mon Sep 17 00:00:00 2001 From: Ilkka Saarelainen Date: Fri, 12 Feb 2021 13:18:51 +0200 Subject: [PATCH] Fix image format in memory model tests dEQP-VK.memory_model.* tests that use images were using format R32_UINT even if the shader requires float type. This CL changes the image and image view formats to R32_FLOAT in tests that use float types in the shader. Affects: dEQP-VK.memory_model.message_passing.* dEQP-VK.memory_model.write_after_read.* dEQP-VK.memory_model.transitive.* Components: Vulkan VK-GL-CTS issue: 2781 Change-Id: Iea0d980b231c849f47fd0f9fced480b2ae2120ec --- .../memory_model/vktMemoryModelMessagePassing.cpp | 27 +++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp index 369f45d..0456c5d 100755 --- a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp +++ b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp @@ -1175,13 +1175,28 @@ tcu::TestStatus MemoryModelTestInstance::iterate (void) vk, device, allocator, makeBufferCreateInfo(bufferSizes[2], VK_BUFFER_USAGE_TRANSFER_DST_BIT), MemoryRequirement::HostVisible)); } + VkFormat imageFormat; + switch (m_data.dataType) + { + case DATA_TYPE_UINT: + case DATA_TYPE_UINT64: + imageFormat = VK_FORMAT_R32_UINT; + break; + case DATA_TYPE_FLOAT32: + case DATA_TYPE_FLOAT64: + imageFormat = VK_FORMAT_R32_SFLOAT; + break; + default: + TCU_FAIL("Invalid data type."); + } + const VkImageCreateInfo imageCreateInfo = { - VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType; - DE_NULL, // const void* pNext; - (VkImageCreateFlags)0u, // VkImageCreateFlags flags; - VK_IMAGE_TYPE_2D, // VkImageType imageType; - VK_FORMAT_R32_UINT, // VkFormat format; + VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + (VkImageCreateFlags)0u, // VkImageCreateFlags flags; + VK_IMAGE_TYPE_2D, // VkImageType imageType; + imageFormat, // VkFormat format; { DIM*NUM_WORKGROUP_EACH_DIM, // deUint32 width; DIM*NUM_WORKGROUP_EACH_DIM, // deUint32 height; @@ -1206,7 +1221,7 @@ tcu::TestStatus MemoryModelTestInstance::iterate (void) (VkImageViewCreateFlags)0u, // VkImageViewCreateFlags flags; DE_NULL, // VkImage image; VK_IMAGE_VIEW_TYPE_2D, // VkImageViewType viewType; - VK_FORMAT_R32_UINT, // VkFormat format; + imageFormat, // VkFormat format; { VK_COMPONENT_SWIZZLE_R, // VkComponentSwizzle r; VK_COMPONENT_SWIZZLE_G, // VkComponentSwizzle g; -- 2.7.4