From b72ff373fb105fbf75603369afe4897b4de06892 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Thu, 18 Apr 2013 19:05:53 +0100 Subject: [PATCH] llvmpipe: Take in consideration all current constant buffers when mapping. Reviewed-by: Roland Scheidegger Reviewed-by: Zack Rusin --- src/gallium/drivers/llvmpipe/lp_texture.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index 99bd6d3417f..08046193a37 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); -- 2.30.2