diff options
author | Fernando S <fsahmkow27@gmail.com> | 2023-01-06 16:06:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 16:06:45 +0100 |
commit | 8b251fc3f60330f1b1311af2d17cdb1ae9874683 (patch) | |
tree | 9c9eca32c58912170c07097d885fc08672cb40a8 /src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | |
parent | Merge pull request #9561 from liamwhite/update-dynarmic (diff) | |
parent | Run clang-format (diff) | |
download | yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar.gz yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar.bz2 yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar.lz yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar.xz yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.tar.zst yuzu-8b251fc3f60330f1b1311af2d17cdb1ae9874683.zip |
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp')
-rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | 8 |
1 files changed, 6 insertions, 2 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 db9c94ce8..0cd87a48f 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 @@ -321,8 +321,12 @@ Id EmitGetAttribute(EmitContext& ctx, IR::Attribute attr, Id vertex) { case IR::Attribute::PositionY: case IR::Attribute::PositionZ: case IR::Attribute::PositionW: - return ctx.OpLoad(ctx.F32[1], AttrPointer(ctx, ctx.input_f32, vertex, ctx.input_position, - ctx.Const(element))); + return ctx.OpLoad( + ctx.F32[1], + ctx.need_input_position_indirect + ? AttrPointer(ctx, ctx.input_f32, vertex, ctx.input_position, ctx.u32_zero_value, + ctx.Const(element)) + : AttrPointer(ctx, ctx.input_f32, vertex, ctx.input_position, ctx.Const(element))); case IR::Attribute::InstanceId: if (ctx.profile.support_vertex_instance_id) { return ctx.OpBitcast(ctx.F32[1], ctx.OpLoad(ctx.U32[1], ctx.instance_id)); |