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

Author: Marek Olšák <[email protected]>
Date:   Fri Jan  1 14:01:25 2021 -0500

mesa: fix a second bug in merging light state parameters with unpacked uniforms

The memcpy size should be packed even if the allocated parameter size
is padded to 4 components.

Reviewed-by: Zoltán Böszörményi <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8017>

---

 src/mesa/program/prog_statevars.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/mesa/program/prog_statevars.c 
b/src/mesa/program/prog_statevars.c
index 1b00bacf5b7..52514361494 100644
--- a/src/mesa/program/prog_statevars.c
+++ b/src/mesa/program/prog_statevars.c
@@ -1389,8 +1389,14 @@ _mesa_optimize_state_parameters(struct gl_constants 
*consts,
                list->Parameters[first_param].StateIndexes[1] * /* light index 
*/
                sizeof(struct gl_light_uniforms) / 4 +
                (list->Parameters[first_param].StateIndexes[2] - STATE_AMBIENT) 
* 4;
-            /* Set the size in floats. */
+
+            /* Set the real size in floats that we will upload (memcpy). */
             list->Parameters[first_param].StateIndexes[2] =
+               
_mesa_program_state_value_size(list->Parameters[last_param].StateIndexes) +
+               list->Parameters[last_param].ValueOffset -
+               list->Parameters[first_param].ValueOffset;
+
+            /* Set the allocated size, which can be aligned to 4 components. */
             list->Parameters[first_param].Size =
                list->Parameters[last_param].Size +
                list->Parameters[last_param].ValueOffset -

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to