--- /dev/null
+#version 400 core
+
+in double d; // ERROR, no doubles
+in dvec3 d3; // ERROR, no doubles
+in dmat4 dm4; // ERROR, no doubles
+
+void main()
+{
+}
--- /dev/null
+#version 410 core
+
+in double d;
+in dvec3 d3;
+in dmat4 dm4;
+
+void main()
+{
+}
--- /dev/null
+400.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 3 compilation errors. No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
--- /dev/null
+410.vert
+Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 410
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 410
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
requireProfile(loc, ~EEsProfile, "vertex input arrays");
profileRequires(loc, ENoProfile, 150, nullptr, "vertex input arrays");
}
+ if (publicType.basicType == EbtDouble)
+ profileRequires(loc, ~EEsProfile, 410, nullptr, "vertex-shader `double` type input");
if (qualifier.isAuxiliary() || qualifier.isInterpolation() || qualifier.isMemory() || qualifier.invariant)
error(loc, "vertex input cannot be further qualified", "", "");
break;
error(loc, "can't use auxiliary qualifier on a fragment output", "centroid/sample/patch", "");
if (qualifier.isInterpolation())
error(loc, "can't use interpolation qualifier on a fragment output", "flat/smooth/noperspective", "");
+ if (publicType.basicType == EbtDouble)
+ error(loc, "cannot contain a double", GetStorageQualifierString(qualifier.storage), "");
break;
case EShLangCompute:
"110scope.vert",
"300scope.vert",
"400.frag",
+ "400.vert",
+ "410.vert",
"420.comp",
"420.frag",
"420.vert",