summaryrefslogtreecommitdiffstats
path: root/tools/render-test/shader-renderer-util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/shader-renderer-util.cpp')
-rw-r--r--tools/render-test/shader-renderer-util.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/tools/render-test/shader-renderer-util.cpp b/tools/render-test/shader-renderer-util.cpp
index 5b3867848..d42c5c7ef 100644
--- a/tools/render-test/shader-renderer-util.cpp
+++ b/tools/render-test/shader-renderer-util.cpp
@@ -7,13 +7,28 @@ namespace renderer_test {
using namespace Slang;
using Slang::Result;
-void BindingStateImpl::apply(IRenderer* renderer, PipelineType pipelineType)
+void BindingStateImpl::apply(ICommandEncoder* encoder, PipelineType pipelineType)
{
- renderer->setDescriptorSet(
- pipelineType,
- pipelineLayout,
- 0,
- descriptorSet);
+ switch (pipelineType)
+ {
+ case PipelineType::Compute:
+ {
+ ComPtr<IComputeCommandEncoder> computeEncoder;
+ encoder->queryInterface(SLANG_UUID_IComputeCommandEncoder, (void**)computeEncoder.writeRef());
+ computeEncoder->setDescriptorSet(pipelineLayout, 0, descriptorSet);
+ }
+ break;
+ case PipelineType::Graphics:
+ {
+ ComPtr<IRenderCommandEncoder> renderEncoder;
+ encoder->queryInterface(
+ SLANG_UUID_IRenderCommandEncoder, (void**)renderEncoder.writeRef());
+ renderEncoder->setDescriptorSet(pipelineLayout, 0, descriptorSet);
+ }
+ break;
+ default:
+ throw "unknown pipeline type";
+ }
}
/* static */ Result ShaderRendererUtil::generateTextureResource(