diff options
author | Alex Shi <alex.shi@arm.com> | 2024-04-09 18:48:29 +0800 |
---|---|---|
committer | Lorenzo Dal Col <lorenzo@khronosgroup.org> | 2024-05-09 16:50:01 +0000 |
commit | 3bfda27fc44d59bb6b208cca8155fcf0a710b9ed (patch) | |
tree | e19b57c92be558cb89aecadd74135de44032d9b1 | |
parent | a0861a6f7fda16810fb3d765ef8448a9c52f9ed8 (diff) | |
download | deqp-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.cpp | 9 |
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. |