diff options
author | Valeri <v19930312@gmail.com> | 2021-08-19 19:13:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-19 19:13:46 +0200 |
commit | beb7305b73bff9046b12a4ffb9ae62ab228f5749 (patch) | |
tree | 7d2fd53d8f80c4e273522f796b09db9c836c27d9 /src/shader_recompiler | |
parent | Merge pull request #6885 from v1993/patch-1 (diff) | |
download | yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar.gz yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar.bz2 yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar.lz yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar.xz yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.tar.zst yuzu-beb7305b73bff9046b12a4ffb9ae62ab228f5749.zip |
Diffstat (limited to 'src/shader_recompiler')
-rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | 8 |
1 files changed, 2 insertions, 6 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 fb8c02a77..14c77f162 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 @@ -298,14 +298,10 @@ Id EmitGetAttribute(EmitContext& ctx, IR::Attribute attr, Id vertex) { if (IR::IsGeneric(attr)) { const u32 index{IR::GenericAttributeIndex(attr)}; const std::optional<AttrInfo> type{AttrTypes(ctx, index)}; - if (!type) { - // Attribute is disabled + if (!type || !ctx.runtime_info.previous_stage_stores.Generic(index, element)) { + // Attribute is disabled or varying component is not written return ctx.Const(element == 3 ? 1.0f : 0.0f); } - if (!ctx.runtime_info.previous_stage_stores.Generic(index, element)) { - // Varying component is not written - return ctx.Const(type && element == 3 ? 1.0f : 0.0f); - } const Id generic_id{ctx.input_generics.at(index)}; const Id pointer{AttrPointer(ctx, type->pointer, vertex, generic_id, ctx.Const(element))}; const Id value{ctx.OpLoad(type->id, pointer)}; |