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

Author: Iago Toral Quiroga <[email protected]>
Date:   Fri Feb 19 09:16:14 2016 +0100

glsl: fix emit_inline_matrix_constructor for doubles

Specifically, for the case where we initialize a dmat with a source
matrix that has fewer columns/rows.

Reviewed-by: Kenneth Graunke <[email protected]>

---

 src/compiler/glsl/ast_function.cpp | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/compiler/glsl/ast_function.cpp 
b/src/compiler/glsl/ast_function.cpp
index 2ed61de..1a44020 100644
--- a/src/compiler/glsl/ast_function.cpp
+++ b/src/compiler/glsl/ast_function.cpp
@@ -1484,12 +1484,19 @@ emit_inline_matrix_constructor(const glsl_type *type,
          for (/* empty */; col < var->type->matrix_columns; col++) {
             ir_constant_data ident;
 
-            ident.f[0] = 0.0f;
-            ident.f[1] = 0.0f;
-            ident.f[2] = 0.0f;
-            ident.f[3] = 0.0f;
-
-            ident.f[col] = 1.0f;
+            if (!col_type->is_double()) {
+               ident.f[0] = 0.0f;
+               ident.f[1] = 0.0f;
+               ident.f[2] = 0.0f;
+               ident.f[3] = 0.0f;
+               ident.f[col] = 1.0f;
+            } else {
+               ident.d[0] = 0.0;
+               ident.d[1] = 0.0;
+               ident.d[2] = 0.0;
+               ident.d[3] = 0.0;
+               ident.d[col] = 1.0;
+            }
 
             ir_rvalue *const rhs = new(ctx) ir_constant(col_type, &ident);
 

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

Reply via email to