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.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/render-test/shader-renderer-util.cpp b/tools/render-test/shader-renderer-util.cpp
index c90d197f4..ad3812ae3 100644
--- a/tools/render-test/shader-renderer-util.cpp
+++ b/tools/render-test/shader-renderer-util.cpp
@@ -182,6 +182,7 @@ ComPtr<ISamplerState> _createSamplerState(IRenderer* renderer,
const int textureBindFlags = IResource::BindFlag::NonPixelShaderResource | IResource::BindFlag::PixelShaderResource;
List<IDescriptorSetLayout::SlotRangeDesc> slotRangeDescs;
+ List<Index> mapEntryToSlotRange;
if(addedConstantBuffer)
{
@@ -196,6 +197,7 @@ ComPtr<ISamplerState> _createSamplerState(IRenderer* renderer,
const ShaderInputLayoutEntry& srcEntry = srcEntries[i];
SLANG_ASSERT(srcEntry.onlyCPULikeBinding == false);
+ mapEntryToSlotRange.add(slotRangeDescs.getCount());
IDescriptorSetLayout::SlotRangeDesc slotRangeDesc;
switch (srcEntry.type)
@@ -252,6 +254,10 @@ ComPtr<ISamplerState> _createSamplerState(IRenderer* renderer,
slotRangeDesc.type = DescriptorSlotType::Sampler;
break;
+ case ShaderInputType::Object:
+ // We ignore the `Object` case here, knowing that it is meant for the shader-object path.
+ continue;
+
default:
assert(!"Unhandled type");
return SLANG_FAIL;
@@ -290,7 +296,7 @@ ComPtr<ISamplerState> _createSamplerState(IRenderer* renderer,
{
const ShaderInputLayoutEntry& srcEntry = srcEntries[i];
- auto rangeIndex = i + (addedConstantBuffer ? 1 : 0);
+ auto rangeIndex = mapEntryToSlotRange[i];
switch (srcEntry.type)
{
@@ -407,6 +413,9 @@ ComPtr<ISamplerState> _createSamplerState(IRenderer* renderer,
}
break;
+ case ShaderInputType::Object:
+ break;
+
default:
assert(!"Unhandled type");
return SLANG_FAIL;