Rev 4358 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4358 | Rev 4401 | ||
---|---|---|---|
Line 79... | Line 79... | ||
79 | CP_LOAD_STATE_0_STATE_BLOCK(sb) | |
79 | CP_LOAD_STATE_0_STATE_BLOCK(sb) | |
80 | CP_LOAD_STATE_0_NUM_UNIT(sizedwords/2)); |
80 | CP_LOAD_STATE_0_NUM_UNIT(sizedwords/2)); |
81 | if (prsc) { |
81 | if (prsc) { |
82 | struct fd_bo *bo = fd_resource(prsc)->bo; |
82 | struct fd_bo *bo = fd_resource(prsc)->bo; |
83 | OUT_RELOC(ring, bo, offset, |
83 | OUT_RELOC(ring, bo, offset, |
84 | CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS)); |
84 | CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS), 0); |
85 | } else { |
85 | } else { |
86 | OUT_RING(ring, CP_LOAD_STATE_1_EXT_SRC_ADDR(0) | |
86 | OUT_RING(ring, CP_LOAD_STATE_1_EXT_SRC_ADDR(0) | |
87 | CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS)); |
87 | CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS)); |
88 | dwords = (uint32_t *)&((uint8_t *)dwords)[offset]; |
88 | dwords = (uint32_t *)&((uint8_t *)dwords)[offset]; |
89 | } |
89 | } |
Line 210... | Line 210... | ||
210 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
210 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
211 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
211 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
212 | for (i = 0; i < tex->num_textures; i++) { |
212 | for (i = 0; i < tex->num_textures; i++) { |
213 | struct fd3_pipe_sampler_view *view = |
213 | struct fd3_pipe_sampler_view *view = |
214 | fd3_pipe_sampler_view(tex->textures[i]); |
214 | fd3_pipe_sampler_view(tex->textures[i]); |
215 | OUT_RELOC(ring, view->tex_resource->bo, 0, 0); |
215 | OUT_RELOC(ring, view->tex_resource->bo, 0, 0, 0); |
216 | /* I think each entry is a ptr to mipmap level.. for now, just |
216 | /* I think each entry is a ptr to mipmap level.. for now, just |
217 | * pad w/ null's until I get around to actually implementing |
217 | * pad w/ null's until I get around to actually implementing |
218 | * mipmap support.. |
218 | * mipmap support.. |
219 | */ |
219 | */ |
220 | for (j = 1; j < BASETABLE_SZ; j++) { |
220 | for (j = 1; j < BASETABLE_SZ; j++) { |
Line 277... | Line 277... | ||
277 | CP_LOAD_STATE_0_NUM_UNIT(1)); |
277 | CP_LOAD_STATE_0_NUM_UNIT(1)); |
278 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
278 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
279 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
279 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
280 | OUT_RING(ring, A3XX_TEX_CONST_0_FMT(fd3_pipe2tex(psurf->format)) | |
280 | OUT_RING(ring, A3XX_TEX_CONST_0_FMT(fd3_pipe2tex(psurf->format)) | |
281 | 0x40000000 | // XXX |
281 | 0x40000000 | // XXX |
282 | fd3_tex_swiz(psurf->format, PIPE_SWIZZLE_BLUE, PIPE_SWIZZLE_GREEN, |
282 | fd3_tex_swiz(psurf->format, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_GREEN, |
283 | PIPE_SWIZZLE_RED, PIPE_SWIZZLE_ALPHA)); |
283 | PIPE_SWIZZLE_BLUE, PIPE_SWIZZLE_ALPHA)); |
284 | OUT_RING(ring, A3XX_TEX_CONST_1_FETCHSIZE(fd3_pipe2fetchsize(psurf->format)) | |
284 | OUT_RING(ring, A3XX_TEX_CONST_1_FETCHSIZE(TFETCH_DISABLE) | |
285 | A3XX_TEX_CONST_1_WIDTH(psurf->width) | |
285 | A3XX_TEX_CONST_1_WIDTH(psurf->width) | |
286 | A3XX_TEX_CONST_1_HEIGHT(psurf->height)); |
286 | A3XX_TEX_CONST_1_HEIGHT(psurf->height)); |
287 | OUT_RING(ring, A3XX_TEX_CONST_2_PITCH(rsc->pitch * rsc->cpp) | |
287 | OUT_RING(ring, A3XX_TEX_CONST_2_PITCH(rsc->pitch * rsc->cpp) | |
288 | A3XX_TEX_CONST_2_INDX(0)); |
288 | A3XX_TEX_CONST_2_INDX(0)); |
289 | OUT_RING(ring, 0x00000000); |
289 | OUT_RING(ring, 0x00000000); |
Line 294... | Line 294... | ||
294 | CP_LOAD_STATE_0_STATE_SRC(SS_DIRECT) | |
294 | CP_LOAD_STATE_0_STATE_SRC(SS_DIRECT) | |
295 | CP_LOAD_STATE_0_STATE_BLOCK(SB_FRAG_MIPADDR) | |
295 | CP_LOAD_STATE_0_STATE_BLOCK(SB_FRAG_MIPADDR) | |
296 | CP_LOAD_STATE_0_NUM_UNIT(1)); |
296 | CP_LOAD_STATE_0_NUM_UNIT(1)); |
297 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
297 | OUT_RING(ring, CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS) | |
298 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
298 | CP_LOAD_STATE_1_EXT_SRC_ADDR(0)); |
299 | OUT_RELOC(ring, rsc->bo, 0, 0); |
299 | OUT_RELOC(ring, rsc->bo, 0, 0, 0); |
300 | } |
300 | } |
Line 301... | Line 301... | ||
301 | 301 | ||
302 | void |
302 | void |
303 | fd3_emit_vertex_bufs(struct fd_ringbuffer *ring, |
303 | fd3_emit_vertex_bufs(struct fd_ringbuffer *ring, |
Line 320... | Line 320... | ||
320 | OUT_RING(ring, A3XX_VFD_FETCH_INSTR_0_FETCHSIZE(fs - 1) | |
320 | OUT_RING(ring, A3XX_VFD_FETCH_INSTR_0_FETCHSIZE(fs - 1) | |
321 | A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE(vbufs[i].stride) | |
321 | A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE(vbufs[i].stride) | |
322 | COND(switchnext, A3XX_VFD_FETCH_INSTR_0_SWITCHNEXT) | |
322 | COND(switchnext, A3XX_VFD_FETCH_INSTR_0_SWITCHNEXT) | |
323 | A3XX_VFD_FETCH_INSTR_0_INDEXCODE(i) | |
323 | A3XX_VFD_FETCH_INSTR_0_INDEXCODE(i) | |
324 | A3XX_VFD_FETCH_INSTR_0_STEPRATE(1)); |
324 | A3XX_VFD_FETCH_INSTR_0_STEPRATE(1)); |
325 | OUT_RELOC(ring, rsc->bo, vbufs[i].offset, 0); |
325 | OUT_RELOC(ring, rsc->bo, vbufs[i].offset, 0, 0); |
Line 326... | Line 326... | ||
326 | 326 | ||
327 | OUT_PKT0(ring, REG_A3XX_VFD_DECODE_INSTR(i), 1); |
327 | OUT_PKT0(ring, REG_A3XX_VFD_DECODE_INSTR(i), 1); |
328 | OUT_RING(ring, A3XX_VFD_DECODE_INSTR_CONSTFILL | |
328 | OUT_RING(ring, A3XX_VFD_DECODE_INSTR_CONSTFILL | |
329 | A3XX_VFD_DECODE_INSTR_WRITEMASK(vp->inputs[i].compmask) | |
329 | A3XX_VFD_DECODE_INSTR_WRITEMASK(vp->inputs[i].compmask) | |
Line 479... | Line 479... | ||
479 | OUT_PKT3(ring, CP_INVALIDATE_STATE, 1); |
479 | OUT_PKT3(ring, CP_INVALIDATE_STATE, 1); |
480 | OUT_RING(ring, 0x00007fff); |
480 | OUT_RING(ring, 0x00007fff); |
Line 481... | Line 481... | ||
481 | 481 | ||
482 | OUT_PKT0(ring, REG_A3XX_SP_VS_PVT_MEM_CTRL_REG, 3); |
482 | OUT_PKT0(ring, REG_A3XX_SP_VS_PVT_MEM_CTRL_REG, 3); |
483 | OUT_RING(ring, 0x08000001); /* SP_VS_PVT_MEM_CTRL_REG */ |
483 | OUT_RING(ring, 0x08000001); /* SP_VS_PVT_MEM_CTRL_REG */ |
484 | OUT_RELOC(ring, fd3_ctx->vs_pvt_mem, 0, 0); /* SP_VS_PVT_MEM_ADDR_REG */ |
484 | OUT_RELOC(ring, fd3_ctx->vs_pvt_mem, 0,0,0); /* SP_VS_PVT_MEM_ADDR_REG */ |
Line 485... | Line 485... | ||
485 | OUT_RING(ring, 0x00000000); /* SP_VS_PVT_MEM_SIZE_REG */ |
485 | OUT_RING(ring, 0x00000000); /* SP_VS_PVT_MEM_SIZE_REG */ |
486 | 486 | ||
487 | OUT_PKT0(ring, REG_A3XX_SP_FS_PVT_MEM_CTRL_REG, 3); |
487 | OUT_PKT0(ring, REG_A3XX_SP_FS_PVT_MEM_CTRL_REG, 3); |
488 | OUT_RING(ring, 0x08000001); /* SP_FS_PVT_MEM_CTRL_REG */ |
488 | OUT_RING(ring, 0x08000001); /* SP_FS_PVT_MEM_CTRL_REG */ |
Line 489... | Line 489... | ||
489 | OUT_RELOC(ring, fd3_ctx->fs_pvt_mem, 0, 0); /* SP_FS_PVT_MEM_ADDR_REG */ |
489 | OUT_RELOC(ring, fd3_ctx->fs_pvt_mem, 0,0,0); /* SP_FS_PVT_MEM_ADDR_REG */ |
490 | OUT_RING(ring, 0x00000000); /* SP_FS_PVT_MEM_SIZE_REG */ |
490 | OUT_RING(ring, 0x00000000); /* SP_FS_PVT_MEM_SIZE_REG */ |
Line 534... | Line 534... | ||
534 | OUT_RING(ring, 0x00000003); /* UNKNOWN_0EE0 */ |
534 | OUT_RING(ring, 0x00000003); /* UNKNOWN_0EE0 */ |
Line 535... | Line 535... | ||
535 | 535 | ||
536 | OUT_PKT0(ring, REG_A3XX_UNKNOWN_0C3D, 1); |
536 | OUT_PKT0(ring, REG_A3XX_UNKNOWN_0C3D, 1); |
Line 537... | Line 537... | ||
537 | OUT_RING(ring, 0x00000001); /* UNKNOWN_0C3D */ |
537 | OUT_RING(ring, 0x00000001); /* UNKNOWN_0C3D */ |
538 | 538 | ||
Line 539... | Line 539... | ||
539 | OUT_PKT0(ring, REG_A3XX_UNKNOWN_0E00, 1); |
539 | OUT_PKT0(ring, REG_A3XX_HLSQ_PERFCOUNTER0_SELECT, 1); |
540 | OUT_RING(ring, 0x00000000); /* UNKNOWN_0E00 */ |
540 | OUT_RING(ring, 0x00000000); /* HLSQ_PERFCOUNTER0_SELECT */ |
541 | 541 | ||
542 | OUT_PKT0(ring, REG_A3XX_HLSQ_CONST_VSPRESV_RANGE_REG, 2); |
542 | OUT_PKT0(ring, REG_A3XX_HLSQ_CONST_VSPRESV_RANGE_REG, 2); |
Line 547... | Line 547... | ||
547 | 547 | ||
548 | OUT_PKT0(ring, REG_A3XX_UCHE_CACHE_MODE_CONTROL_REG, 1); |
548 | OUT_PKT0(ring, REG_A3XX_UCHE_CACHE_MODE_CONTROL_REG, 1); |
Line 549... | Line 549... | ||
549 | OUT_RING(ring, 0x00000001); /* UCHE_CACHE_MODE_CONTROL_REG */ |
549 | OUT_RING(ring, 0x00000001); /* UCHE_CACHE_MODE_CONTROL_REG */ |
550 | 550 | ||
Line 551... | Line 551... | ||
551 | OUT_PKT0(ring, REG_A3XX_VSC_SIZE_ADDRESS, 1); |
551 | OUT_PKT0(ring, REG_A3XX_VSC_SIZE_ADDRESS, 1); |
552 | OUT_RELOC(ring, fd3_ctx->vsc_size_mem, 0, 0); /* VSC_SIZE_ADDRESS */ |
552 | OUT_RELOC(ring, fd3_ctx->vsc_size_mem, 0, 0, 0); /* VSC_SIZE_ADDRESS */ |
Line 553... | Line 553... | ||
553 | 553 |