|
@@ -618,19 +618,6 @@ private:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (stage != ShaderType::Vertex || device.HasVertexViewportLayer()) {
|
|
|
|
|
- if (ir.UsesLayer()) {
|
|
|
|
|
- code.AddLine("int gl_Layer;");
|
|
|
|
|
- }
|
|
|
|
|
- if (ir.UsesViewportIndex()) {
|
|
|
|
|
- code.AddLine("int gl_ViewportIndex;");
|
|
|
|
|
- }
|
|
|
|
|
- } else if ((ir.UsesLayer() || ir.UsesViewportIndex()) && stage == ShaderType::Vertex &&
|
|
|
|
|
- !device.HasVertexViewportLayer()) {
|
|
|
|
|
- LOG_ERROR(
|
|
|
|
|
- Render_OpenGL,
|
|
|
|
|
- "GL_ARB_shader_viewport_layer_array is not available and its required by a shader");
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
if (ir.UsesPointSize()) {
|
|
if (ir.UsesPointSize()) {
|
|
|
code.AddLine("float gl_PointSize;");
|
|
code.AddLine("float gl_PointSize;");
|
|
@@ -647,6 +634,21 @@ private:
|
|
|
--code.scope;
|
|
--code.scope;
|
|
|
code.AddLine("}};");
|
|
code.AddLine("}};");
|
|
|
code.AddNewLine();
|
|
code.AddNewLine();
|
|
|
|
|
+
|
|
|
|
|
+ if (stage != ShaderType::Vertex || device.HasVertexViewportLayer()) {
|
|
|
|
|
+ if (ir.UsesLayer()) {
|
|
|
|
|
+ code.AddLine("out int gl_Layer;");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ir.UsesViewportIndex()) {
|
|
|
|
|
+ code.AddLine("out int gl_ViewportIndex;");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if ((ir.UsesLayer() || ir.UsesViewportIndex()) && stage == ShaderType::Vertex &&
|
|
|
|
|
+ !device.HasVertexViewportLayer()) {
|
|
|
|
|
+ LOG_ERROR(
|
|
|
|
|
+ Render_OpenGL,
|
|
|
|
|
+ "GL_ARB_shader_viewport_layer_array is not available and its required by a shader");
|
|
|
|
|
+ }
|
|
|
|
|
+ code.AddNewLine();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void DeclareRegisters() {
|
|
void DeclareRegisters() {
|