Mesa (master): llvmpipe: Take in consideration all current constant buffers when mapping.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Apr 18 19:49:37 UTC 2013


Module: Mesa
Branch: master
Commit: b72ff373fb105fbf75603369afe4897b4de06892
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b72ff373fb105fbf75603369afe4897b4de06892

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Apr 18 19:05:53 2013 +0100

llvmpipe: Take in consideration all current constant buffers when mapping.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Reviewed-by: Zack Rusin <zackr at vmware.com>

---

 src/gallium/drivers/llvmpipe/lp_texture.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 99bd6d3..0804619 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -669,9 +669,15 @@ llvmpipe_transfer_map( struct pipe_context *pipe,
 
    /* Check if we're mapping the current constant buffer */
    if ((usage & PIPE_TRANSFER_WRITE) &&
-       resource == llvmpipe->constants[PIPE_SHADER_FRAGMENT][0].buffer) {
-      /* constants may have changed */
-      llvmpipe->dirty |= LP_NEW_CONSTANTS;
+       (resource->bind & PIPE_BIND_CONSTANT_BUFFER)) {
+      unsigned i;
+      for (i = 0; i < Elements(llvmpipe->constants[PIPE_SHADER_FRAGMENT]); ++i) {
+         if (resource == llvmpipe->constants[PIPE_SHADER_FRAGMENT][i].buffer) {
+            /* constants may have changed */
+            llvmpipe->dirty |= LP_NEW_CONSTANTS;
+            break;
+         }
+      }
    }
 
    lpt = CALLOC_STRUCT(llvmpipe_transfer);




More information about the mesa-commit mailing list