diff options
author | Marek Olšák <[email protected]> | 2014-02-20 15:35:15 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-03-11 18:51:19 +0100 |
commit | 3edb3b86b26627e03f31945ebc1f98e5394dec1f (patch) | |
tree | ff03a2bf23fcfe3515c6bf5d63a8e49a351a7f13 /src/gallium/drivers/r300/r300_emit.c | |
parent | db1a7f78c2653f0cb385af363ed1c770cb1c55c9 (diff) |
r300g,uvd,vce: set priorities for relocations
This updates all occurences of cs_add_reloc.
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index b038a9719ae..d99b91919c4 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -1314,7 +1314,10 @@ validate: assert(tex && tex->buf && "cbuf is marked, but NULL!"); r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, RADEON_USAGE_READWRITE, - r300_surface(fb->cbufs[i])->domain); + r300_surface(fb->cbufs[i])->domain, + tex->b.b.nr_samples > 1 ? + RADEON_PRIO_COLOR_BUFFER_MSAA : + RADEON_PRIO_COLOR_BUFFER); } /* ...depth buffer... */ if (fb->zsbuf) { @@ -1322,7 +1325,10 @@ validate: assert(tex && tex->buf && "zsbuf is marked, but NULL!"); r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, RADEON_USAGE_READWRITE, - r300_surface(fb->zsbuf)->domain); + r300_surface(fb->zsbuf)->domain, + tex->b.b.nr_samples > 1 ? + RADEON_PRIO_DEPTH_BUFFER_MSAA : + RADEON_PRIO_DEPTH_BUFFER); } } /* The AA resolve buffer. */ @@ -1330,7 +1336,8 @@ validate: if (aa->dest) { r300->rws->cs_add_reloc(r300->cs, aa->dest->cs_buf, RADEON_USAGE_WRITE, - aa->dest->domain); + aa->dest->domain, + RADEON_PRIO_COLOR_BUFFER); } } if (r300->textures_state.dirty) { @@ -1342,17 +1349,19 @@ validate: tex = r300_resource(texstate->sampler_views[i]->base.texture); r300->rws->cs_add_reloc(r300->cs, tex->cs_buf, RADEON_USAGE_READ, - tex->domain); + tex->domain, RADEON_PRIO_SHADER_TEXTURE_RO); } } /* ...occlusion query buffer... */ if (r300->query_current) r300->rws->cs_add_reloc(r300->cs, r300->query_current->cs_buf, - RADEON_USAGE_WRITE, RADEON_DOMAIN_GTT); + RADEON_USAGE_WRITE, RADEON_DOMAIN_GTT, + RADEON_PRIO_MIN); /* ...vertex buffer for SWTCL path... */ if (r300->vbo_cs) r300->rws->cs_add_reloc(r300->cs, r300->vbo_cs, - RADEON_USAGE_READ, RADEON_DOMAIN_GTT); + RADEON_USAGE_READ, RADEON_DOMAIN_GTT, + RADEON_PRIO_MIN); /* ...vertex buffers for HWTCL path... */ if (do_validate_vertex_buffers && r300->vertex_arrays_dirty) { struct pipe_vertex_buffer *vbuf = r300->vertex_buffer; @@ -1367,14 +1376,16 @@ validate: r300->rws->cs_add_reloc(r300->cs, r300_resource(buf)->cs_buf, RADEON_USAGE_READ, - r300_resource(buf)->domain); + r300_resource(buf)->domain, + RADEON_PRIO_SHADER_BUFFER_RO); } } /* ...and index buffer for HWTCL path. */ if (index_buffer) r300->rws->cs_add_reloc(r300->cs, r300_resource(index_buffer)->cs_buf, RADEON_USAGE_READ, - r300_resource(index_buffer)->domain); + r300_resource(index_buffer)->domain, + RADEON_PRIO_MIN); /* Now do the validation (flush is called inside cs_validate on failure). */ if (!r300->rws->cs_validate(r300->cs)) { |