Shader clones set stage mask properly;

This commit is contained in:
bjorn 2024-01-07 13:43:22 -08:00
parent 1b1bc182bf
commit d5d75d58e5
1 changed files with 3 additions and 2 deletions

View File

@ -3102,6 +3102,7 @@ Shader* lovrShaderClone(Shader* parent, ShaderFlag* flags, uint32_t count) {
shader->info.flags = flags;
shader->info.flagCount = count;
shader->layout = parent->layout;
shader->stageMask = parent->stageMask;
shader->bufferMask = parent->bufferMask;
shader->textureMask = parent->textureMask;
shader->samplerMask = parent->samplerMask;
@ -5561,8 +5562,8 @@ void lovrPassSetShader(Pass* pass, Shader* shader) {
Shader* previous = pass->pipeline->shader;
if (shader == previous) return;
bool fromCompute = previous && previous->stageMask & COMPUTE;
bool toCompute = shader && shader->stageMask & COMPUTE;
bool fromCompute = previous && (previous->stageMask & COMPUTE);
bool toCompute = shader && (shader->stageMask & COMPUTE);
if (fromCompute ^ toCompute) {
pass->bindingMask = 0;