forked from ShuriZma/suyu
Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan.
This commit is contained in:
parent
2e46110379
commit
f580946b0d
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue