mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-20 22:05:12 +00:00
199 lines
5.9 KiB
C++
199 lines
5.9 KiB
C++
#pragma once
|
|
|
|
namespace shader::ir::mimg {
|
|
enum Op {
|
|
LOAD,
|
|
LOAD_MIP,
|
|
LOAD_PCK,
|
|
LOAD_PCK_SGN,
|
|
LOAD_MIP_PCK,
|
|
LOAD_MIP_PCK_SGN,
|
|
STORE = 8,
|
|
STORE_MIP,
|
|
STORE_PCK,
|
|
STORE_MIP_PCK,
|
|
GET_RESINFO = 14,
|
|
ATOMIC_SWAP,
|
|
ATOMIC_CMPSWAP,
|
|
ATOMIC_ADD,
|
|
ATOMIC_SUB,
|
|
ATOMIC_RSUB,
|
|
ATOMIC_SMIN,
|
|
ATOMIC_UMIN,
|
|
ATOMIC_SMAX,
|
|
ATOMIC_UMAX,
|
|
ATOMIC_AND,
|
|
ATOMIC_OR,
|
|
ATOMIC_XOR,
|
|
ATOMIC_INC,
|
|
ATOMIC_DEC,
|
|
ATOMIC_FCMPSWAP,
|
|
ATOMIC_FMIN,
|
|
ATOMIC_FMAX,
|
|
SAMPLE,
|
|
SAMPLE_CL,
|
|
SAMPLE_D,
|
|
SAMPLE_D_CL,
|
|
SAMPLE_L,
|
|
SAMPLE_B,
|
|
SAMPLE_B_CL,
|
|
SAMPLE_LZ,
|
|
SAMPLE_C,
|
|
SAMPLE_C_CL,
|
|
SAMPLE_C_D,
|
|
SAMPLE_C_D_CL,
|
|
SAMPLE_C_L,
|
|
SAMPLE_C_B,
|
|
SAMPLE_C_B_CL,
|
|
SAMPLE_C_LZ,
|
|
SAMPLE_O,
|
|
SAMPLE_CL_O,
|
|
SAMPLE_D_O,
|
|
SAMPLE_D_CL_O,
|
|
SAMPLE_L_O,
|
|
SAMPLE_B_O,
|
|
SAMPLE_B_CL_O,
|
|
SAMPLE_LZ_O,
|
|
SAMPLE_C_O,
|
|
SAMPLE_C_CL_O,
|
|
SAMPLE_C_D_O,
|
|
SAMPLE_C_D_CL_O,
|
|
SAMPLE_C_L_O,
|
|
SAMPLE_C_B_O,
|
|
SAMPLE_C_B_CL_O,
|
|
SAMPLE_C_LZ_O,
|
|
GATHER4,
|
|
GATHER4_CL,
|
|
GATHER4_L = 68,
|
|
GATHER4_B,
|
|
GATHER4_B_CL,
|
|
GATHER4_LZ,
|
|
GATHER4_C,
|
|
GATHER4_C_CL,
|
|
GATHER4_C_L = 76,
|
|
GATHER4_C_B,
|
|
GATHER4_C_B_CL,
|
|
GATHER4_C_LZ,
|
|
GATHER4_O,
|
|
GATHER4_CL_O,
|
|
GATHER4_L_O = 84,
|
|
GATHER4_B_O,
|
|
GATHER4_B_CL_O,
|
|
GATHER4_LZ_O,
|
|
GATHER4_C_O,
|
|
GATHER4_C_CL_O,
|
|
GATHER4_C_L_O = 92,
|
|
GATHER4_C_B_O,
|
|
GATHER4_C_B_CL_O,
|
|
GATHER4_C_LZ_O,
|
|
GET_LOD,
|
|
SAMPLE_CD = 104,
|
|
SAMPLE_CD_CL,
|
|
SAMPLE_C_CD,
|
|
SAMPLE_C_CD_CL,
|
|
SAMPLE_CD_O,
|
|
SAMPLE_CD_CL_O,
|
|
SAMPLE_C_CD_O,
|
|
SAMPLE_C_CD_CL_O,
|
|
|
|
OpCount
|
|
};
|
|
inline const char *getInstructionName(unsigned id) {
|
|
switch (id) {
|
|
case LOAD: return "image_load";
|
|
case LOAD_MIP: return "image_load_mip";
|
|
case LOAD_PCK: return "image_load_pck";
|
|
case LOAD_PCK_SGN: return "image_load_pck_sgn";
|
|
case LOAD_MIP_PCK: return "image_load_mip_pck";
|
|
case LOAD_MIP_PCK_SGN: return "image_load_mip_pck_sgn";
|
|
case STORE: return "image_store";
|
|
case STORE_MIP: return "image_store_mip";
|
|
case STORE_PCK: return "image_store_pck";
|
|
case STORE_MIP_PCK: return "image_store_mip_pck";
|
|
case GET_RESINFO: return "image_get_resinfo";
|
|
case ATOMIC_SWAP: return "image_atomic_swap";
|
|
case ATOMIC_CMPSWAP: return "image_atomic_cmpswap";
|
|
case ATOMIC_ADD: return "image_atomic_add";
|
|
case ATOMIC_SUB: return "image_atomic_sub";
|
|
case ATOMIC_RSUB: return "image_atomic_rsub";
|
|
case ATOMIC_SMIN: return "image_atomic_smin";
|
|
case ATOMIC_UMIN: return "image_atomic_umin";
|
|
case ATOMIC_SMAX: return "image_atomic_smax";
|
|
case ATOMIC_UMAX: return "image_atomic_umax";
|
|
case ATOMIC_AND: return "image_atomic_and";
|
|
case ATOMIC_OR: return "image_atomic_or";
|
|
case ATOMIC_XOR: return "image_atomic_xor";
|
|
case ATOMIC_INC: return "image_atomic_inc";
|
|
case ATOMIC_DEC: return "image_atomic_dec";
|
|
case ATOMIC_FCMPSWAP: return "image_atomic_fcmpswap";
|
|
case ATOMIC_FMIN: return "image_atomic_fmin";
|
|
case ATOMIC_FMAX: return "image_atomic_fmax";
|
|
case SAMPLE: return "image_sample";
|
|
case SAMPLE_CL: return "image_sample_cl";
|
|
case SAMPLE_D: return "image_sample_d";
|
|
case SAMPLE_D_CL: return "image_sample_d_cl";
|
|
case SAMPLE_L: return "image_sample_l";
|
|
case SAMPLE_B: return "image_sample_b";
|
|
case SAMPLE_B_CL: return "image_sample_b_cl";
|
|
case SAMPLE_LZ: return "image_sample_lz";
|
|
case SAMPLE_C: return "image_sample_c";
|
|
case SAMPLE_C_CL: return "image_sample_c_cl";
|
|
case SAMPLE_C_D: return "image_sample_c_d";
|
|
case SAMPLE_C_D_CL: return "image_sample_c_d_cl";
|
|
case SAMPLE_C_L: return "image_sample_c_l";
|
|
case SAMPLE_C_B: return "image_sample_c_b";
|
|
case SAMPLE_C_B_CL: return "image_sample_c_b_cl";
|
|
case SAMPLE_C_LZ: return "image_sample_c_lz";
|
|
case SAMPLE_O: return "image_sample_o";
|
|
case SAMPLE_CL_O: return "image_sample_cl_o";
|
|
case SAMPLE_D_O: return "image_sample_d_o";
|
|
case SAMPLE_D_CL_O: return "image_sample_d_cl_o";
|
|
case SAMPLE_L_O: return "image_sample_l_o";
|
|
case SAMPLE_B_O: return "image_sample_b_o";
|
|
case SAMPLE_B_CL_O: return "image_sample_b_cl_o";
|
|
case SAMPLE_LZ_O: return "image_sample_lz_o";
|
|
case SAMPLE_C_O: return "image_sample_c_o";
|
|
case SAMPLE_C_CL_O: return "image_sample_c_cl_o";
|
|
case SAMPLE_C_D_O: return "image_sample_c_d_o";
|
|
case SAMPLE_C_D_CL_O: return "image_sample_c_d_cl_o";
|
|
case SAMPLE_C_L_O: return "image_sample_c_l_o";
|
|
case SAMPLE_C_B_O: return "image_sample_c_b_o";
|
|
case SAMPLE_C_B_CL_O: return "image_sample_c_b_cl_o";
|
|
case SAMPLE_C_LZ_O: return "image_sample_c_lz_o";
|
|
case GATHER4: return "image_gather4";
|
|
case GATHER4_CL: return "image_gather4_cl";
|
|
case GATHER4_L: return "image_gather4_l";
|
|
case GATHER4_B: return "image_gather4_b";
|
|
case GATHER4_B_CL: return "image_gather4_b_cl";
|
|
case GATHER4_LZ: return "image_gather4_lz";
|
|
case GATHER4_C: return "image_gather4_c";
|
|
case GATHER4_C_CL: return "image_gather4_c_cl";
|
|
case GATHER4_C_L: return "image_gather4_c_l";
|
|
case GATHER4_C_B: return "image_gather4_c_b";
|
|
case GATHER4_C_B_CL: return "image_gather4_c_b_cl";
|
|
case GATHER4_C_LZ: return "image_gather4_c_lz";
|
|
case GATHER4_O: return "image_gather4_o";
|
|
case GATHER4_CL_O: return "image_gather4_cl_o";
|
|
case GATHER4_L_O: return "image_gather4_l_o";
|
|
case GATHER4_B_O: return "image_gather4_b_o";
|
|
case GATHER4_B_CL_O: return "image_gather4_b_cl_o";
|
|
case GATHER4_LZ_O: return "image_gather4_lz_o";
|
|
case GATHER4_C_O: return "image_gather4_c_o";
|
|
case GATHER4_C_CL_O: return "image_gather4_c_cl_o";
|
|
case GATHER4_C_L_O: return "image_gather4_c_l_o";
|
|
case GATHER4_C_B_O: return "image_gather4_c_b_o";
|
|
case GATHER4_C_B_CL_O: return "image_gather4_c_b_cl_o";
|
|
case GATHER4_C_LZ_O: return "image_gather4_c_lz_o";
|
|
case GET_LOD: return "image_get_lod";
|
|
case SAMPLE_CD: return "image_sample_cd";
|
|
case SAMPLE_CD_CL: return "image_sample_cd_cl";
|
|
case SAMPLE_C_CD: return "image_sample_c_cd";
|
|
case SAMPLE_C_CD_CL: return "image_sample_c_cd_cl";
|
|
case SAMPLE_CD_O: return "image_sample_cd_o";
|
|
case SAMPLE_CD_CL_O: return "image_sample_cd_cl_o";
|
|
case SAMPLE_C_CD_O: return "image_sample_c_cd_o";
|
|
case SAMPLE_C_CD_CL_O: return "image_sample_c_cd_cl_o";
|
|
}
|
|
return nullptr;
|
|
}
|
|
} // namespace shader::ir::mimg
|