diff options
author | Marek Olšák <[email protected]> | 2011-09-27 01:10:20 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-09-30 23:19:52 +0200 |
commit | 363ff844753c46ac9c13866627e096b091ea81f8 (patch) | |
tree | 3f5a9adeda3243ea6724c55a2ba75f65be7e6cce /src/gallium/drivers/r300/r300_emit.c | |
parent | af8eb5c851a9d566059ae9e37745614cd96b9a13 (diff) |
winsys/radeon: move GEM domains out of the drivers into winsys
The drivers don't need to care about the domains. All they need to set
are the bind and usage flags. This simplifies the winsys too.
This also fixes on r600g:
- fbo-depth-GL_DEPTH_COMPONENT32F-copypixels
- fbo-depth-GL_DEPTH_COMPONENT16-copypixels
- fbo-depth-GL_DEPTH_COMPONENT24-copypixels
- fbo-depth-GL_DEPTH_COMPONENT32-copypixels
- fbo-depth-GL_DEPTH24_STENCIL8-copypixels
I can't explain it.
Reviewed-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 62dcbf6e0df..2fb448a433a 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -1189,15 +1189,15 @@ validate: for (i = 0; i < fb->nr_cbufs; i++) { tex = r300_resource(fb->cbufs[i]->texture); assert(tex && tex->buf && "cbuf is marked, but NULL!"); - r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, 0, - r300_surface(fb->cbufs[i])->domain); + r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, + RADEON_USAGE_READWRITE); } /* ...depth buffer... */ if (fb->zsbuf) { tex = r300_resource(fb->zsbuf->texture); assert(tex && tex->buf && "zsbuf is marked, but NULL!"); - r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, 0, - r300_surface(fb->zsbuf)->domain); + r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, + RADEON_USAGE_READWRITE); } } if (r300->textures_state.dirty) { @@ -1208,17 +1208,17 @@ validate: } tex = r300_resource(texstate->sampler_views[i]->base.texture); - r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, tex->domain, 0); + r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, RADEON_USAGE_READ); } } /* ...occlusion query buffer... */ if (r300->query_current) r300->rws->cs_add_reloc(r300->cs, r300->query_current->cs_buf, - 0, r300->query_current->domain); + RADEON_USAGE_WRITE); /* ...vertex buffer for SWTCL path... */ if (r300->vbo) r300->rws->cs_add_reloc(r300->cs, r300_resource(r300->vbo)->cs_buf, - r300_resource(r300->vbo)->domain, 0); + RADEON_USAGE_READ); /* ...vertex buffers for HWTCL path... */ if (do_validate_vertex_buffers && r300->vertex_arrays_dirty) { struct pipe_vertex_buffer *vbuf = r300->vbuf_mgr->real_vertex_buffer; @@ -1231,13 +1231,13 @@ validate: continue; r300->rws->cs_add_reloc(r300->cs, r300_resource(buf)->cs_buf, - r300_resource(buf)->domain, 0); + RADEON_USAGE_READ); } } /* ...and index buffer for HWTCL path. */ if (index_buffer) r300->rws->cs_add_reloc(r300->cs, r300_resource(index_buffer)->cs_buf, - r300_resource(index_buffer)->domain, 0); + RADEON_USAGE_READ); /* Now do the validation (flush is called inside cs_validate on failure). */ if (!r300->rws->cs_validate(r300->cs)) { |