diff options
Diffstat (limited to 'src/shader_recompiler')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp index 5cc9d0d39..29da2ef70 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | |||
| @@ -303,7 +303,8 @@ Id EmitGetPatch(EmitContext& ctx, IR::Patch patch) { | |||
| 303 | } | 303 | } |
| 304 | const u32 index{IR::GenericPatchIndex(patch)}; | 304 | const u32 index{IR::GenericPatchIndex(patch)}; |
| 305 | const Id element{ctx.Const(IR::GenericPatchElement(patch))}; | 305 | const Id element{ctx.Const(IR::GenericPatchElement(patch))}; |
| 306 | const Id pointer{ctx.OpAccessChain(ctx.input_f32, ctx.patches.at(index), element)}; | 306 | const Id type{ctx.stage == Stage::TessellationControl ? ctx.output_f32 : ctx.input_f32}; |
| 307 | const Id pointer{ctx.OpAccessChain(type, ctx.patches.at(index), element)}; | ||
| 307 | return ctx.OpLoad(ctx.F32[1], pointer); | 308 | return ctx.OpLoad(ctx.F32[1], pointer); |
| 308 | } | 309 | } |
| 309 | 310 | ||