r300g: Emit relocations for pitch registers.
Fixes CS failures with tiling enabled kernels.
This commit is contained in:
parent
2cbd3fce8f
commit
bb91368003
|
@ -278,7 +278,7 @@ void r300_emit_fb_state(struct r300_context* r300,
|
|||
int i;
|
||||
CS_LOCALS(r300);
|
||||
|
||||
BEGIN_CS((8 * fb->nr_cbufs) + (fb->zsbuf ? 8 : 0) + 4);
|
||||
BEGIN_CS((10 * fb->nr_cbufs) + (fb->zsbuf ? 10 : 0) + 4);
|
||||
for (i = 0; i < fb->nr_cbufs; i++) {
|
||||
tex = (struct r300_texture*)fb->cbufs[i]->texture;
|
||||
assert(tex && tex->buffer && "cbuf is marked, but NULL!");
|
||||
|
@ -287,8 +287,10 @@ void r300_emit_fb_state(struct r300_context* r300,
|
|||
OUT_CS_REG_SEQ(R300_RB3D_COLOROFFSET0 + (4 * i), 1);
|
||||
OUT_CS_RELOC(tex->buffer, 0, 0, RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
|
||||
OUT_CS_REG(R300_RB3D_COLORPITCH0 + (4 * i), pixpitch |
|
||||
r300_translate_colorformat(tex->tex.format));
|
||||
OUT_CS_REG_SEQ(R300_RB3D_COLORPITCH0 + (4 * i), 1);
|
||||
OUT_CS_RELOC(tex->buffer, pixpitch |
|
||||
r300_translate_colorformat(tex->tex.format), 0,
|
||||
RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
|
||||
OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i),
|
||||
r300_translate_out_fmt(fb->cbufs[i]->format));
|
||||
|
@ -304,7 +306,8 @@ void r300_emit_fb_state(struct r300_context* r300,
|
|||
|
||||
OUT_CS_REG(R300_ZB_FORMAT, r300_translate_zsformat(tex->tex.format));
|
||||
|
||||
OUT_CS_REG(R300_ZB_DEPTHPITCH, pixpitch);
|
||||
OUT_CS_REG_SEQ(R300_ZB_DEPTHPITCH, 1);
|
||||
OUT_CS_RELOC(tex->buffer, pixpitch, 0, RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
}
|
||||
|
||||
OUT_CS_REG(R300_RB3D_DSTCACHE_CTLSTAT,
|
||||
|
|
|
@ -37,7 +37,7 @@ static void r300_surface_setup(struct r300_context* r300,
|
|||
r300_emit_dsa_state(r300, &dsa_clear_state);
|
||||
r300_emit_rs_state(r300, &rs_clear_state);
|
||||
|
||||
BEGIN_CS(24);
|
||||
BEGIN_CS(26);
|
||||
|
||||
/* Viewport setup */
|
||||
OUT_CS_REG_SEQ(R300_SE_VPORT_XSCALE, 6);
|
||||
|
@ -78,8 +78,10 @@ static void r300_surface_setup(struct r300_context* r300,
|
|||
/* Setup colorbuffer. */
|
||||
OUT_CS_REG_SEQ(R300_RB3D_COLOROFFSET0, 1);
|
||||
OUT_CS_RELOC(dest->buffer, 0, 0, RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
OUT_CS_REG(R300_RB3D_COLORPITCH0, pixpitch |
|
||||
r300_translate_colorformat(dest->tex.format));
|
||||
OUT_CS_REG_SEQ(R300_RB3D_COLORPITCH0, 1);
|
||||
OUT_CS_RELOC(dest->buffer, pixpitch |
|
||||
r300_translate_colorformat(dest->tex.format), 0,
|
||||
RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
OUT_CS_REG(RB3D_COLOR_CHANNEL_MASK, 0xf);
|
||||
|
||||
END_CS;
|
||||
|
|
Loading…
Reference in New Issue