aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@arm.com>2024-04-09 18:48:29 +0800
committerLorenzo Dal Col <lorenzo@khronosgroup.org>2024-05-09 16:50:01 +0000
commit3bfda27fc44d59bb6b208cca8155fcf0a710b9ed (patch)
treee19b57c92be558cb89aecadd74135de44032d9b1
parenta0861a6f7fda16810fb3d765ef8448a9c52f9ed8 (diff)
downloaddeqp-upstream-vulkan-cts-1.3.5.tar.gz
Fix workgroup size issue in opacity micromap testsupstream-vulkan-cts-1.3.5
Use multiple workgroups instead of a single large workgroup to fit for the general platforms. Components: Vulkan VK-GL-CTS issue: 5061 Affects: dEQP-VK.ray_query.opacity_micromap.* Change-Id: Iab9129cc11d82d235582e9a4514138ded579c663
-rw-r--r--external/vulkancts/modules/vulkan/ray_query/vktRayQueryOpacityMicromapTests.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/external/vulkancts/modules/vulkan/ray_query/vktRayQueryOpacityMicromapTests.cpp b/external/vulkancts/modules/vulkan/ray_query/vktRayQueryOpacityMicromapTests.cpp
index 3302c819d..1ebae2948 100644
--- a/external/vulkancts/modules/vulkan/ray_query/vktRayQueryOpacityMicromapTests.cpp
+++ b/external/vulkancts/modules/vulkan/ray_query/vktRayQueryOpacityMicromapTests.cpp
@@ -112,6 +112,9 @@ struct TestParams
};
static constexpr deUint32 kNumThreadsAtOnce = 1024;
+static constexpr deUint32 kWorkGroupCount = 8;
+static constexpr deUint32 kLocalSize = 128;
+DE_STATIC_ASSERT(kWorkGroupCount * kLocalSize == kNumThreadsAtOnce);
class OpacityMicromapCase : public TestCase
@@ -291,11 +294,11 @@ void OpacityMicromapCase::initPrograms (vk::SourceCollections& programCollection
std::ostringstream comp;
comp
<< sharedHeader.str()
- << "layout(local_size_x=1024, local_size_y=1, local_size_z=1) in;\n"
+ << "layout(local_size_x="<< kLocalSize <<", local_size_y=1, local_size_z=1) in;\n"
<< "\n"
<< "void main()\n"
<< "{\n"
- << " uint index = gl_LocalInvocationID.x;\n"
+ << " uint index = gl_GlobalInvocationID.x;\n"
<< mainLoop.str()
<< "}\n"
;
@@ -954,7 +957,7 @@ tcu::TestStatus OpacityMicromapInstance::iterate (void)
// Dispatch work with ray queries.
vkd.cmdBindPipeline(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline.get());
vkd.cmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout.get(), 0u, 1u, &descriptorSet.get(), 0u, nullptr);
- vkd.cmdDispatch(cmdBuffer, 1u, 1u, 1u);
+ vkd.cmdDispatch(cmdBuffer, kWorkGroupCount, 1u, 1u);
}
// Barrier for the output buffer.