X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fspirv.cpp;h=6d52c20ecc9fe4e9928d45f74ef40a5e02fe35ee;hb=2151e4a005fa39ac909457176fb33dd2e816d6f9;hp=b263fe87dcdb38dd76f037a5e189d344d5e6c960;hpb=96befca6bd79fbaed431105369a876aa00409fbc;p=libs%2Fgl.git diff --git a/source/glsl/spirv.cpp b/source/glsl/spirv.cpp index b263fe87..6d52c20e 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; } } @@ -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);