1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef _XE_GFXPIPE_COMMANDS_H_ 7 #define _XE_GFXPIPE_COMMANDS_H_ 8 9 #include "instructions/xe_instr_defs.h" 10 11 #define GFXPIPE_PIPELINE REG_GENMASK(28, 27) 12 #define PIPELINE_COMMON REG_FIELD_PREP(GFXPIPE_PIPELINE, 0x0) 13 #define PIPELINE_SINGLE_DW REG_FIELD_PREP(GFXPIPE_PIPELINE, 0x1) 14 #define PIPELINE_COMPUTE REG_FIELD_PREP(GFXPIPE_PIPELINE, 0x2) 15 #define PIPELINE_3D REG_FIELD_PREP(GFXPIPE_PIPELINE, 0x3) 16 17 #define GFXPIPE_OPCODE REG_GENMASK(26, 24) 18 #define GFXPIPE_SUBOPCODE REG_GENMASK(23, 16) 19 20 #define GFXPIPE_MATCH_MASK (XE_INSTR_CMD_TYPE | \ 21 GFXPIPE_PIPELINE | \ 22 GFXPIPE_OPCODE | \ 23 GFXPIPE_SUBOPCODE) 24 25 #define GFXPIPE_COMMON_CMD(opcode, subopcode) \ 26 (XE_INSTR_GFXPIPE | PIPELINE_COMMON | \ 27 REG_FIELD_PREP(GFXPIPE_OPCODE, opcode) | \ 28 REG_FIELD_PREP(GFXPIPE_SUBOPCODE, subopcode)) 29 30 #define GFXPIPE_SINGLE_DW_CMD(opcode, subopcode) \ 31 (XE_INSTR_GFXPIPE | PIPELINE_SINGLE_DW | \ 32 REG_FIELD_PREP(GFXPIPE_OPCODE, opcode) | \ 33 REG_FIELD_PREP(GFXPIPE_SUBOPCODE, subopcode)) 34 35 #define GFXPIPE_3D_CMD(opcode, subopcode) \ 36 (XE_INSTR_GFXPIPE | PIPELINE_3D | \ 37 REG_FIELD_PREP(GFXPIPE_OPCODE, opcode) | \ 38 REG_FIELD_PREP(GFXPIPE_SUBOPCODE, subopcode)) 39 40 #define GFXPIPE_COMPUTE_CMD(opcode, subopcode) \ 41 (XE_INSTR_GFXPIPE | PIPELINE_COMPUTE | \ 42 REG_FIELD_PREP(GFXPIPE_OPCODE, opcode) | \ 43 REG_FIELD_PREP(GFXPIPE_SUBOPCODE, subopcode)) 44 45 #define STATE_BASE_ADDRESS GFXPIPE_COMMON_CMD(0x1, 0x1) 46 #define STATE_SIP GFXPIPE_COMMON_CMD(0x1, 0x2) 47 #define GPGPU_CSR_BASE_ADDRESS GFXPIPE_COMMON_CMD(0x1, 0x4) 48 #define STATE_COMPUTE_MODE GFXPIPE_COMMON_CMD(0x1, 0x5) 49 #define CMD_3DSTATE_BTD GFXPIPE_COMMON_CMD(0x1, 0x6) 50 51 #define CMD_3DSTATE_VF_STATISTICS GFXPIPE_SINGLE_DW_CMD(0x0, 0xB) 52 53 #define PIPELINE_SELECT GFXPIPE_SINGLE_DW_CMD(0x1, 0x4) 54 55 #define CMD_3DSTATE_DRAWING_RECTANGLE_FAST GFXPIPE_3D_CMD(0x0, 0x0) 56 #define CMD_3DSTATE_CLEAR_PARAMS GFXPIPE_3D_CMD(0x0, 0x4) 57 #define CMD_3DSTATE_DEPTH_BUFFER GFXPIPE_3D_CMD(0x0, 0x5) 58 #define CMD_3DSTATE_STENCIL_BUFFER GFXPIPE_3D_CMD(0x0, 0x6) 59 #define CMD_3DSTATE_HIER_DEPTH_BUFFER GFXPIPE_3D_CMD(0x0, 0x7) 60 #define CMD_3DSTATE_VERTEX_BUFFERS GFXPIPE_3D_CMD(0x0, 0x8) 61 #define CMD_3DSTATE_VERTEX_ELEMENTS GFXPIPE_3D_CMD(0x0, 0x9) 62 #define CMD_3DSTATE_INDEX_BUFFER GFXPIPE_3D_CMD(0x0, 0xA) 63 #define CMD_3DSTATE_VF GFXPIPE_3D_CMD(0x0, 0xC) 64 #define CMD_3DSTATE_MULTISAMPLE GFXPIPE_3D_CMD(0x0, 0xD) 65 #define CMD_3DSTATE_CC_STATE_POINTERS GFXPIPE_3D_CMD(0x0, 0xE) 66 #define CMD_3DSTATE_SCISSOR_STATE_POINTERS GFXPIPE_3D_CMD(0x0, 0xF) 67 #define CMD_3DSTATE_VS GFXPIPE_3D_CMD(0x0, 0x10) 68 #define CMD_3DSTATE_GS GFXPIPE_3D_CMD(0x0, 0x11) 69 #define CMD_3DSTATE_CLIP GFXPIPE_3D_CMD(0x0, 0x12) 70 #define CMD_3DSTATE_SF GFXPIPE_3D_CMD(0x0, 0x13) 71 #define CMD_3DSTATE_WM GFXPIPE_3D_CMD(0x0, 0x14) 72 #define CMD_3DSTATE_CONSTANT_VS GFXPIPE_3D_CMD(0x0, 0x15) 73 #define CMD_3DSTATE_CONSTANT_GS GFXPIPE_3D_CMD(0x0, 0x16) 74 #define CMD_3DSTATE_SAMPLE_MASK GFXPIPE_3D_CMD(0x0, 0x18) 75 #define CMD_3DSTATE_CONSTANT_HS GFXPIPE_3D_CMD(0x0, 0x19) 76 #define CMD_3DSTATE_CONSTANT_DS GFXPIPE_3D_CMD(0x0, 0x1A) 77 #define CMD_3DSTATE_HS GFXPIPE_3D_CMD(0x0, 0x1B) 78 #define CMD_3DSTATE_TE GFXPIPE_3D_CMD(0x0, 0x1C) 79 #define CMD_3DSTATE_DS GFXPIPE_3D_CMD(0x0, 0x1D) 80 #define CMD_3DSTATE_STREAMOUT GFXPIPE_3D_CMD(0x0, 0x1E) 81 #define CMD_3DSTATE_SBE GFXPIPE_3D_CMD(0x0, 0x1F) 82 #define CMD_3DSTATE_PS GFXPIPE_3D_CMD(0x0, 0x20) 83 #define CMD_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP GFXPIPE_3D_CMD(0x0, 0x21) 84 #define CMD_3DSTATE_CPS_POINTERS GFXPIPE_3D_CMD(0x0, 0x22) 85 #define CMD_3DSTATE_VIEWPORT_STATE_POINTERS_CC GFXPIPE_3D_CMD(0x0, 0x23) 86 #define CMD_3DSTATE_BLEND_STATE_POINTERS GFXPIPE_3D_CMD(0x0, 0x24) 87 #define CMD_3DSTATE_BINDING_TABLE_POINTERS_VS GFXPIPE_3D_CMD(0x0, 0x26) 88 #define CMD_3DSTATE_BINDING_TABLE_POINTERS_HS GFXPIPE_3D_CMD(0x0, 0x27) 89 #define CMD_3DSTATE_BINDING_TABLE_POINTERS_DS GFXPIPE_3D_CMD(0x0, 0x28) 90 #define CMD_3DSTATE_BINDING_TABLE_POINTERS_GS GFXPIPE_3D_CMD(0x0, 0x29) 91 #define CMD_3DSTATE_BINDING_TABLE_POINTERS_PS GFXPIPE_3D_CMD(0x0, 0x2A) 92 #define CMD_3DSTATE_SAMPLER_STATE_POINTERS_VS GFXPIPE_3D_CMD(0x0, 0x2B) 93 #define CMD_3DSTATE_SAMPLER_STATE_POINTERS_HS GFXPIPE_3D_CMD(0x0, 0x2C) 94 #define CMD_3DSTATE_SAMPLER_STATE_POINTERS_DS GFXPIPE_3D_CMD(0x0, 0x2D) 95 #define CMD_3DSTATE_SAMPLER_STATE_POINTERS_GS GFXPIPE_3D_CMD(0x0, 0x2E) 96 #define CMD_3DSTATE_SAMPLER_STATE_POINTERS_PS GFXPIPE_3D_CMD(0x0, 0x2F) 97 #define CMD_3DSTATE_VF_INSTANCING GFXPIPE_3D_CMD(0x0, 0x49) 98 #define CMD_3DSTATE_VF_SGVS GFXPIPE_3D_CMD(0x0, 0x4A) 99 #define CMD_3DSTATE_VF_TOPOLOGY GFXPIPE_3D_CMD(0x0, 0x4B) 100 #define CMD_3DSTATE_WM_CHROMAKEY GFXPIPE_3D_CMD(0x0, 0x4C) 101 #define CMD_3DSTATE_PS_BLEND GFXPIPE_3D_CMD(0x0, 0x4D) 102 #define CMD_3DSTATE_WM_DEPTH_STENCIL GFXPIPE_3D_CMD(0x0, 0x4E) 103 #define CMD_3DSTATE_PS_EXTRA GFXPIPE_3D_CMD(0x0, 0x4F) 104 #define CMD_3DSTATE_RASTER GFXPIPE_3D_CMD(0x0, 0x50) 105 #define CMD_3DSTATE_SBE_SWIZ GFXPIPE_3D_CMD(0x0, 0x51) 106 #define CMD_3DSTATE_WM_HZ_OP GFXPIPE_3D_CMD(0x0, 0x52) 107 #define CMD_3DSTATE_VF_COMPONENT_PACKING GFXPIPE_3D_CMD(0x0, 0x55) 108 #define CMD_3DSTATE_VF_SGVS_2 GFXPIPE_3D_CMD(0x0, 0x56) 109 #define CMD_3DSTATE_VFG GFXPIPE_3D_CMD(0x0, 0x57) 110 #define CMD_3DSTATE_URB_ALLOC_VS GFXPIPE_3D_CMD(0x0, 0x58) 111 #define CMD_3DSTATE_URB_ALLOC_HS GFXPIPE_3D_CMD(0x0, 0x59) 112 #define CMD_3DSTATE_URB_ALLOC_DS GFXPIPE_3D_CMD(0x0, 0x5A) 113 #define CMD_3DSTATE_URB_ALLOC_GS GFXPIPE_3D_CMD(0x0, 0x5B) 114 #define CMD_3DSTATE_SO_BUFFER_INDEX_0 GFXPIPE_3D_CMD(0x0, 0x60) 115 #define CMD_3DSTATE_SO_BUFFER_INDEX_1 GFXPIPE_3D_CMD(0x0, 0x61) 116 #define CMD_3DSTATE_SO_BUFFER_INDEX_2 GFXPIPE_3D_CMD(0x0, 0x62) 117 #define CMD_3DSTATE_SO_BUFFER_INDEX_3 GFXPIPE_3D_CMD(0x0, 0x63) 118 #define CMD_3DSTATE_PRIMITIVE_REPLICATION GFXPIPE_3D_CMD(0x0, 0x6C) 119 #define CMD_3DSTATE_TBIMR_TILE_PASS_INFO GFXPIPE_3D_CMD(0x0, 0x6E) 120 #define CMD_3DSTATE_AMFS GFXPIPE_3D_CMD(0x0, 0x6F) 121 #define CMD_3DSTATE_DEPTH_BOUNDS GFXPIPE_3D_CMD(0x0, 0x71) 122 #define CMD_3DSTATE_AMFS_TEXTURE_POINTERS GFXPIPE_3D_CMD(0x0, 0x72) 123 #define CMD_3DSTATE_CONSTANT_TS_POINTER GFXPIPE_3D_CMD(0x0, 0x73) 124 #define CMD_3DSTATE_MESH_CONTROL GFXPIPE_3D_CMD(0x0, 0x77) 125 #define CMD_3DSTATE_MESH_DISTRIB GFXPIPE_3D_CMD(0x0, 0x78) 126 #define CMD_3DSTATE_TASK_REDISTRIB GFXPIPE_3D_CMD(0x0, 0x79) 127 #define CMD_3DSTATE_MESH_SHADER GFXPIPE_3D_CMD(0x0, 0x7A) 128 #define CMD_3DSTATE_MESH_SHADER_DATA GFXPIPE_3D_CMD(0x0, 0x7B) 129 #define CMD_3DSTATE_TASK_CONTROL GFXPIPE_3D_CMD(0x0, 0x7C) 130 #define CMD_3DSTATE_TASK_SHADER GFXPIPE_3D_CMD(0x0, 0x7D) 131 #define CMD_3DSTATE_TASK_SHADER_DATA GFXPIPE_3D_CMD(0x0, 0x7E) 132 #define CMD_3DSTATE_URB_ALLOC_MESH GFXPIPE_3D_CMD(0x0, 0x7F) 133 #define CMD_3DSTATE_URB_ALLOC_TASK GFXPIPE_3D_CMD(0x0, 0x80) 134 #define CMD_3DSTATE_CLIP_MESH GFXPIPE_3D_CMD(0x0, 0x81) 135 #define CMD_3DSTATE_SBE_MESH GFXPIPE_3D_CMD(0x0, 0x82) 136 #define CMD_3DSTATE_CPSIZE_CONTROL_BUFFER GFXPIPE_3D_CMD(0x0, 0x83) 137 138 #define CMD_3DSTATE_DRAWING_RECTANGLE GFXPIPE_3D_CMD(0x1, 0x0) 139 #define CMD_3DSTATE_CHROMA_KEY GFXPIPE_3D_CMD(0x1, 0x4) 140 #define CMD_3DSTATE_POLY_STIPPLE_OFFSET GFXPIPE_3D_CMD(0x1, 0x6) 141 #define CMD_3DSTATE_POLY_STIPPLE_PATTERN GFXPIPE_3D_CMD(0x1, 0x7) 142 #define CMD_3DSTATE_LINE_STIPPLE GFXPIPE_3D_CMD(0x1, 0x8) 143 #define CMD_3DSTATE_AA_LINE_PARAMETERS GFXPIPE_3D_CMD(0x1, 0xA) 144 #define CMD_3DSTATE_MONOFILTER_SIZE GFXPIPE_3D_CMD(0x1, 0x11) 145 #define CMD_3DSTATE_PUSH_CONSTANT_ALLOC_VS GFXPIPE_3D_CMD(0x1, 0x12) 146 #define CMD_3DSTATE_PUSH_CONSTANT_ALLOC_HS GFXPIPE_3D_CMD(0x1, 0x13) 147 #define CMD_3DSTATE_PUSH_CONSTANT_ALLOC_DS GFXPIPE_3D_CMD(0x1, 0x14) 148 #define CMD_3DSTATE_PUSH_CONSTANT_ALLOC_GS GFXPIPE_3D_CMD(0x1, 0x15) 149 #define CMD_3DSTATE_PUSH_CONSTANT_ALLOC_PS GFXPIPE_3D_CMD(0x1, 0x16) 150 #define CMD_3DSTATE_SO_DECL_LIST GFXPIPE_3D_CMD(0x1, 0x17) 151 #define CMD_3DSTATE_SO_DECL_LIST_DW_LEN REG_GENMASK(8, 0) 152 #define CMD_3DSTATE_SO_BUFFER GFXPIPE_3D_CMD(0x1, 0x18) 153 #define CMD_3DSTATE_BINDING_TABLE_POOL_ALLOC GFXPIPE_3D_CMD(0x1, 0x19) 154 #define CMD_3DSTATE_SAMPLE_PATTERN GFXPIPE_3D_CMD(0x1, 0x1C) 155 #define CMD_3DSTATE_3D_MODE GFXPIPE_3D_CMD(0x1, 0x1E) 156 #define CMD_3DSTATE_SUBSLICE_HASH_TABLE GFXPIPE_3D_CMD(0x1, 0x1F) 157 #define CMD_3DSTATE_SLICE_TABLE_STATE_POINTERS GFXPIPE_3D_CMD(0x1, 0x20) 158 #define CMD_3DSTATE_PTBR_TILE_PASS_INFO GFXPIPE_3D_CMD(0x1, 0x22) 159 160 #endif 161