From: José Fonseca Date: Thu, 18 Apr 2013 18:05:53 +0000 (+0100) Subject: llvmpipe: Take in consideration all current constant buffers when mapping. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b72ff373fb105fbf75603369afe4897b4de06892;p=mesa.git llvmpipe: Take in consideration all current constant buffers when mapping. Reviewed-by: Roland Scheidegger Reviewed-by: Zack Rusin --- 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);