mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/ir: Introduce vsir_opcode_get_name().
This commit is contained in:
Notes:
Henri Verbeet
2025-06-10 18:06:20 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1549
@@ -27,336 +27,6 @@
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
static const char * const shader_opcode_names[] =
|
||||
{
|
||||
[VKD3DSIH_ABS ] = "abs",
|
||||
[VKD3DSIH_ACOS ] = "acos",
|
||||
[VKD3DSIH_ADD ] = "add",
|
||||
[VKD3DSIH_AND ] = "and",
|
||||
[VKD3DSIH_ASIN ] = "asin",
|
||||
[VKD3DSIH_ATAN ] = "atan",
|
||||
[VKD3DSIH_ATOMIC_AND ] = "atomic_and",
|
||||
[VKD3DSIH_ATOMIC_CMP_STORE ] = "atomic_cmp_store",
|
||||
[VKD3DSIH_ATOMIC_IADD ] = "atomic_iadd",
|
||||
[VKD3DSIH_ATOMIC_IMAX ] = "atomic_imax",
|
||||
[VKD3DSIH_ATOMIC_IMIN ] = "atomic_imin",
|
||||
[VKD3DSIH_ATOMIC_OR ] = "atomic_or",
|
||||
[VKD3DSIH_ATOMIC_UMAX ] = "atomic_umax",
|
||||
[VKD3DSIH_ATOMIC_UMIN ] = "atomic_umin",
|
||||
[VKD3DSIH_ATOMIC_XOR ] = "atomic_xor",
|
||||
[VKD3DSIH_BEM ] = "bem",
|
||||
[VKD3DSIH_BFI ] = "bfi",
|
||||
[VKD3DSIH_BFREV ] = "bfrev",
|
||||
[VKD3DSIH_BRANCH ] = "branch",
|
||||
[VKD3DSIH_BREAK ] = "break",
|
||||
[VKD3DSIH_BREAKC ] = "break",
|
||||
[VKD3DSIH_BREAKP ] = "breakp",
|
||||
[VKD3DSIH_BUFINFO ] = "bufinfo",
|
||||
[VKD3DSIH_CALL ] = "call",
|
||||
[VKD3DSIH_CALLNZ ] = "callnz",
|
||||
[VKD3DSIH_CASE ] = "case",
|
||||
[VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED ] = "check_access_fully_mapped",
|
||||
[VKD3DSIH_CMP ] = "cmp",
|
||||
[VKD3DSIH_CND ] = "cnd",
|
||||
[VKD3DSIH_CONTINUE ] = "continue",
|
||||
[VKD3DSIH_CONTINUEP ] = "continuec",
|
||||
[VKD3DSIH_COUNTBITS ] = "countbits",
|
||||
[VKD3DSIH_CRS ] = "crs",
|
||||
[VKD3DSIH_CUT ] = "cut",
|
||||
[VKD3DSIH_CUT_STREAM ] = "cut_stream",
|
||||
[VKD3DSIH_DADD ] = "dadd",
|
||||
[VKD3DSIH_DCL ] = "dcl",
|
||||
[VKD3DSIH_DCL_CONSTANT_BUFFER ] = "dcl_constantBuffer",
|
||||
[VKD3DSIH_DCL_FUNCTION_BODY ] = "dcl_function_body",
|
||||
[VKD3DSIH_DCL_FUNCTION_TABLE ] = "dcl_function_table",
|
||||
[VKD3DSIH_DCL_GLOBAL_FLAGS ] = "dcl_globalFlags",
|
||||
[VKD3DSIH_DCL_GS_INSTANCES ] = "dcl_gs_instances",
|
||||
[VKD3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT] = "dcl_hs_fork_phase_instance_count",
|
||||
[VKD3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT] = "dcl_hs_join_phase_instance_count",
|
||||
[VKD3DSIH_DCL_HS_MAX_TESSFACTOR ] = "dcl_hs_max_tessfactor",
|
||||
[VKD3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER ] = "dcl_immediateConstantBuffer",
|
||||
[VKD3DSIH_DCL_INDEX_RANGE ] = "dcl_index_range",
|
||||
[VKD3DSIH_DCL_INDEXABLE_TEMP ] = "dcl_indexableTemp",
|
||||
[VKD3DSIH_DCL_INPUT ] = "dcl_input",
|
||||
[VKD3DSIH_DCL_INPUT_CONTROL_POINT_COUNT ] = "dcl_input_control_point_count",
|
||||
[VKD3DSIH_DCL_INPUT_PRIMITIVE ] = "dcl_inputprimitive",
|
||||
[VKD3DSIH_DCL_INPUT_PS ] = "dcl_input_ps",
|
||||
[VKD3DSIH_DCL_INPUT_PS_SGV ] = "dcl_input_ps_sgv",
|
||||
[VKD3DSIH_DCL_INPUT_PS_SIV ] = "dcl_input_ps_siv",
|
||||
[VKD3DSIH_DCL_INPUT_SGV ] = "dcl_input_sgv",
|
||||
[VKD3DSIH_DCL_INPUT_SIV ] = "dcl_input_siv",
|
||||
[VKD3DSIH_DCL_INTERFACE ] = "dcl_interface",
|
||||
[VKD3DSIH_DCL_OUTPUT ] = "dcl_output",
|
||||
[VKD3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT ] = "dcl_output_control_point_count",
|
||||
[VKD3DSIH_DCL_OUTPUT_SGV ] = "dcl_output_sgv",
|
||||
[VKD3DSIH_DCL_OUTPUT_SIV ] = "dcl_output_siv",
|
||||
[VKD3DSIH_DCL_OUTPUT_TOPOLOGY ] = "dcl_outputtopology",
|
||||
[VKD3DSIH_DCL_RESOURCE_RAW ] = "dcl_resource_raw",
|
||||
[VKD3DSIH_DCL_RESOURCE_STRUCTURED ] = "dcl_resource_structured",
|
||||
[VKD3DSIH_DCL_SAMPLER ] = "dcl_sampler",
|
||||
[VKD3DSIH_DCL_STREAM ] = "dcl_stream",
|
||||
[VKD3DSIH_DCL_TEMPS ] = "dcl_temps",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_DOMAIN ] = "dcl_tessellator_domain",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE] = "dcl_tessellator_output_primitive",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_PARTITIONING ] = "dcl_tessellator_partitioning",
|
||||
[VKD3DSIH_DCL_TGSM_RAW ] = "dcl_tgsm_raw",
|
||||
[VKD3DSIH_DCL_TGSM_STRUCTURED ] = "dcl_tgsm_structured",
|
||||
[VKD3DSIH_DCL_THREAD_GROUP ] = "dcl_thread_group",
|
||||
[VKD3DSIH_DCL_UAV_RAW ] = "dcl_uav_raw",
|
||||
[VKD3DSIH_DCL_UAV_STRUCTURED ] = "dcl_uav_structured",
|
||||
[VKD3DSIH_DCL_UAV_TYPED ] = "dcl_uav_typed",
|
||||
[VKD3DSIH_DCL_VERTICES_OUT ] = "dcl_maxout",
|
||||
[VKD3DSIH_DDIV ] = "ddiv",
|
||||
[VKD3DSIH_DEF ] = "def",
|
||||
[VKD3DSIH_DEFAULT ] = "default",
|
||||
[VKD3DSIH_DEFB ] = "defb",
|
||||
[VKD3DSIH_DEFI ] = "defi",
|
||||
[VKD3DSIH_DEQO ] = "deq",
|
||||
[VKD3DSIH_DFMA ] = "dfma",
|
||||
[VKD3DSIH_DGEO ] = "dge",
|
||||
[VKD3DSIH_DISCARD ] = "discard",
|
||||
[VKD3DSIH_DIV ] = "div",
|
||||
[VKD3DSIH_DLT ] = "dlt",
|
||||
[VKD3DSIH_DMAX ] = "dmax",
|
||||
[VKD3DSIH_DMIN ] = "dmin",
|
||||
[VKD3DSIH_DMOV ] = "dmov",
|
||||
[VKD3DSIH_DMOVC ] = "dmovc",
|
||||
[VKD3DSIH_DMUL ] = "dmul",
|
||||
[VKD3DSIH_DNE ] = "dne",
|
||||
[VKD3DSIH_DP2 ] = "dp2",
|
||||
[VKD3DSIH_DP2ADD ] = "dp2add",
|
||||
[VKD3DSIH_DP3 ] = "dp3",
|
||||
[VKD3DSIH_DP4 ] = "dp4",
|
||||
[VKD3DSIH_DRCP ] = "drcp",
|
||||
[VKD3DSIH_DST ] = "dst",
|
||||
[VKD3DSIH_DSX ] = "dsx",
|
||||
[VKD3DSIH_DSX_COARSE ] = "deriv_rtx_coarse",
|
||||
[VKD3DSIH_DSX_FINE ] = "deriv_rtx_fine",
|
||||
[VKD3DSIH_DSY ] = "dsy",
|
||||
[VKD3DSIH_DSY_COARSE ] = "deriv_rty_coarse",
|
||||
[VKD3DSIH_DSY_FINE ] = "deriv_rty_fine",
|
||||
[VKD3DSIH_DTOF ] = "dtof",
|
||||
[VKD3DSIH_DTOI ] = "dtoi",
|
||||
[VKD3DSIH_DTOU ] = "dtou",
|
||||
[VKD3DSIH_ELSE ] = "else",
|
||||
[VKD3DSIH_EMIT ] = "emit",
|
||||
[VKD3DSIH_EMIT_STREAM ] = "emit_stream",
|
||||
[VKD3DSIH_ENDIF ] = "endif",
|
||||
[VKD3DSIH_ENDLOOP ] = "endloop",
|
||||
[VKD3DSIH_ENDREP ] = "endrep",
|
||||
[VKD3DSIH_ENDSWITCH ] = "endswitch",
|
||||
[VKD3DSIH_EQO ] = "eq",
|
||||
[VKD3DSIH_EQU ] = "eq_unord",
|
||||
[VKD3DSIH_EVAL_CENTROID ] = "eval_centroid",
|
||||
[VKD3DSIH_EVAL_SAMPLE_INDEX ] = "eval_sample_index",
|
||||
[VKD3DSIH_EXP ] = "exp",
|
||||
[VKD3DSIH_EXPP ] = "expp",
|
||||
[VKD3DSIH_F16TOF32 ] = "f16tof32",
|
||||
[VKD3DSIH_F32TOF16 ] = "f32tof16",
|
||||
[VKD3DSIH_FCALL ] = "fcall",
|
||||
[VKD3DSIH_FIRSTBIT_HI ] = "firstbit_hi",
|
||||
[VKD3DSIH_FIRSTBIT_LO ] = "firstbit_lo",
|
||||
[VKD3DSIH_FIRSTBIT_SHI ] = "firstbit_shi",
|
||||
[VKD3DSIH_FRC ] = "frc",
|
||||
[VKD3DSIH_FREM ] = "frem",
|
||||
[VKD3DSIH_FTOD ] = "ftod",
|
||||
[VKD3DSIH_FTOI ] = "ftoi",
|
||||
[VKD3DSIH_FTOU ] = "ftou",
|
||||
[VKD3DSIH_GATHER4 ] = "gather4",
|
||||
[VKD3DSIH_GATHER4_C ] = "gather4_c",
|
||||
[VKD3DSIH_GATHER4_C_S ] = "gather4_c_s",
|
||||
[VKD3DSIH_GATHER4_PO ] = "gather4_po",
|
||||
[VKD3DSIH_GATHER4_PO_C ] = "gather4_po_c",
|
||||
[VKD3DSIH_GATHER4_PO_C_S ] = "gather4_po_c_s",
|
||||
[VKD3DSIH_GATHER4_PO_S ] = "gather4_po_s",
|
||||
[VKD3DSIH_GATHER4_S ] = "gather4_s",
|
||||
[VKD3DSIH_GEO ] = "ge",
|
||||
[VKD3DSIH_GEU ] = "ge_unord",
|
||||
[VKD3DSIH_HCOS ] = "hcos",
|
||||
[VKD3DSIH_HS_CONTROL_POINT_PHASE ] = "hs_control_point_phase",
|
||||
[VKD3DSIH_HS_DECLS ] = "hs_decls",
|
||||
[VKD3DSIH_HS_FORK_PHASE ] = "hs_fork_phase",
|
||||
[VKD3DSIH_HS_JOIN_PHASE ] = "hs_join_phase",
|
||||
[VKD3DSIH_HSIN ] = "hsin",
|
||||
[VKD3DSIH_HTAN ] = "htan",
|
||||
[VKD3DSIH_IADD ] = "iadd",
|
||||
[VKD3DSIH_IBFE ] = "ibfe",
|
||||
[VKD3DSIH_IDIV ] = "idiv",
|
||||
[VKD3DSIH_IEQ ] = "ieq",
|
||||
[VKD3DSIH_IF ] = "if",
|
||||
[VKD3DSIH_IFC ] = "if",
|
||||
[VKD3DSIH_IGE ] = "ige",
|
||||
[VKD3DSIH_ILT ] = "ilt",
|
||||
[VKD3DSIH_IMAD ] = "imad",
|
||||
[VKD3DSIH_IMAX ] = "imax",
|
||||
[VKD3DSIH_IMIN ] = "imin",
|
||||
[VKD3DSIH_IMM_ATOMIC_ALLOC ] = "imm_atomic_alloc",
|
||||
[VKD3DSIH_IMM_ATOMIC_AND ] = "imm_atomic_and",
|
||||
[VKD3DSIH_IMM_ATOMIC_CMP_EXCH ] = "imm_atomic_cmp_exch",
|
||||
[VKD3DSIH_IMM_ATOMIC_CONSUME ] = "imm_atomic_consume",
|
||||
[VKD3DSIH_IMM_ATOMIC_EXCH ] = "imm_atomic_exch",
|
||||
[VKD3DSIH_IMM_ATOMIC_IADD ] = "imm_atomic_iadd",
|
||||
[VKD3DSIH_IMM_ATOMIC_IMAX ] = "imm_atomic_imax",
|
||||
[VKD3DSIH_IMM_ATOMIC_IMIN ] = "imm_atomic_imin",
|
||||
[VKD3DSIH_IMM_ATOMIC_OR ] = "imm_atomic_or",
|
||||
[VKD3DSIH_IMM_ATOMIC_UMAX ] = "imm_atomic_umax",
|
||||
[VKD3DSIH_IMM_ATOMIC_UMIN ] = "imm_atomic_umin",
|
||||
[VKD3DSIH_IMM_ATOMIC_XOR ] = "imm_atomic_xor",
|
||||
[VKD3DSIH_IMUL ] = "imul",
|
||||
[VKD3DSIH_INE ] = "ine",
|
||||
[VKD3DSIH_INEG ] = "ineg",
|
||||
[VKD3DSIH_ISFINITE ] = "isfinite",
|
||||
[VKD3DSIH_ISHL ] = "ishl",
|
||||
[VKD3DSIH_ISHR ] = "ishr",
|
||||
[VKD3DSIH_ISINF ] = "isinf",
|
||||
[VKD3DSIH_ISNAN ] = "isnan",
|
||||
[VKD3DSIH_ITOD ] = "itod",
|
||||
[VKD3DSIH_ITOF ] = "itof",
|
||||
[VKD3DSIH_ITOI ] = "itoi",
|
||||
[VKD3DSIH_LABEL ] = "label",
|
||||
[VKD3DSIH_LD ] = "ld",
|
||||
[VKD3DSIH_LD2DMS ] = "ld2dms",
|
||||
[VKD3DSIH_LD2DMS_S ] = "ld2dms_s",
|
||||
[VKD3DSIH_LD_RAW ] = "ld_raw",
|
||||
[VKD3DSIH_LD_RAW_S ] = "ld_raw_s",
|
||||
[VKD3DSIH_LD_S ] = "ld_s",
|
||||
[VKD3DSIH_LD_STRUCTURED ] = "ld_structured",
|
||||
[VKD3DSIH_LD_STRUCTURED_S ] = "ld_structured_s",
|
||||
[VKD3DSIH_LD_UAV_TYPED ] = "ld_uav_typed",
|
||||
[VKD3DSIH_LD_UAV_TYPED_S ] = "ld_uav_typed_s",
|
||||
[VKD3DSIH_LIT ] = "lit",
|
||||
[VKD3DSIH_LOD ] = "lod",
|
||||
[VKD3DSIH_LOG ] = "log",
|
||||
[VKD3DSIH_LOGP ] = "logp",
|
||||
[VKD3DSIH_LOOP ] = "loop",
|
||||
[VKD3DSIH_LRP ] = "lrp",
|
||||
[VKD3DSIH_LTO ] = "lt",
|
||||
[VKD3DSIH_LTU ] = "lt_unord",
|
||||
[VKD3DSIH_M3x2 ] = "m3x2",
|
||||
[VKD3DSIH_M3x3 ] = "m3x3",
|
||||
[VKD3DSIH_M3x4 ] = "m3x4",
|
||||
[VKD3DSIH_M4x3 ] = "m4x3",
|
||||
[VKD3DSIH_M4x4 ] = "m4x4",
|
||||
[VKD3DSIH_MAD ] = "mad",
|
||||
[VKD3DSIH_MAX ] = "max",
|
||||
[VKD3DSIH_MIN ] = "min",
|
||||
[VKD3DSIH_MOV ] = "mov",
|
||||
[VKD3DSIH_MOVA ] = "mova",
|
||||
[VKD3DSIH_MOVC ] = "movc",
|
||||
[VKD3DSIH_MSAD ] = "msad",
|
||||
[VKD3DSIH_MUL ] = "mul",
|
||||
[VKD3DSIH_NEO ] = "ne_ord",
|
||||
[VKD3DSIH_NEU ] = "ne",
|
||||
[VKD3DSIH_NOP ] = "nop",
|
||||
[VKD3DSIH_NOT ] = "not",
|
||||
[VKD3DSIH_NRM ] = "nrm",
|
||||
[VKD3DSIH_OR ] = "or",
|
||||
[VKD3DSIH_ORD ] = "ord",
|
||||
[VKD3DSIH_PHASE ] = "phase",
|
||||
[VKD3DSIH_PHI ] = "phi",
|
||||
[VKD3DSIH_POW ] = "pow",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_D ] = "quad_read_across_d",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_X ] = "quad_read_across_x",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_Y ] = "quad_read_across_y",
|
||||
[VKD3DSIH_QUAD_READ_LANE_AT ] = "quad_read_lane_at",
|
||||
[VKD3DSIH_RCP ] = "rcp",
|
||||
[VKD3DSIH_REP ] = "rep",
|
||||
[VKD3DSIH_RESINFO ] = "resinfo",
|
||||
[VKD3DSIH_RET ] = "ret",
|
||||
[VKD3DSIH_RETP ] = "retp",
|
||||
[VKD3DSIH_ROUND_NE ] = "round_ne",
|
||||
[VKD3DSIH_ROUND_NI ] = "round_ni",
|
||||
[VKD3DSIH_ROUND_PI ] = "round_pi",
|
||||
[VKD3DSIH_ROUND_Z ] = "round_z",
|
||||
[VKD3DSIH_RSQ ] = "rsq",
|
||||
[VKD3DSIH_SAMPLE ] = "sample",
|
||||
[VKD3DSIH_SAMPLE_B ] = "sample_b",
|
||||
[VKD3DSIH_SAMPLE_B_CL_S ] = "sample_b_cl_s",
|
||||
[VKD3DSIH_SAMPLE_C ] = "sample_c",
|
||||
[VKD3DSIH_SAMPLE_C_CL_S ] = "sample_c_cl_s",
|
||||
[VKD3DSIH_SAMPLE_C_LZ ] = "sample_c_lz",
|
||||
[VKD3DSIH_SAMPLE_C_LZ_S ] = "sample_c_lz_s",
|
||||
[VKD3DSIH_SAMPLE_CL_S ] = "sample_cl_s",
|
||||
[VKD3DSIH_SAMPLE_GRAD ] = "sample_d",
|
||||
[VKD3DSIH_SAMPLE_GRAD_CL_S ] = "sample_d_cl_s",
|
||||
[VKD3DSIH_SAMPLE_INFO ] = "sample_info",
|
||||
[VKD3DSIH_SAMPLE_LOD ] = "sample_l",
|
||||
[VKD3DSIH_SAMPLE_LOD_S ] = "sample_l_s",
|
||||
[VKD3DSIH_SAMPLE_POS ] = "sample_pos",
|
||||
[VKD3DSIH_SETP ] = "setp",
|
||||
[VKD3DSIH_SGE ] = "sge",
|
||||
[VKD3DSIH_SGN ] = "sgn",
|
||||
[VKD3DSIH_SINCOS ] = "sincos",
|
||||
[VKD3DSIH_SLT ] = "slt",
|
||||
[VKD3DSIH_SQRT ] = "sqrt",
|
||||
[VKD3DSIH_STORE_RAW ] = "store_raw",
|
||||
[VKD3DSIH_STORE_STRUCTURED ] = "store_structured",
|
||||
[VKD3DSIH_STORE_UAV_TYPED ] = "store_uav_typed",
|
||||
[VKD3DSIH_SUB ] = "sub",
|
||||
[VKD3DSIH_SWAPC ] = "swapc",
|
||||
[VKD3DSIH_SWITCH ] = "switch",
|
||||
[VKD3DSIH_SWITCH_MONOLITHIC ] = "switch",
|
||||
[VKD3DSIH_SYNC ] = "sync",
|
||||
[VKD3DSIH_TAN ] = "tan",
|
||||
[VKD3DSIH_TEX ] = "tex",
|
||||
[VKD3DSIH_TEXBEM ] = "texbem",
|
||||
[VKD3DSIH_TEXBEML ] = "texbeml",
|
||||
[VKD3DSIH_TEXCOORD ] = "texcoord",
|
||||
[VKD3DSIH_TEXCRD ] = "texcrd",
|
||||
[VKD3DSIH_TEXDEPTH ] = "texdepth",
|
||||
[VKD3DSIH_TEXDP3 ] = "texdp3",
|
||||
[VKD3DSIH_TEXDP3TEX ] = "texdp3tex",
|
||||
[VKD3DSIH_TEXKILL ] = "texkill",
|
||||
[VKD3DSIH_TEXLD ] = "texld",
|
||||
[VKD3DSIH_TEXLDD ] = "texldd",
|
||||
[VKD3DSIH_TEXLDL ] = "texldl",
|
||||
[VKD3DSIH_TEXM3x2DEPTH ] = "texm3x2depth",
|
||||
[VKD3DSIH_TEXM3x2PAD ] = "texm3x2pad",
|
||||
[VKD3DSIH_TEXM3x2TEX ] = "texm3x2tex",
|
||||
[VKD3DSIH_TEXM3x3 ] = "texm3x3",
|
||||
[VKD3DSIH_TEXM3x3DIFF ] = "texm3x3diff",
|
||||
[VKD3DSIH_TEXM3x3PAD ] = "texm3x3pad",
|
||||
[VKD3DSIH_TEXM3x3SPEC ] = "texm3x3spec",
|
||||
[VKD3DSIH_TEXM3x3TEX ] = "texm3x3tex",
|
||||
[VKD3DSIH_TEXM3x3VSPEC ] = "texm3x3vspec",
|
||||
[VKD3DSIH_TEXREG2AR ] = "texreg2ar",
|
||||
[VKD3DSIH_TEXREG2GB ] = "texreg2gb",
|
||||
[VKD3DSIH_TEXREG2RGB ] = "texreg2rgb",
|
||||
[VKD3DSIH_UBFE ] = "ubfe",
|
||||
[VKD3DSIH_UDIV ] = "udiv",
|
||||
[VKD3DSIH_UGE ] = "uge",
|
||||
[VKD3DSIH_ULT ] = "ult",
|
||||
[VKD3DSIH_UMAX ] = "umax",
|
||||
[VKD3DSIH_UMIN ] = "umin",
|
||||
[VKD3DSIH_UMUL ] = "umul",
|
||||
[VKD3DSIH_UNO ] = "uno",
|
||||
[VKD3DSIH_USHR ] = "ushr",
|
||||
[VKD3DSIH_UTOD ] = "utod",
|
||||
[VKD3DSIH_UTOF ] = "utof",
|
||||
[VKD3DSIH_UTOU ] = "utou",
|
||||
[VKD3DSIH_WAVE_ACTIVE_ALL_EQUAL ] = "wave_active_all_equal",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BALLOT ] = "wave_active_ballot",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_AND ] = "wave_active_bit_and",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_OR ] = "wave_active_bit_or",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_XOR ] = "wave_active_bit_xor",
|
||||
[VKD3DSIH_WAVE_ALL_BIT_COUNT ] = "wave_all_bit_count",
|
||||
[VKD3DSIH_WAVE_ALL_TRUE ] = "wave_all_true",
|
||||
[VKD3DSIH_WAVE_ANY_TRUE ] = "wave_any_true",
|
||||
[VKD3DSIH_WAVE_IS_FIRST_LANE ] = "wave_is_first_lane",
|
||||
[VKD3DSIH_WAVE_OP_ADD ] = "wave_op_add",
|
||||
[VKD3DSIH_WAVE_OP_IMAX ] = "wave_op_imax",
|
||||
[VKD3DSIH_WAVE_OP_IMIN ] = "wave_op_imin",
|
||||
[VKD3DSIH_WAVE_OP_MAX ] = "wave_op_max",
|
||||
[VKD3DSIH_WAVE_OP_MIN ] = "wave_op_min",
|
||||
[VKD3DSIH_WAVE_OP_MUL ] = "wave_op_mul",
|
||||
[VKD3DSIH_WAVE_OP_UMAX ] = "wave_op_umax",
|
||||
[VKD3DSIH_WAVE_OP_UMIN ] = "wave_op_umin",
|
||||
[VKD3DSIH_WAVE_PREFIX_BIT_COUNT ] = "wave_prefix_bit_count",
|
||||
[VKD3DSIH_WAVE_READ_LANE_AT ] = "wave_read_lane_at",
|
||||
[VKD3DSIH_WAVE_READ_LANE_FIRST ] = "wave_read_lane_first",
|
||||
[VKD3DSIH_XOR ] = "xor",
|
||||
};
|
||||
|
||||
static const char * const shader_register_names[] =
|
||||
{
|
||||
[VKD3DSPR_ADDR ] = "a",
|
||||
@@ -1750,7 +1420,7 @@ static void shader_dump_register_space(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
static void shader_print_opcode(struct vkd3d_d3d_asm_compiler *compiler, enum vkd3d_shader_opcode opcode)
|
||||
{
|
||||
vkd3d_string_buffer_printf(&compiler->buffer, "%s%s%s", compiler->colours.opcode,
|
||||
shader_opcode_names[opcode], compiler->colours.reset);
|
||||
vsir_opcode_get_name(opcode, "<unknown>"), compiler->colours.reset);
|
||||
}
|
||||
|
||||
static void shader_dump_icb(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
|
@@ -29,6 +29,344 @@ struct vsir_transformation_context
|
||||
struct vkd3d_shader_message_context *message_context;
|
||||
};
|
||||
|
||||
const char *vsir_opcode_get_name(enum vkd3d_shader_opcode op, const char *error)
|
||||
{
|
||||
static const char * const names[] =
|
||||
{
|
||||
[VKD3DSIH_ABS ] = "abs",
|
||||
[VKD3DSIH_ACOS ] = "acos",
|
||||
[VKD3DSIH_ADD ] = "add",
|
||||
[VKD3DSIH_AND ] = "and",
|
||||
[VKD3DSIH_ASIN ] = "asin",
|
||||
[VKD3DSIH_ATAN ] = "atan",
|
||||
[VKD3DSIH_ATOMIC_AND ] = "atomic_and",
|
||||
[VKD3DSIH_ATOMIC_CMP_STORE ] = "atomic_cmp_store",
|
||||
[VKD3DSIH_ATOMIC_IADD ] = "atomic_iadd",
|
||||
[VKD3DSIH_ATOMIC_IMAX ] = "atomic_imax",
|
||||
[VKD3DSIH_ATOMIC_IMIN ] = "atomic_imin",
|
||||
[VKD3DSIH_ATOMIC_OR ] = "atomic_or",
|
||||
[VKD3DSIH_ATOMIC_UMAX ] = "atomic_umax",
|
||||
[VKD3DSIH_ATOMIC_UMIN ] = "atomic_umin",
|
||||
[VKD3DSIH_ATOMIC_XOR ] = "atomic_xor",
|
||||
[VKD3DSIH_BEM ] = "bem",
|
||||
[VKD3DSIH_BFI ] = "bfi",
|
||||
[VKD3DSIH_BFREV ] = "bfrev",
|
||||
[VKD3DSIH_BRANCH ] = "branch",
|
||||
[VKD3DSIH_BREAK ] = "break",
|
||||
[VKD3DSIH_BREAKC ] = "break",
|
||||
[VKD3DSIH_BREAKP ] = "breakp",
|
||||
[VKD3DSIH_BUFINFO ] = "bufinfo",
|
||||
[VKD3DSIH_CALL ] = "call",
|
||||
[VKD3DSIH_CALLNZ ] = "callnz",
|
||||
[VKD3DSIH_CASE ] = "case",
|
||||
[VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED ] = "check_access_fully_mapped",
|
||||
[VKD3DSIH_CMP ] = "cmp",
|
||||
[VKD3DSIH_CND ] = "cnd",
|
||||
[VKD3DSIH_CONTINUE ] = "continue",
|
||||
[VKD3DSIH_CONTINUEP ] = "continuec",
|
||||
[VKD3DSIH_COUNTBITS ] = "countbits",
|
||||
[VKD3DSIH_CRS ] = "crs",
|
||||
[VKD3DSIH_CUT ] = "cut",
|
||||
[VKD3DSIH_CUT_STREAM ] = "cut_stream",
|
||||
[VKD3DSIH_DADD ] = "dadd",
|
||||
[VKD3DSIH_DCL ] = "dcl",
|
||||
[VKD3DSIH_DCL_CONSTANT_BUFFER ] = "dcl_constantBuffer",
|
||||
[VKD3DSIH_DCL_FUNCTION_BODY ] = "dcl_function_body",
|
||||
[VKD3DSIH_DCL_FUNCTION_TABLE ] = "dcl_function_table",
|
||||
[VKD3DSIH_DCL_GLOBAL_FLAGS ] = "dcl_globalFlags",
|
||||
[VKD3DSIH_DCL_GS_INSTANCES ] = "dcl_gs_instances",
|
||||
[VKD3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT] = "dcl_hs_fork_phase_instance_count",
|
||||
[VKD3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT] = "dcl_hs_join_phase_instance_count",
|
||||
[VKD3DSIH_DCL_HS_MAX_TESSFACTOR ] = "dcl_hs_max_tessfactor",
|
||||
[VKD3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER ] = "dcl_immediateConstantBuffer",
|
||||
[VKD3DSIH_DCL_INDEX_RANGE ] = "dcl_index_range",
|
||||
[VKD3DSIH_DCL_INDEXABLE_TEMP ] = "dcl_indexableTemp",
|
||||
[VKD3DSIH_DCL_INPUT ] = "dcl_input",
|
||||
[VKD3DSIH_DCL_INPUT_CONTROL_POINT_COUNT ] = "dcl_input_control_point_count",
|
||||
[VKD3DSIH_DCL_INPUT_PRIMITIVE ] = "dcl_inputprimitive",
|
||||
[VKD3DSIH_DCL_INPUT_PS ] = "dcl_input_ps",
|
||||
[VKD3DSIH_DCL_INPUT_PS_SGV ] = "dcl_input_ps_sgv",
|
||||
[VKD3DSIH_DCL_INPUT_PS_SIV ] = "dcl_input_ps_siv",
|
||||
[VKD3DSIH_DCL_INPUT_SGV ] = "dcl_input_sgv",
|
||||
[VKD3DSIH_DCL_INPUT_SIV ] = "dcl_input_siv",
|
||||
[VKD3DSIH_DCL_INTERFACE ] = "dcl_interface",
|
||||
[VKD3DSIH_DCL_OUTPUT ] = "dcl_output",
|
||||
[VKD3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT ] = "dcl_output_control_point_count",
|
||||
[VKD3DSIH_DCL_OUTPUT_SGV ] = "dcl_output_sgv",
|
||||
[VKD3DSIH_DCL_OUTPUT_SIV ] = "dcl_output_siv",
|
||||
[VKD3DSIH_DCL_OUTPUT_TOPOLOGY ] = "dcl_outputtopology",
|
||||
[VKD3DSIH_DCL_RESOURCE_RAW ] = "dcl_resource_raw",
|
||||
[VKD3DSIH_DCL_RESOURCE_STRUCTURED ] = "dcl_resource_structured",
|
||||
[VKD3DSIH_DCL_SAMPLER ] = "dcl_sampler",
|
||||
[VKD3DSIH_DCL_STREAM ] = "dcl_stream",
|
||||
[VKD3DSIH_DCL_TEMPS ] = "dcl_temps",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_DOMAIN ] = "dcl_tessellator_domain",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE] = "dcl_tessellator_output_primitive",
|
||||
[VKD3DSIH_DCL_TESSELLATOR_PARTITIONING ] = "dcl_tessellator_partitioning",
|
||||
[VKD3DSIH_DCL_TGSM_RAW ] = "dcl_tgsm_raw",
|
||||
[VKD3DSIH_DCL_TGSM_STRUCTURED ] = "dcl_tgsm_structured",
|
||||
[VKD3DSIH_DCL_THREAD_GROUP ] = "dcl_thread_group",
|
||||
[VKD3DSIH_DCL_UAV_RAW ] = "dcl_uav_raw",
|
||||
[VKD3DSIH_DCL_UAV_STRUCTURED ] = "dcl_uav_structured",
|
||||
[VKD3DSIH_DCL_UAV_TYPED ] = "dcl_uav_typed",
|
||||
[VKD3DSIH_DCL_VERTICES_OUT ] = "dcl_maxout",
|
||||
[VKD3DSIH_DDIV ] = "ddiv",
|
||||
[VKD3DSIH_DEF ] = "def",
|
||||
[VKD3DSIH_DEFAULT ] = "default",
|
||||
[VKD3DSIH_DEFB ] = "defb",
|
||||
[VKD3DSIH_DEFI ] = "defi",
|
||||
[VKD3DSIH_DEQO ] = "deq",
|
||||
[VKD3DSIH_DFMA ] = "dfma",
|
||||
[VKD3DSIH_DGEO ] = "dge",
|
||||
[VKD3DSIH_DISCARD ] = "discard",
|
||||
[VKD3DSIH_DIV ] = "div",
|
||||
[VKD3DSIH_DLT ] = "dlt",
|
||||
[VKD3DSIH_DMAX ] = "dmax",
|
||||
[VKD3DSIH_DMIN ] = "dmin",
|
||||
[VKD3DSIH_DMOV ] = "dmov",
|
||||
[VKD3DSIH_DMOVC ] = "dmovc",
|
||||
[VKD3DSIH_DMUL ] = "dmul",
|
||||
[VKD3DSIH_DNE ] = "dne",
|
||||
[VKD3DSIH_DP2 ] = "dp2",
|
||||
[VKD3DSIH_DP2ADD ] = "dp2add",
|
||||
[VKD3DSIH_DP3 ] = "dp3",
|
||||
[VKD3DSIH_DP4 ] = "dp4",
|
||||
[VKD3DSIH_DRCP ] = "drcp",
|
||||
[VKD3DSIH_DST ] = "dst",
|
||||
[VKD3DSIH_DSX ] = "dsx",
|
||||
[VKD3DSIH_DSX_COARSE ] = "deriv_rtx_coarse",
|
||||
[VKD3DSIH_DSX_FINE ] = "deriv_rtx_fine",
|
||||
[VKD3DSIH_DSY ] = "dsy",
|
||||
[VKD3DSIH_DSY_COARSE ] = "deriv_rty_coarse",
|
||||
[VKD3DSIH_DSY_FINE ] = "deriv_rty_fine",
|
||||
[VKD3DSIH_DTOF ] = "dtof",
|
||||
[VKD3DSIH_DTOI ] = "dtoi",
|
||||
[VKD3DSIH_DTOU ] = "dtou",
|
||||
[VKD3DSIH_ELSE ] = "else",
|
||||
[VKD3DSIH_EMIT ] = "emit",
|
||||
[VKD3DSIH_EMIT_STREAM ] = "emit_stream",
|
||||
[VKD3DSIH_ENDIF ] = "endif",
|
||||
[VKD3DSIH_ENDLOOP ] = "endloop",
|
||||
[VKD3DSIH_ENDREP ] = "endrep",
|
||||
[VKD3DSIH_ENDSWITCH ] = "endswitch",
|
||||
[VKD3DSIH_EQO ] = "eq",
|
||||
[VKD3DSIH_EQU ] = "eq_unord",
|
||||
[VKD3DSIH_EVAL_CENTROID ] = "eval_centroid",
|
||||
[VKD3DSIH_EVAL_SAMPLE_INDEX ] = "eval_sample_index",
|
||||
[VKD3DSIH_EXP ] = "exp",
|
||||
[VKD3DSIH_EXPP ] = "expp",
|
||||
[VKD3DSIH_F16TOF32 ] = "f16tof32",
|
||||
[VKD3DSIH_F32TOF16 ] = "f32tof16",
|
||||
[VKD3DSIH_FCALL ] = "fcall",
|
||||
[VKD3DSIH_FIRSTBIT_HI ] = "firstbit_hi",
|
||||
[VKD3DSIH_FIRSTBIT_LO ] = "firstbit_lo",
|
||||
[VKD3DSIH_FIRSTBIT_SHI ] = "firstbit_shi",
|
||||
[VKD3DSIH_FRC ] = "frc",
|
||||
[VKD3DSIH_FREM ] = "frem",
|
||||
[VKD3DSIH_FTOD ] = "ftod",
|
||||
[VKD3DSIH_FTOI ] = "ftoi",
|
||||
[VKD3DSIH_FTOU ] = "ftou",
|
||||
[VKD3DSIH_GATHER4 ] = "gather4",
|
||||
[VKD3DSIH_GATHER4_C ] = "gather4_c",
|
||||
[VKD3DSIH_GATHER4_C_S ] = "gather4_c_s",
|
||||
[VKD3DSIH_GATHER4_PO ] = "gather4_po",
|
||||
[VKD3DSIH_GATHER4_PO_C ] = "gather4_po_c",
|
||||
[VKD3DSIH_GATHER4_PO_C_S ] = "gather4_po_c_s",
|
||||
[VKD3DSIH_GATHER4_PO_S ] = "gather4_po_s",
|
||||
[VKD3DSIH_GATHER4_S ] = "gather4_s",
|
||||
[VKD3DSIH_GEO ] = "ge",
|
||||
[VKD3DSIH_GEU ] = "ge_unord",
|
||||
[VKD3DSIH_HCOS ] = "hcos",
|
||||
[VKD3DSIH_HS_CONTROL_POINT_PHASE ] = "hs_control_point_phase",
|
||||
[VKD3DSIH_HS_DECLS ] = "hs_decls",
|
||||
[VKD3DSIH_HS_FORK_PHASE ] = "hs_fork_phase",
|
||||
[VKD3DSIH_HS_JOIN_PHASE ] = "hs_join_phase",
|
||||
[VKD3DSIH_HSIN ] = "hsin",
|
||||
[VKD3DSIH_HTAN ] = "htan",
|
||||
[VKD3DSIH_IADD ] = "iadd",
|
||||
[VKD3DSIH_IBFE ] = "ibfe",
|
||||
[VKD3DSIH_IDIV ] = "idiv",
|
||||
[VKD3DSIH_IEQ ] = "ieq",
|
||||
[VKD3DSIH_IF ] = "if",
|
||||
[VKD3DSIH_IFC ] = "if",
|
||||
[VKD3DSIH_IGE ] = "ige",
|
||||
[VKD3DSIH_ILT ] = "ilt",
|
||||
[VKD3DSIH_IMAD ] = "imad",
|
||||
[VKD3DSIH_IMAX ] = "imax",
|
||||
[VKD3DSIH_IMIN ] = "imin",
|
||||
[VKD3DSIH_IMM_ATOMIC_ALLOC ] = "imm_atomic_alloc",
|
||||
[VKD3DSIH_IMM_ATOMIC_AND ] = "imm_atomic_and",
|
||||
[VKD3DSIH_IMM_ATOMIC_CMP_EXCH ] = "imm_atomic_cmp_exch",
|
||||
[VKD3DSIH_IMM_ATOMIC_CONSUME ] = "imm_atomic_consume",
|
||||
[VKD3DSIH_IMM_ATOMIC_EXCH ] = "imm_atomic_exch",
|
||||
[VKD3DSIH_IMM_ATOMIC_IADD ] = "imm_atomic_iadd",
|
||||
[VKD3DSIH_IMM_ATOMIC_IMAX ] = "imm_atomic_imax",
|
||||
[VKD3DSIH_IMM_ATOMIC_IMIN ] = "imm_atomic_imin",
|
||||
[VKD3DSIH_IMM_ATOMIC_OR ] = "imm_atomic_or",
|
||||
[VKD3DSIH_IMM_ATOMIC_UMAX ] = "imm_atomic_umax",
|
||||
[VKD3DSIH_IMM_ATOMIC_UMIN ] = "imm_atomic_umin",
|
||||
[VKD3DSIH_IMM_ATOMIC_XOR ] = "imm_atomic_xor",
|
||||
[VKD3DSIH_IMUL ] = "imul",
|
||||
[VKD3DSIH_INE ] = "ine",
|
||||
[VKD3DSIH_INEG ] = "ineg",
|
||||
[VKD3DSIH_ISFINITE ] = "isfinite",
|
||||
[VKD3DSIH_ISHL ] = "ishl",
|
||||
[VKD3DSIH_ISHR ] = "ishr",
|
||||
[VKD3DSIH_ISINF ] = "isinf",
|
||||
[VKD3DSIH_ISNAN ] = "isnan",
|
||||
[VKD3DSIH_ITOD ] = "itod",
|
||||
[VKD3DSIH_ITOF ] = "itof",
|
||||
[VKD3DSIH_ITOI ] = "itoi",
|
||||
[VKD3DSIH_LABEL ] = "label",
|
||||
[VKD3DSIH_LD ] = "ld",
|
||||
[VKD3DSIH_LD2DMS ] = "ld2dms",
|
||||
[VKD3DSIH_LD2DMS_S ] = "ld2dms_s",
|
||||
[VKD3DSIH_LD_RAW ] = "ld_raw",
|
||||
[VKD3DSIH_LD_RAW_S ] = "ld_raw_s",
|
||||
[VKD3DSIH_LD_S ] = "ld_s",
|
||||
[VKD3DSIH_LD_STRUCTURED ] = "ld_structured",
|
||||
[VKD3DSIH_LD_STRUCTURED_S ] = "ld_structured_s",
|
||||
[VKD3DSIH_LD_UAV_TYPED ] = "ld_uav_typed",
|
||||
[VKD3DSIH_LD_UAV_TYPED_S ] = "ld_uav_typed_s",
|
||||
[VKD3DSIH_LIT ] = "lit",
|
||||
[VKD3DSIH_LOD ] = "lod",
|
||||
[VKD3DSIH_LOG ] = "log",
|
||||
[VKD3DSIH_LOGP ] = "logp",
|
||||
[VKD3DSIH_LOOP ] = "loop",
|
||||
[VKD3DSIH_LRP ] = "lrp",
|
||||
[VKD3DSIH_LTO ] = "lt",
|
||||
[VKD3DSIH_LTU ] = "lt_unord",
|
||||
[VKD3DSIH_M3x2 ] = "m3x2",
|
||||
[VKD3DSIH_M3x3 ] = "m3x3",
|
||||
[VKD3DSIH_M3x4 ] = "m3x4",
|
||||
[VKD3DSIH_M4x3 ] = "m4x3",
|
||||
[VKD3DSIH_M4x4 ] = "m4x4",
|
||||
[VKD3DSIH_MAD ] = "mad",
|
||||
[VKD3DSIH_MAX ] = "max",
|
||||
[VKD3DSIH_MIN ] = "min",
|
||||
[VKD3DSIH_MOV ] = "mov",
|
||||
[VKD3DSIH_MOVA ] = "mova",
|
||||
[VKD3DSIH_MOVC ] = "movc",
|
||||
[VKD3DSIH_MSAD ] = "msad",
|
||||
[VKD3DSIH_MUL ] = "mul",
|
||||
[VKD3DSIH_NEO ] = "ne_ord",
|
||||
[VKD3DSIH_NEU ] = "ne",
|
||||
[VKD3DSIH_NOP ] = "nop",
|
||||
[VKD3DSIH_NOT ] = "not",
|
||||
[VKD3DSIH_NRM ] = "nrm",
|
||||
[VKD3DSIH_OR ] = "or",
|
||||
[VKD3DSIH_ORD ] = "ord",
|
||||
[VKD3DSIH_PHASE ] = "phase",
|
||||
[VKD3DSIH_PHI ] = "phi",
|
||||
[VKD3DSIH_POW ] = "pow",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_D ] = "quad_read_across_d",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_X ] = "quad_read_across_x",
|
||||
[VKD3DSIH_QUAD_READ_ACROSS_Y ] = "quad_read_across_y",
|
||||
[VKD3DSIH_QUAD_READ_LANE_AT ] = "quad_read_lane_at",
|
||||
[VKD3DSIH_RCP ] = "rcp",
|
||||
[VKD3DSIH_REP ] = "rep",
|
||||
[VKD3DSIH_RESINFO ] = "resinfo",
|
||||
[VKD3DSIH_RET ] = "ret",
|
||||
[VKD3DSIH_RETP ] = "retp",
|
||||
[VKD3DSIH_ROUND_NE ] = "round_ne",
|
||||
[VKD3DSIH_ROUND_NI ] = "round_ni",
|
||||
[VKD3DSIH_ROUND_PI ] = "round_pi",
|
||||
[VKD3DSIH_ROUND_Z ] = "round_z",
|
||||
[VKD3DSIH_RSQ ] = "rsq",
|
||||
[VKD3DSIH_SAMPLE ] = "sample",
|
||||
[VKD3DSIH_SAMPLE_B ] = "sample_b",
|
||||
[VKD3DSIH_SAMPLE_B_CL_S ] = "sample_b_cl_s",
|
||||
[VKD3DSIH_SAMPLE_C ] = "sample_c",
|
||||
[VKD3DSIH_SAMPLE_C_CL_S ] = "sample_c_cl_s",
|
||||
[VKD3DSIH_SAMPLE_C_LZ ] = "sample_c_lz",
|
||||
[VKD3DSIH_SAMPLE_C_LZ_S ] = "sample_c_lz_s",
|
||||
[VKD3DSIH_SAMPLE_CL_S ] = "sample_cl_s",
|
||||
[VKD3DSIH_SAMPLE_GRAD ] = "sample_d",
|
||||
[VKD3DSIH_SAMPLE_GRAD_CL_S ] = "sample_d_cl_s",
|
||||
[VKD3DSIH_SAMPLE_INFO ] = "sample_info",
|
||||
[VKD3DSIH_SAMPLE_LOD ] = "sample_l",
|
||||
[VKD3DSIH_SAMPLE_LOD_S ] = "sample_l_s",
|
||||
[VKD3DSIH_SAMPLE_POS ] = "sample_pos",
|
||||
[VKD3DSIH_SETP ] = "setp",
|
||||
[VKD3DSIH_SGE ] = "sge",
|
||||
[VKD3DSIH_SGN ] = "sgn",
|
||||
[VKD3DSIH_SINCOS ] = "sincos",
|
||||
[VKD3DSIH_SLT ] = "slt",
|
||||
[VKD3DSIH_SQRT ] = "sqrt",
|
||||
[VKD3DSIH_STORE_RAW ] = "store_raw",
|
||||
[VKD3DSIH_STORE_STRUCTURED ] = "store_structured",
|
||||
[VKD3DSIH_STORE_UAV_TYPED ] = "store_uav_typed",
|
||||
[VKD3DSIH_SUB ] = "sub",
|
||||
[VKD3DSIH_SWAPC ] = "swapc",
|
||||
[VKD3DSIH_SWITCH ] = "switch",
|
||||
[VKD3DSIH_SWITCH_MONOLITHIC ] = "switch",
|
||||
[VKD3DSIH_SYNC ] = "sync",
|
||||
[VKD3DSIH_TAN ] = "tan",
|
||||
[VKD3DSIH_TEX ] = "tex",
|
||||
[VKD3DSIH_TEXBEM ] = "texbem",
|
||||
[VKD3DSIH_TEXBEML ] = "texbeml",
|
||||
[VKD3DSIH_TEXCOORD ] = "texcoord",
|
||||
[VKD3DSIH_TEXCRD ] = "texcrd",
|
||||
[VKD3DSIH_TEXDEPTH ] = "texdepth",
|
||||
[VKD3DSIH_TEXDP3 ] = "texdp3",
|
||||
[VKD3DSIH_TEXDP3TEX ] = "texdp3tex",
|
||||
[VKD3DSIH_TEXKILL ] = "texkill",
|
||||
[VKD3DSIH_TEXLD ] = "texld",
|
||||
[VKD3DSIH_TEXLDD ] = "texldd",
|
||||
[VKD3DSIH_TEXLDL ] = "texldl",
|
||||
[VKD3DSIH_TEXM3x2DEPTH ] = "texm3x2depth",
|
||||
[VKD3DSIH_TEXM3x2PAD ] = "texm3x2pad",
|
||||
[VKD3DSIH_TEXM3x2TEX ] = "texm3x2tex",
|
||||
[VKD3DSIH_TEXM3x3 ] = "texm3x3",
|
||||
[VKD3DSIH_TEXM3x3DIFF ] = "texm3x3diff",
|
||||
[VKD3DSIH_TEXM3x3PAD ] = "texm3x3pad",
|
||||
[VKD3DSIH_TEXM3x3SPEC ] = "texm3x3spec",
|
||||
[VKD3DSIH_TEXM3x3TEX ] = "texm3x3tex",
|
||||
[VKD3DSIH_TEXM3x3VSPEC ] = "texm3x3vspec",
|
||||
[VKD3DSIH_TEXREG2AR ] = "texreg2ar",
|
||||
[VKD3DSIH_TEXREG2GB ] = "texreg2gb",
|
||||
[VKD3DSIH_TEXREG2RGB ] = "texreg2rgb",
|
||||
[VKD3DSIH_UBFE ] = "ubfe",
|
||||
[VKD3DSIH_UDIV ] = "udiv",
|
||||
[VKD3DSIH_UGE ] = "uge",
|
||||
[VKD3DSIH_ULT ] = "ult",
|
||||
[VKD3DSIH_UMAX ] = "umax",
|
||||
[VKD3DSIH_UMIN ] = "umin",
|
||||
[VKD3DSIH_UMUL ] = "umul",
|
||||
[VKD3DSIH_UNO ] = "uno",
|
||||
[VKD3DSIH_USHR ] = "ushr",
|
||||
[VKD3DSIH_UTOD ] = "utod",
|
||||
[VKD3DSIH_UTOF ] = "utof",
|
||||
[VKD3DSIH_UTOU ] = "utou",
|
||||
[VKD3DSIH_WAVE_ACTIVE_ALL_EQUAL ] = "wave_active_all_equal",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BALLOT ] = "wave_active_ballot",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_AND ] = "wave_active_bit_and",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_OR ] = "wave_active_bit_or",
|
||||
[VKD3DSIH_WAVE_ACTIVE_BIT_XOR ] = "wave_active_bit_xor",
|
||||
[VKD3DSIH_WAVE_ALL_BIT_COUNT ] = "wave_all_bit_count",
|
||||
[VKD3DSIH_WAVE_ALL_TRUE ] = "wave_all_true",
|
||||
[VKD3DSIH_WAVE_ANY_TRUE ] = "wave_any_true",
|
||||
[VKD3DSIH_WAVE_IS_FIRST_LANE ] = "wave_is_first_lane",
|
||||
[VKD3DSIH_WAVE_OP_ADD ] = "wave_op_add",
|
||||
[VKD3DSIH_WAVE_OP_IMAX ] = "wave_op_imax",
|
||||
[VKD3DSIH_WAVE_OP_IMIN ] = "wave_op_imin",
|
||||
[VKD3DSIH_WAVE_OP_MAX ] = "wave_op_max",
|
||||
[VKD3DSIH_WAVE_OP_MIN ] = "wave_op_min",
|
||||
[VKD3DSIH_WAVE_OP_MUL ] = "wave_op_mul",
|
||||
[VKD3DSIH_WAVE_OP_UMAX ] = "wave_op_umax",
|
||||
[VKD3DSIH_WAVE_OP_UMIN ] = "wave_op_umin",
|
||||
[VKD3DSIH_WAVE_PREFIX_BIT_COUNT ] = "wave_prefix_bit_count",
|
||||
[VKD3DSIH_WAVE_READ_LANE_AT ] = "wave_read_lane_at",
|
||||
[VKD3DSIH_WAVE_READ_LANE_FIRST ] = "wave_read_lane_first",
|
||||
[VKD3DSIH_XOR ] = "xor",
|
||||
};
|
||||
|
||||
if ((uint32_t)op < ARRAY_SIZE(names))
|
||||
return names[op] ? names[op] : error;
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
static int convert_parameter_info(const struct vkd3d_shader_compile_info *compile_info,
|
||||
unsigned int *ret_count, const struct vkd3d_shader_parameter1 **ret_parameters)
|
||||
{
|
||||
|
@@ -612,6 +612,8 @@ enum vkd3d_shader_opcode
|
||||
VKD3DSIH_COUNT,
|
||||
};
|
||||
|
||||
const char *vsir_opcode_get_name(enum vkd3d_shader_opcode op, const char *error);
|
||||
|
||||
enum vkd3d_shader_register_type
|
||||
{
|
||||
VKD3DSPR_TEMP,
|
||||
|
Reference in New Issue
Block a user