diff options
author | Marek Olšák <[email protected]> | 2010-12-07 07:54:31 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-12-07 08:46:18 +0100 |
commit | 4953ba6a717ad1d3aa4426d147b52d05932c47ab (patch) | |
tree | f30608d28c439c83365fc273795d5ee1c3ac4e60 /src/gallium/drivers/r300/r300_emit.c | |
parent | 78068a5fbfc21fb52b289a81142b4211628f845c (diff) |
r300g: validate buffers only if any of bound buffers is changed
This prevents needless buffer validation (CS space checking).
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 82391e11a9b..04a5bd92d12 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -1219,12 +1219,6 @@ boolean r300_emit_buffer_validate(struct r300_context *r300, struct pipe_resource *pbuf; unsigned i; - /* upload buffers first */ - if (r300->screen->caps.has_tcl && r300->any_user_vbs) { - r300_upload_user_buffers(r300); - r300->any_user_vbs = false; - } - /* Clean out BOs. */ r300->rws->cs_reset_buffers(r300->cs); @@ -1263,6 +1257,8 @@ boolean r300_emit_buffer_validate(struct r300_context *r300, if (do_validate_vertex_buffers) { for (i = 0; i < r300->velems->count; i++) { pbuf = vbuf[velem[i].vertex_buffer_index].buffer; + if (!pbuf) + continue; r300->rws->cs_add_buffer(r300->cs, r300_buffer(pbuf)->cs_buf, r300_buffer(pbuf)->domain, 0); |