diff --git a/src/gallium/drivers/r600/sfn/sfn_shader.cpp b/src/gallium/drivers/r600/sfn/sfn_shader.cpp index c87b2138f3f..83a947d26ca 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader.cpp @@ -1078,7 +1078,7 @@ RegisterAccessHandler::RegisterAccessHandler(Shader& shader, nir_intrinsic_instr void RegisterReadHandler::visit(LocalArray& array) { int slots = ir->def.bit_size / 32; - auto pin = ir->def.num_components > 1 ? pin_none : pin_free; + auto pin = ir->def.num_components * slots > 1 ? pin_none : pin_free; for (int i = 0; i < ir->def.num_components; ++i) { for (int s = 0; s < slots; ++s) { int chan = i * slots + s;