]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/spirv.cpp
Don't try to access parameters with a pointer access instructior
[libs/gl.git] / source / glsl / spirv.cpp
index d8f24d20b7007342827423cfd3b7d3b5b85bee79..91182a65725f3cae26a509ed588492ba08cfb881 100644 (file)
@@ -518,8 +518,15 @@ void SpirVGenerator::visit(VariableReference &var)
        r_constant_result = false;
        if(composite_access)
        {
-               r_composite_base = var.declaration;
                r_expression_result_id = 0;
+               if(!assignment_source_id)
+               {
+                       auto i = variable_load_ids.find(var.declaration);
+                       if(i!=variable_load_ids.end())
+                               r_expression_result_id = i->second;
+               }
+               if(!r_expression_result_id)
+                       r_composite_base = var.declaration;
        }
        else if(assignment_source_id)
        {