X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Fspirv.cpp;h=c6f15614f5c8a56a36c7e7236a1c785f081e0a19;hp=b263fe87dcdb38dd76f037a5e189d344d5e6c960;hb=HEAD;hpb=96befca6bd79fbaed431105369a876aa00409fbc diff --git a/source/glsl/spirv.cpp b/source/glsl/spirv.cpp index b263fe87..4dceb971 100644 --- a/source/glsl/spirv.cpp +++ b/source/glsl/spirv.cpp @@ -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(n)) if(!var->interface.empty()) - writer.write(get_id(*n)); + writer.write(allocate_forward_id(*n)); writer.end_op(OP_ENTRY_POINT);