diff options
author | Marek Olšák <maraeo@gmail.com> | 2011-01-09 12:15:15 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2011-01-09 22:43:41 +0100 |
commit | ac6306e9ca904ae9674bf2a15222efe4cb861bf5 (patch) | |
tree | 030fa5fdf3a3f324af41d5d83409c96fea594380 | |
parent | b3d8e1fb3bd9b6e5d7a9fc1e710a12547893c487 (diff) |
r300g: do not upload the same user buffer several times
Performance++.
-rw-r--r-- | src/gallium/drivers/r300/r300_screen_buffer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_screen_buffer.c b/src/gallium/drivers/r300/r300_screen_buffer.c index e3cf45479fd..b349849cf37 100644 --- a/src/gallium/drivers/r300/r300_screen_buffer.c +++ b/src/gallium/drivers/r300/r300_screen_buffer.c @@ -89,2 +89,3 @@ void r300_upload_user_buffers(struct r300_context *r300, boolean flushed; + boolean uploaded[16] = {0}; @@ -95,3 +96,3 @@ void r300_upload_user_buffers(struct r300_context *r300, - if (userbuf && userbuf->user_buffer) { + if (userbuf && userbuf->user_buffer && !uploaded[index]) { unsigned first, size; @@ -120,2 +121,3 @@ void r300_upload_user_buffers(struct r300_context *r300, } + uploaded[index] = TRUE; } else { |