]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/spirv.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / glsl / spirv.cpp
index b263fe87dcdb38dd76f037a5e189d344d5e6c960..4dceb9719a638c8ba6048b1a3509eb5b8555046c 100644 (file)
@@ -917,9 +917,10 @@ void SpirVGenerator::visit(BinaryExpression &binary)
 
                                compare_id = write_construct(bool_vec_type_id, column_ids, n_elems);
                        }
+                       else
+                               throw internal_error("unsupported types for non-scalar equality comparison");
 
-                       if(compare_id)
-                               r_expression_result_id = write_expression(combine_op, result_type_id, compare_id);
+                       r_expression_result_id = write_expression(combine_op, result_type_id, compare_id);
                        return;
                }
        }
@@ -1794,7 +1795,7 @@ void SpirVGenerator::visit(VariableDeclaration &var)
                        BuiltinSemantic semantic = get_builtin_semantic(var.name);
                        writer.write_op_decorate(var_id, DECO_BUILTIN, semantic);
                }
-               if(var.sampling=="flat")
+               if(var.interpolation=="flat")
                        writer.write_op_decorate(var_id, DECO_FLAT);
                if(var.sampling=="centroid")
                        writer.write_op_decorate(var_id, DECO_CENTROID);
@@ -1832,7 +1833,7 @@ void SpirVGenerator::visit_entry_point(FunctionDeclaration &func, Id func_id)
        for(Node *n: dependencies)
                if(const VariableDeclaration *var = dynamic_cast<const VariableDeclaration *>(n))
                        if(!var->interface.empty())
-                               writer.write(get_id(*n));
+                               writer.write(allocate_forward_id(*n));
 
        writer.end_op(OP_ENTRY_POINT);