Merge tag 'for-6.8/io_uring-2024-01-18' of git://git.kernel.dk/linux
[linux-block.git] / drivers / gpu / drm / xe / instructions / xe_gfxpipe_commands.h
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