summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValeri <v19930312@gmail.com>2021-08-19 19:13:46 +0200
committerGitHub <noreply@github.com>2021-08-19 19:13:46 +0200
commitbeb7305b73bff9046b12a4ffb9ae62ab228f5749 (patch)
tree7d2fd53d8f80c4e273522f796b09db9c836c27d9
parentMerge pull request #6885 from v1993/patch-1 (diff)
downloadyuzu-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
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp8
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)};