[SPIR-V] Decorate whole gl_PerVertex with Invariant
Block members can be decorated with Invariant only since SPIR-V 1.5 Revision 2. In earlier versions, Invariant can be used only for variables. Mesa warns about this.
This commit is contained in:
@@ -1226,15 +1226,13 @@ void SpirvShaderTranslator::StartVertexOrTessEvalShaderBeforeMain() {
|
||||
builder_->makeStructType(struct_per_vertex_members, "gl_PerVertex");
|
||||
builder_->addMemberName(type_struct_per_vertex,
|
||||
kOutputPerVertexMemberPosition, "gl_Position");
|
||||
builder_->addMemberDecoration(type_struct_per_vertex,
|
||||
kOutputPerVertexMemberPosition,
|
||||
spv::DecorationInvariant);
|
||||
builder_->addMemberDecoration(type_struct_per_vertex,
|
||||
kOutputPerVertexMemberPosition,
|
||||
spv::DecorationBuiltIn, spv::BuiltInPosition);
|
||||
builder_->addDecoration(type_struct_per_vertex, spv::DecorationBlock);
|
||||
output_per_vertex_ = builder_->createVariable(
|
||||
spv::NoPrecision, spv::StorageClassOutput, type_struct_per_vertex, "");
|
||||
builder_->addDecoration(output_per_vertex_, spv::DecorationInvariant);
|
||||
main_interface_.push_back(output_per_vertex_);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user