SPIR-V: Merge two ifs in EmitGetAttribute
This commit is contained in:
		| @@ -298,14 +298,10 @@ Id EmitGetAttribute(EmitContext& ctx, IR::Attribute attr, Id vertex) { | |||||||
|     if (IR::IsGeneric(attr)) { |     if (IR::IsGeneric(attr)) { | ||||||
|         const u32 index{IR::GenericAttributeIndex(attr)}; |         const u32 index{IR::GenericAttributeIndex(attr)}; | ||||||
|         const std::optional<AttrInfo> type{AttrTypes(ctx, index)}; |         const std::optional<AttrInfo> type{AttrTypes(ctx, index)}; | ||||||
|         if (!type) { |         if (!type || !ctx.runtime_info.previous_stage_stores.Generic(index, element)) { | ||||||
|             // Attribute is disabled |             // Attribute is disabled or varying component is not written | ||||||
|             return ctx.Const(element == 3 ? 1.0f : 0.0f); |             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 generic_id{ctx.input_generics.at(index)}; | ||||||
|         const Id pointer{AttrPointer(ctx, type->pointer, vertex, generic_id, ctx.Const(element))}; |         const Id pointer{AttrPointer(ctx, type->pointer, vertex, generic_id, ctx.Const(element))}; | ||||||
|         const Id value{ctx.OpLoad(type->id, pointer)}; |         const Id value{ctx.OpLoad(type->id, pointer)}; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user