From: Ian Romanick <ian.d.roman...@intel.com>

The linker may have set initial values for uniforms.  Propagate these
values to the driver's backing storage when it is first associated.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Reviewed-by: Eric Anholt <e...@anholt.net>
---
 src/mesa/program/ir_to_mesa.cpp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 840648e..b8e2560 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2526,6 +2526,15 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
                                             4 * sizeof(float),
                                             format,
                                             &params->ParameterValues[i]);
+
+        /* After attaching the driver's storage to the uniform, propagate any
+         * data from the linker's backing store.  This will cause values from
+         * initializers in the source code to be copied over.
+         */
+        _mesa_propagate_uniforms_to_driver_storage(storage,
+                                                   0,
+                                                   MAX2(1, 
storage->array_elements));
+
         last_location = location;
       }
    }
-- 
1.7.6.5

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to