Improve shader recompiler

This commit is contained in:
InoriRus
2021-12-13 15:42:20 +10:00
parent ba00d71a33
commit d0c1c8b1c8
6 changed files with 622 additions and 349 deletions
@@ -36,6 +36,7 @@ enum class ShaderInstructionType
BufferLoadFormatXyzw,
BufferStoreDword,
BufferStoreFormatX,
BufferStoreFormatXy,
DsAppend,
DsConsume,
Exp,
@@ -44,6 +45,7 @@ enum class ShaderInstructionType
SAndB32,
SAndn2B64,
SAndSaveexecB64,
SBfmB32,
SBufferLoadDword,
SBufferLoadDwordx16,
SBufferLoadDwordx2,
@@ -52,6 +54,12 @@ enum class ShaderInstructionType
SCbranchExecz,
SCbranchScc0,
SCmpEqU32,
SCmpGeU32,
SCmpGeI32,
SCmpLeU32,
SCmpLgU32,
SCselectB32,
SCselectB64,
SEndpgm,
SLoadDwordx4,
SLoadDwordx8,
@@ -62,7 +70,6 @@ enum class ShaderInstructionType
SMulI32,
SNorB64,
SOrB64,
SCselectB32,
SSetpcB64,
SSwappcB64,
SWaitcnt,
@@ -70,13 +77,19 @@ enum class ShaderInstructionType
TBufferLoadFormatXyzw,
VAddI32,
VAndB32,
VAshrI32,
VAshrrevI32,
VBcntU32B32,
VBfeU32,
VCmpEqF32,
VCmpEqI32,
VCmpEqU32,
VCmpGeF32,
VCmpGeU32,
VCmpGtI32,
VCmpLeF32,
VCmpLeU32,
VCmpNeI32,
VCmpNeqF32,
VCmpNeU32,
VCmpxEqU32,
@@ -92,12 +105,14 @@ enum class ShaderInstructionType
VCvtU32F32,
VInterpP1F32,
VInterpP2F32,
VLshlB32,
VLshlrevB32,
VLshrB32,
VLshrrevB32,
VMacF32,
VMadakF32,
VMadF32,
VMadmkF32,
VMadU32U24,
VMaxF32,
VMbcntHiU32B32,
@@ -105,7 +120,9 @@ enum class ShaderInstructionType
VMinF32,
VMovB32,
VMulF32,
VMulHiU32,
VMulLoI32,
VMulLoU32,
VMulU32U24,
VNotB32,
VRcpF32,
@@ -203,7 +220,6 @@ enum Format : uint64_t
SVdstSVsrc0 = FormatDefine({D, S0}),
SVdstSVsrc0SVsrc1 = FormatDefine({D, S0, S1}),
Sdst2Ssrc02 = FormatDefine({DA2, S0A2}),
Sdst2Ssrc0 = FormatDefine({DA2, S0}),
Sdst2Ssrc02Ssrc12 = FormatDefine({DA2, S0A2, S1A2}),
SmaskVsrc0Vsrc1 = FormatDefine({DA2, S0, S1}),
Ssrc0Ssrc1 = FormatDefine({S0, S1}),