mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-20 19:44:46 +00:00
spirv_quad_rect: Skip default attributes
Fixes some crashes
This commit is contained in:
parent
2ef27007b6
commit
32f7b9310c
1 changed files with 13 additions and 1 deletions
|
@ -118,6 +118,10 @@ struct QuadRectListEmitter : public Sirit::Module {
|
|||
|
||||
// Set attributes
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
const auto& input = fs_info.inputs[i];
|
||||
if (input.IsDefault()) {
|
||||
continue;
|
||||
}
|
||||
// vec4 in_paramN3 = interpolate(bary_coord, in_paramN[0], in_paramN[1], in_paramN[2]);
|
||||
const Id v0{OpLoad(vec4_id, OpAccessChain(input_vec4, inputs[i], Int(0)))};
|
||||
const Id v1{OpLoad(vec4_id, OpAccessChain(input_vec4, inputs[i], Int(1)))};
|
||||
|
@ -163,6 +167,10 @@ struct QuadRectListEmitter : public Sirit::Module {
|
|||
OpStore(OpAccessChain(output_vec4, gl_out, invocation_id, Int(0)), in_position);
|
||||
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
const auto& input = fs_info.inputs[i];
|
||||
if (input.IsDefault()) {
|
||||
continue;
|
||||
}
|
||||
// out_paramN[gl_InvocationID] = in_paramN[gl_InvocationID];
|
||||
const Id in_param{OpLoad(vec4_id, OpAccessChain(input_vec4, inputs[i], index))};
|
||||
OpStore(OpAccessChain(output_vec4, outputs[i], invocation_id), in_param);
|
||||
|
@ -191,6 +199,10 @@ struct QuadRectListEmitter : public Sirit::Module {
|
|||
|
||||
// out_paramN = in_paramN[index];
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
const auto& input = fs_info.inputs[i];
|
||||
if (input.IsDefault()) {
|
||||
continue;
|
||||
}
|
||||
const Id param{OpLoad(vec4_id, OpAccessChain(input_vec4, inputs[i], index))};
|
||||
OpStore(outputs[i], param);
|
||||
}
|
||||
|
@ -334,4 +346,4 @@ std::vector<u32> EmitAuxilaryTessShader(AuxShaderType type, const FragmentRuntim
|
|||
return ctx.Assemble();
|
||||
}
|
||||
|
||||
} // namespace Shader::Backend::SPIRV
|
||||
} // namespace Shader::Backend::SPIRV
|
||||
|
|
Loading…
Add table
Reference in a new issue