Fix crash when constant buffer is unused by shader but still exists

This commit is contained in:
Wojtek Figat
2025-06-27 19:06:25 +02:00
parent 185151b025
commit 3dc7546dd4
21 changed files with 24 additions and 151 deletions

View File

@@ -53,19 +53,9 @@ bool VolumetricFogPass::setupResources()
if (!_shader->IsLoaded())
return true;
auto shader = _shader->GetShader();
// Validate shader constant buffers sizes
if (shader->GetCB(0)->GetSize() != sizeof(Data))
{
REPORT_INVALID_SHADER_PASS_CB_SIZE(shader, 0, Data);
return true;
}
CHECK_INVALID_SHADER_PASS_CB_SIZE(shader, 0, Data);
// CB1 is used for per-draw info (ObjectIndex)
if (shader->GetCB(2)->GetSize() != sizeof(PerLight))
{
REPORT_INVALID_SHADER_PASS_CB_SIZE(shader, 2, PerLight);
return true;
}
CHECK_INVALID_SHADER_PASS_CB_SIZE(shader, 2, PerLight);
// Cache compute shaders
_csInitialize = shader->GetCS("CS_Initialize");