Lines Matching refs:ring
65 cs_program_emit(struct fd_ringbuffer *ring, struct kernel *kernel)
72 OUT_PKT0(ring, REG_A4XX_UCHE_INVALIDATE0, 2);
73 OUT_RING(ring, 0x00000000);
74 OUT_RING(ring, 0x00000012);
76 OUT_WFI(ring);
78 OUT_PKT0(ring, REG_A4XX_SP_MODE_CONTROL, 1);
79 OUT_RING(ring, 0x0000001e);
81 OUT_PKT0(ring, REG_A4XX_TPL1_TP_MODE_CONTROL, 1);
82 OUT_RING(ring, 0x00000038);
84 OUT_PKT0(ring, REG_A4XX_TPL1_TP_FS_TEX_COUNT, 1);
85 OUT_RING(ring, 0x00000000);
87 OUT_WFI(ring);
89 OUT_PKT0(ring, REG_A4XX_HLSQ_MODE_CONTROL, 1);
90 OUT_RING(ring, 0x00000003);
92 OUT_PKT0(ring, REG_A4XX_HLSQ_CONTROL_0_REG, 1);
93 OUT_RING(ring, 0x080005f0);
95 OUT_PKT0(ring, REG_A4XX_HLSQ_UPDATE_CONTROL, 1);
96 OUT_RING(ring, 0x00000038);
98 OUT_PKT0(ring, REG_A4XX_SP_SP_CTRL_REG, 1);
99 OUT_RING(ring, 0x00860010);
100 // OUT_RING(ring, 0x00920000);
102 OUT_PKT0(ring, REG_A4XX_SP_INSTR_CACHE_CTRL, 1);
103 OUT_RING(ring, 0x000004ff);
104 // OUT_RING(ring, 0x00000260);
106 OUT_PKT0(ring, REG_A4XX_SP_FS_CTRL_REG1, 1);
107 OUT_RING(ring, 0x80000000);
109 OUT_PKT0(ring, REG_A4XX_SP_CS_CTRL_REG0, 1);
110 OUT_RING(ring,
116 OUT_PKT0(ring, REG_A4XX_HLSQ_CS_CONTROL_REG, 1);
117 OUT_RING(ring, A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET(0) |
124 OUT_PKT0(ring, REG_A4XX_SP_CS_OBJ_START, 1);
125 OUT_RELOC(ring, v->bo, 0, 0, 0); /* SP_CS_OBJ_START */
127 OUT_PKT0(ring, REG_A4XX_SP_CS_LENGTH_REG, 1);
128 OUT_RING(ring, v->instrlen);
136 OUT_PKT0(ring, REG_A4XX_HLSQ_CL_CONTROL_0, 2);
137 OUT_RING(ring, A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID(work_group_id) |
140 OUT_RING(ring, A4XX_HLSQ_CL_CONTROL_1_UNK0CONSTID(regid(63, 0)) |
143 OUT_PKT0(ring, REG_A4XX_HLSQ_CL_KERNEL_CONST, 1);
144 OUT_RING(ring, A4XX_HLSQ_CL_KERNEL_CONST_UNK0CONSTID(regid(63, 0)) |
147 OUT_PKT0(ring, REG_A4XX_HLSQ_CL_WG_OFFSET, 1);
148 OUT_RING(ring, A4XX_HLSQ_CL_WG_OFFSET_UNK0CONSTID(regid(63, 0)));
150 OUT_PKT3(ring, CP_LOAD_STATE4, 2);
151 OUT_RING(ring, CP_LOAD_STATE4_0_DST_OFF(0) |
155 OUT_RELOC(ring, v->bo, 0, CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER), 0);
159 emit_const(struct fd_ringbuffer *ring, struct kernel *kernel, uint32_t constid, uint32_t sizedwords,
179 OUT_PKT3(ring, CP_LOAD_STATE4, 2 + align_sz);
180 OUT_RING(ring, CP_LOAD_STATE4_0_DST_OFF(constid / 4) |
184 OUT_RING(ring, CP_LOAD_STATE4_1_EXT_SRC_ADDR(0) |
188 OUT_RELOC(ring, replacements[i], 0, 0, 0);
190 OUT_RING(ring, dwords[i]);
195 OUT_RING(ring, 0);
202 cs_const_emit(struct fd_ringbuffer *ring, struct kernel *kernel,
222 emit_const(ring, kernel, base, size, const_state->immediates);
227 cs_ibo_emit(struct fd_ringbuffer *ring, struct fd_submit *submit,
230 OUT_PKT3(ring, CP_LOAD_STATE4, 2 + (4 * kernel->num_bufs));
231 OUT_RING(ring, CP_LOAD_STATE4_0_DST_OFF(0) |
235 OUT_RING(ring, CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER) |
238 OUT_RELOC(ring, kernel->bufs[i], 0, 0, 0);
240 OUT_RING(ring, 0);
241 OUT_RING(ring, 0);
242 OUT_RING(ring, 0);
244 OUT_RING(ring, kernel->buf_sizes[i]);
245 OUT_RING(ring, kernel->buf_sizes[i]);
246 OUT_RING(ring, 0x00000004);
250 OUT_PKT3(ring, CP_LOAD_STATE4, 2 + (2 * kernel->num_bufs));
251 OUT_RING(ring, CP_LOAD_STATE4_0_DST_OFF(0) |
255 OUT_RING(ring, CP_LOAD_STATE4_1_STATE_TYPE(ST4_CONSTANTS) |
264 OUT_RING(ring, A4XX_SSBO_1_0_WIDTH(sz));
265 OUT_RING(ring, A4XX_SSBO_1_1_HEIGHT(sz >> 16));
267 OUT_RING(ring, A4XX_SSBO_1_0_WIDTH(sz) |
270 OUT_RING(ring, A4XX_SSBO_1_1_HEIGHT(DIV_ROUND_UP(sz, 1 << 16)) |
280 struct fd_ringbuffer *ring = fd_submit_new_ringbuffer(
283 cs_program_emit(ring, kernel);
284 cs_const_emit(ring, kernel, grid);
285 cs_ibo_emit(ring, submit, kernel);
297 OUT_PKT0(ring, REG_A4XX_HLSQ_CL_NDRANGE_0, 7);
298 OUT_RING(ring, A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM(work_dim) |
302 OUT_RING(ring,
304 OUT_RING(ring, 0); /* HLSQ_CL_NDRANGE_2_GLOBALOFF_X */
305 OUT_RING(ring,
307 OUT_RING(ring, 0); /* HLSQ_CL_NDRANGE_4_GLOBALOFF_Y */
308 OUT_RING(ring,
310 OUT_RING(ring, 0); /* HLSQ_CL_NDRANGE_6_GLOBALOFF_Z */
313 OUT_PKT3(ring, CP_EXEC_CS, 4);
314 OUT_RING(ring, 0x00000000);
315 OUT_RING(ring, CP_EXEC_CS_1_NGROUPS_X(grid[0]));
316 OUT_RING(ring, CP_EXEC_CS_2_NGROUPS_Y(grid[1]));
317 OUT_RING(ring, CP_EXEC_CS_3_NGROUPS_Z(grid[2]));
319 OUT_PKT0(ring, REG_A4XX_HLSQ_CL_KERNEL_GROUP_X, 3);
320 OUT_RING(ring, grid[0]); /* HLSQ_CL_KERNEL_GROUP_X */
321 OUT_RING(ring, grid[1]); /* HLSQ_CL_KERNEL_GROUP_Y */
322 OUT_RING(ring, grid[2]); /* HLSQ_CL_KERNEL_GROUP_Z */
324 OUT_PKT3(ring, CP_RUN_OPENCL, 1);
325 OUT_RING(ring, 0);
328 OUT_WFI(ring);