Skip to content

Commit 00a01d9

Browse files
committed
Fix GetBindInfo() from DeviceContextVkImpl.cpp returning unexpected PIPELINE_TYPE_INVALID.
1 parent ad65b58 commit 00a01d9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

Tests/DiligentCoreAPITest/src/PipelineResourceSignatureTest.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,15 @@ TEST_F(PipelineResourceSignatureTest, ImmutableSamplers2)
771771
PipelineResourceSignatureDesc Desc;
772772
Desc.Name = "ImmutableSamplers2 - PRS3";
773773
Desc.BindingIndex = 3;
774+
775+
//Note that PipelineTypeFromShaderStages() will return PIPELINE_TYPE_INVALID if we leave Desc.Resources empty,
776+
//which will lead to PIPELINE_TYPE_INVALID from CmmoitShaderResources() -> pResBindingVkImpl->GetPipelineType()
777+
//and causing assert or crash essentially.
778+
const PipelineResourceDesc PlaceholderResource[] = {
779+
{SHADER_TYPE_VERTEX, "Placeholder", 1, SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, SHADER_RESOURCE_VARIABLE_TYPE_STATIC}
780+
};
781+
Desc.Resources = PlaceholderResource;
782+
Desc.NumResources = _countof(PlaceholderResource);
774783
pDevice->CreatePipelineResourceSignature(Desc, &pSignature3);
775784
ASSERT_NE(pSignature3, nullptr);
776785
}

0 commit comments

Comments
 (0)