Add SR_WScaleFactorXY/SR_WScaleFactorZ stubs for Prince of Persia (#5)

Pulled in and cleaned up from Sudachi

Reviewed-on: http://y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion/darktux/torzu/pulls/5
Co-authored-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
Co-committed-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
This commit is contained in:
darktux 2024-04-05 23:04:37 +00:00 committed by Briar
parent e2486f1217
commit 9e3c2d56d6
10 changed files with 46 additions and 2 deletions

View file

@ -382,6 +382,14 @@ U1 IREmitter::IsHelperInvocation() {
return Inst<U1>(Opcode::IsHelperInvocation);
}
U32 IREmitter::SR_WScaleFactorXY() {
return Inst<U32>(Opcode::SR_WScaleFactorXY);
}
U32 IREmitter::SR_WScaleFactorZ() {
return Inst<U32>(Opcode::SR_WScaleFactorZ);
}
F32 IREmitter::YDirection() {
return Inst<F32>(Opcode::YDirection);
}

View file

@ -102,6 +102,8 @@ public:
[[nodiscard]] U32 InvocationInfo();
[[nodiscard]] U32 SampleId();
[[nodiscard]] U1 IsHelperInvocation();
[[nodiscard]] U32 SR_WScaleFactorXY();
[[nodiscard]] U32 SR_WScaleFactorZ();
[[nodiscard]] F32 YDirection();
[[nodiscard]] F32 ResolutionDownFactor();

View file

@ -62,6 +62,8 @@ OPCODE(InvocationId, U32,
OPCODE(InvocationInfo, U32, )
OPCODE(SampleId, U32, )
OPCODE(IsHelperInvocation, U1, )
OPCODE(SR_WScaleFactorXY, U32, )
OPCODE(SR_WScaleFactorZ, U32, )
OPCODE(YDirection, F32, )
OPCODE(ResolutionDownFactor, F32, )
OPCODE(RenderArea, F32x4, )

View file

@ -139,10 +139,10 @@ enum class SpecialRegister : u64 {
return ir.WorkgroupIdZ();
case SpecialRegister::SR_WSCALEFACTOR_XY:
LOG_WARNING(Shader, "(STUBBED) SR_WSCALEFACTOR_XY");
return ir.Imm32(Common::BitCast<u32>(1.0f));
return ir.SR_WScaleFactorXY();
case SpecialRegister::SR_WSCALEFACTOR_Z:
LOG_WARNING(Shader, "(STUBBED) SR_WSCALEFACTOR_Z");
return ir.Imm32(Common::BitCast<u32>(1.0f));
return ir.SR_WScaleFactorZ();
case SpecialRegister::SR_LANEID:
return ir.LaneId();
case SpecialRegister::SR_EQMASK: