Implement dynamic buffer offsets. Tests: *dynamic* Bug: b/126330097 Change-Id: I7e4f7e3d921acb72878b7728216415ba66f63ec7 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/28249 Reviewed-by: Nicolas Capens <nicolascapens@google.com> Tested-by: Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Pipeline/ComputeProgram.hpp b/src/Pipeline/ComputeProgram.hpp index 6b63233..e8265bc0 100644 --- a/src/Pipeline/ComputeProgram.hpp +++ b/src/Pipeline/ComputeProgram.hpp
@@ -19,6 +19,7 @@ #include "Reactor/Reactor.hpp" #include "Device/Context.hpp" +#include "Vulkan/VkDescriptorSet.hpp" #include <functional> @@ -48,7 +49,10 @@ // run executes the compute shader routine for all workgroups. // TODO(bclayton): This probably does not belong here. Consider moving. static void run( - Routine *routine, void** descriptorSets, PushConstantStorage const &pushConstants, + Routine *routine, + vk::DescriptorSet::Bindings const &descriptorSetBindings, + vk::DescriptorSet::DynamicOffsets const &descriptorDynamicOffsets, + PushConstantStorage const &pushConstants, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); protected: @@ -60,7 +64,8 @@ struct Data { - void** descriptorSets; + vk::DescriptorSet::Bindings descriptorSets; + vk::DescriptorSet::DynamicOffsets descriptorDynamicOffsets; uint4 numWorkgroups; uint4 workgroupID; PushConstantStorage pushConstants;