Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan.
This commit is contained in:
		| @@ -1306,7 +1306,7 @@ void EmitContext::DefineInputs(const IR::Program& program) { | |||||||
|         subgroup_mask_gt = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGtMaskKHR); |         subgroup_mask_gt = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGtMaskKHR); | ||||||
|         subgroup_mask_ge = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGeMaskKHR); |         subgroup_mask_ge = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGeMaskKHR); | ||||||
|     } |     } | ||||||
|     if (info.uses_subgroup_invocation_id || info.uses_subgroup_shuffles || |     if (info.uses_fswzadd || info.uses_subgroup_invocation_id || info.uses_subgroup_shuffles || | ||||||
|         (profile.warp_size_potentially_larger_than_guest && |         (profile.warp_size_potentially_larger_than_guest && | ||||||
|          (info.uses_subgroup_vote || info.uses_subgroup_mask))) { |          (info.uses_subgroup_vote || info.uses_subgroup_mask))) { | ||||||
|         subgroup_local_invocation_id = |         subgroup_local_invocation_id = | ||||||
| @@ -1411,7 +1411,8 @@ void EmitContext::DefineInputs(const IR::Program& program) { | |||||||
| void EmitContext::DefineOutputs(const IR::Program& program) { | void EmitContext::DefineOutputs(const IR::Program& program) { | ||||||
|     const Info& info{program.info}; |     const Info& info{program.info}; | ||||||
|     const std::optional<u32> invocations{program.invocations}; |     const std::optional<u32> invocations{program.invocations}; | ||||||
|     if (info.stores.AnyComponent(IR::Attribute::PositionX) || stage == Stage::VertexB) { |     if (runtime_info.convert_depth_mode || info.stores.AnyComponent(IR::Attribute::PositionX) || | ||||||
|  |         stage == Stage::VertexB) { | ||||||
|         output_position = DefineOutput(*this, F32[4], invocations, spv::BuiltIn::Position); |         output_position = DefineOutput(*this, F32[4], invocations, spv::BuiltIn::Position); | ||||||
|     } |     } | ||||||
|     if (info.stores[IR::Attribute::PointSize] || runtime_info.fixed_state_point_size) { |     if (info.stores[IR::Attribute::PointSize] || runtime_info.fixed_state_point_size) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user