X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fspirv.cpp;h=d8f24d20b7007342827423cfd3b7d3b5b85bee79;hb=95312044b7b474af5671eb67f9df8debf96bf54c;hp=edbdf6359eeb8d751690f9e5d45923f9bac32fd9;hpb=34d956d6890ce7070741667d4864fa798883da72;p=libs%2Fgl.git diff --git a/source/glsl/spirv.cpp b/source/glsl/spirv.cpp index edbdf635..d8f24d20 100644 --- a/source/glsl/spirv.cpp +++ b/source/glsl/spirv.cpp @@ -1646,6 +1646,11 @@ void SpirVGenerator::visit(VariableDeclaration &var) writer.write_op_decorate(var_id, DECO_BINDING, q.value); } } + if(!var.name.compare(0, 3, "gl_")) + { + BuiltinSemantic semantic = get_builtin_semantic(var.name); + writer.write_op_decorate(var_id, DECO_BUILTIN, semantic); + } if(init_id && current_function) { @@ -1858,7 +1863,8 @@ void SpirVGenerator::visit(Iteration &iter) if(iter.init_statement) iter.init_statement->visit(*this); - variable_load_ids.clear(); + for(VariableDeclaration *v: AssignmentCollector().apply(iter)) + variable_load_ids.erase(v); Id header_id = next_id++; Id continue_id = next_id++;