Post your missing opcode errors here for devs to keep track of and implement.
Format
-- {Game Serial} {Game Name}
{Some log lines with "Unknown opcode"}
{upload full logfile}
Currently implemented
BUFFER_ATOMIC_SWAP shader_recompiler: BUFFER_ATOMIC_SWAP Opcode #566
V_LSHL_B64 opcode Implement V_LSHL_B64 opcode #608
V_BFM_B32 and V_FFBH_U32 Implement V_BFM_B32 and V_FFBH_U32 #663
PM4 0x16 and 0x11 video_core: added support for indirect dispatches (gfx only) #637
PM4 0x24 and 0x25 video_core: added support for indirect draws #678
PM4 0x42 V_NOP | PfpSyncMe | S_CMPK_EQ_U32 #426
TBUFFER_STORE_FORMAT_XYZW shader_recompiler: Add more opcodes #802
IMAGE_SAMPLE_CD and IMAGE_GATHER4_C_LZ shader_recompiler: Add more opcodes #802
S_ANDN2_B32 and S_NAND_B32 Added S_ANDN2_B32 and S_NAND_B32 opcodes #833
S_XOR_B32 Add S_XOR_B32 opcode #911
V_MAX_F64 shader_recompiler: Implement basic 64-bit floating point support #915
DS_READ2ST64_B32 Add DS_READ2ST64_B32 #916
V_MUL_F64, V_FMA_F64 and V_RCP_F64 Add other 64-bit floating point shader instructions #944
V_CVT_PKNORM_U16_F32, V_CMPX_EQ_I32 shader_recompiler: Additional scope handling and user data as push constants #1013
V_CVT_PK_U8_F32 Add V_CVT_PK_U8_F32 opcode #1022
V_CMPX_LE_I32 add V_CMPX_LE_I32 #1056
V_CMP_CLASS_F32 Fix V_CMP_CLASS_F32 #1153
V_CVT_F64_I32 Add V_CVT_F64_I32 #1219
S_BCNT1_I32_B64, S_ORN2_SAVEEXEC_B64, V_RCP_CLAMP_F32, V_CMPX_GE_I32, V_CVT_PK_U16_U32, and PM4 0x50 DMA_DATA renderer_vulkan: Commize and adjust buffer bindings #1412
S_BITCMP0_B32, S_BITCMP1_B32, S_BITCMP0_B64, S_BITCMP1_B64 shader_recompiler/frontend: Implement bitcmp instructions #1550
V_MED3_U32 Implement V_MED3_U32 vector ALU Opcode #1553
DS_OR_B32 Implement DS_OR_B32 #1590
DS_AND_B32, DS_OR_B32, DS_XOR_B32 implement DS_AND_B32, DS_OR_B32, DS_XOR_B32 #1593
S_FF1_I32_B32 cde84e4
S_ABS_I32 shader_recompiler: Implement S_ABS_I32 #1713
V_FREXP_EXP_I32_F64, V_FREXP_MANT_F64, V_FRACT_F64, V_FREXP_EXP_I32_F32, and V_FREXP_MANT_F32 shader_recompiler: Implement FREXP instructions. #1766
IMAGE_STORE_MIP shader_recompiler: Support VK_AMD_shader_image_load_store_lod for IMAGE_STORE_MIP #1770
S_BCNT1_I32_B32 Misc UE4 fixes #1821
S_BCNT1_I32_B64 and S_FF1_I32_B64 shader_recompiler: Implement S_BCNT1_I32_B64 and S_FF1_I32_B64 #1889
IMAGE_GATHER4 and IMAGE_GATHER4_O Implement IMAGE_GATHER4 and IMAGE_GATHER4_O #1939
S_BITSET0_B32 and S_BITSET_1_B32 shader_recompiler: Implement S_BITSET(0/1)_B32 #2039
IMAGE_ATOMIC_SWAP was added Implement IMAGE_ATOMIC_SWAP #2194
S_LSHL_B64 and S_ASHR_I64 Handle more 64bit shifts in Translator #1825
V_CVT_PK_I16_I32 and V_CVT_PKNORM_I16_F32 shader_recompiler: Implement shader export formats. #2226
PM4 opcode 0x39 IT_MEM_SEMAPHORE liverpool: Implement PM4 MEM_SEMAPHORE. #2235
Stubbed PM4 opcode 0x20 IT_SET_PREDICATION video_core: Various small improvements and bug fixes #2525
DS_WRITE2ST64_B64 Implement DS_WRITE2ST64_B64 #2567
S_FLBIT_I32_B32 and V_MUL_HI_I32 shader_recompiler: Implement S_FLBIT_I32_B32 and V_MUL_HI_I32. #2793
DS_READ2ST64_B64 Implement DS_READ2ST64_B64 #2795
S_SUBB_U32 shader_recompiler: Implement S_SUBB_U32 instruction #2796
DS_SUB_U32, DS_INC_U32, DS_DEC_U32, and DS_SUB_RTN_U32 Implementing DS_SUB_U32, DS_INC_U32, DS_DEC_U32. #2797
IMAGE_ATOMIC_FMAX and IMAGE_ATOMIC_FMIN Implement IMAGE_ATOMIC_FMIN and IMAGE_ATOMIC_FMAX for 32bit floats #2820
S_SETPC_B64 Implement SET_PC_B64 instruction #2823
PM4 opcode 0x38 IT_DRAW_INDEX_INDIRECT_MULTI gnm: Implement sceGnmDrawIndexIndirectMulti #2889
IMAGE_SAMPLE_B_O Adding opcode IMAGE_SAMPLE_B_O #2894
Stubbed PM4 opcode 0x34 IT_STRMOUT_BUFFER_UPDATE Handle VgtStreamoutFlush event #2929
Stubbed PM4 opcode 0x78 IT_SET_QUEUE_REG liverpool: Lower SetQueueReg to warning log. #2930
Stubbed PM4 opcode 0x8e IT_GET_LOD_STATS Stub PM4 0x8E opcode #2998
V_CVT_F64_U32 Handle V_CVT_F64_U32 #3008
IMAGE_GATHER4_L Misc opcodes fixes #3009
Stubbed PM4 opcode 0x40 IT_COPY_DATA Stub PM4 COPY_DATA opcode #3032
V_RCP_LEGACY_F32 v_rcp_legacy_f32 #3040
BUFFER_ATOMIC_CMPSWAP BUFFER_ATOMIC_CMPSWAP #3045
PM4 opcode 0x22 IT_COND_EXEC Implement PM4CondExec #3046
BUFFER_ATOMIC_FMIN and BUFFER_ATOMIC_FMAX Implement buffer atomic fmin/fmax instructions #3123
BUFFER_ATOMIC_SMAX_X2 and BUFFER_ATOMIC_UMAX_X2 buffer_atomic_imax_x2 #3130
V_CMP_EQ_U64 V_CMP_EQ_U64 support #3153
BUFFER_ATOMIC_SMIN_X2 and BUFFER_ATOMIC_UMIN_X2 Support for BUFFER_ATOMIC_S/UMIN_X2 #3182
BUFFER_LOAD_UBYTE, BUFFER_LOAD_SBYTE, BUFFER_LOAD_USHORT, BUFFER_LOAD_SSHORT, BUFFER_STORE_BYTE, and BUFFER_STORE_SHORT Implement MUBUF instructions for shorts/bytes #2856
V_ALIGNBYTE_B32 and V_ALIGNBIT_B32 V_ALIGNBYTE_B32 and V_ALIGNBIT_B32 #3316
V_CMP_GT_U64 Implement V_CMP_GT_U64 #3352
V_ADD_F64 shader_recompiler: Implement V_ADD_F64 and loading 64-bit float from SGPR. #3483
V_FLOOR_F64 Render.Recompiler: Implement V_FLOOR_F64 #3828
V_LSHR_B64 Implement V_LSHR_B64 #3961
V_CMP_{OP16}_F64 Implement V_CMP_OP_F64 #3962
V_FFBH_I32 Implement V_FFBH_I32 #3965
PM4 opcode 0x2c IT_DRAW_INDIRECT_MULTI Lib.GnmDriver: Implement sceGnmDrawIndirectMulti #4083
IMAGE_ATOMIC_CMPSWAP Recompiler: Implement IMAGE_ATOMIC_CMPSWAP #4109
BUFFER_ATOMIC_FCMPSWAP Implement BUFFER_ATOMIC_FCMPSWAP #4200
V_ADD_F16, V_SUB_F16, V_MUL_F16, V_MAX_F16, V_MIN_F16 Neo: V_*_F16 arithmetic ops #4311
V_OR3_B32 V_ADD3_U32 and V_OR3_B32 #4326
V_LSHL_ADD_U32, V_ADD_LSHL_U32, V_LSHL_OR_B32, V_AND_OR_B32 Neo: bit and alu instructions #4332
V_MAD_MIX_F32, V_MAD_MIXLO_F16, V_MAD_MIXHI_F16 Neo: V_MAD_MIX opcodes #4338
V_LSHRREV_B16, V_ASHRREV_I16, V_LSHLREV_B16 Neo: 16bit shift instructions #4351
V_PK_FMA_F16, V_PK_ADD_F16, V_PK_MUL_F16, V_PK_MIN_F16, V_PK_MAX_F16 Neo: Float16 packed math #4354
V_MIN3_F16, V_MAX3_F16, V_MED3_F16, V_ADD3_U32 Neo: three-operand min/max/med for 16bit floats #4395
V_PK_MUL_LO_U16, V_PK_ADD_I16, V_PK_SUB_I16, V_PK_LSHRREV_B16, V_PK_LSHLREV_B16, V_PK_MAD_U16, V_PK_ADD_U16, V_PK_SUB_U16, V_PK_MAX_U16, V_PK_MIN_U16 Neo: packed math for unsigned/signed integers #4407
IMAGE_SAMPLE_D_O Implement IMAGE_SAMPLE_D_O #4958
V_CMP_LT_U64 shader_recompiler: Reimplement B64 SALU opcodes with U64 masks #4972
S_MEMTIME Implement S_MEMTIME #4987
S_BITSET0_B64, S_BITSET1_B64 shader_recompiler: Implement S_BITSET0_B64 and S_BITSET1_B64 #5006
V_CMPX_EQ_U64, V_CMPX_LG_U64 Implement some V_CMPX_U64 ops #5009
V_CMPX_EQ_I64 V_CMPX_EQ_I64 #5015
V_ASHR_I64 shader_recompiler: Implement V_ASHR_I64 #5011
DS_CMPST_B32, DS_CMPST_RTN_B32, DS_CMPST_B64, DS_CMPST_RTN_B64 add SharedAtomicCmpSwap64, SharedAtomicCmpSwap32 #5013
Game compatibility status
https://github.com/shadps4-compatibility/shadps4-game-compatibility/issues
Post your missing opcode errors here for devs to keep track of and implement.
Format
-- {Game Serial} {Game Name}
{Some log lines with "Unknown opcode"}
{upload full logfile}
Currently implemented
bitcmpinstructions #1550Game compatibility status
https://github.com/shadps4-compatibility/shadps4-game-compatibility/issues