GLSL Version : >= 150 Purpose: Allow users to use features by enabling this extension, even in low versions. Extension Name: ARB_gpu_shader_fp64 Builtin-variables: Nah Builtin-functions: functions overloaded for this extension, please check registry in reference. Keywords: Double Features: add support for type "double" Reference: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_fp64.txt Add support for implicit conversion 1. Remove builtin double vertex (this is introduced by vertex_attrib_64bit 2. Add extension check and implicit conversion as double has been introduced 3. Add test results.
60 lines
No EOL
1.6 KiB
GLSL
60 lines
No EOL
1.6 KiB
GLSL
#version 150 core
|
|
|
|
in vec4 gl_FragCoord;
|
|
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR
|
|
layout(pixel_center_integer) in vec4 gl_FragCoord; // ERROR
|
|
layout(origin_upper_left) in vec4 foo; // ERROR
|
|
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
|
|
|
|
void main()
|
|
{
|
|
vec4 c = gl_FragCoord;
|
|
}
|
|
|
|
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use
|
|
|
|
in struct S { float f; } s;
|
|
|
|
float patch = 3.1;
|
|
|
|
uniform sampler2DMS sms;
|
|
uniform isampler2DMS isms;
|
|
uniform usampler2DMS usms;
|
|
uniform sampler2DMSArray smsa;
|
|
uniform isampler2DMSArray ismsa;
|
|
uniform usampler2DMSArray usmsa;
|
|
|
|
flat in ivec2 p2;
|
|
flat in ivec3 p3;
|
|
flat in int samp;
|
|
|
|
void barWxyz()
|
|
{
|
|
ivec2 t11 = textureSize( sms);
|
|
ivec2 t12 = textureSize(isms);
|
|
ivec2 t13 = textureSize(usms);
|
|
ivec3 t21 = textureSize( smsa);
|
|
ivec3 t22 = textureSize(ismsa);
|
|
ivec3 t23 = textureSize(usmsa);
|
|
vec4 t31 = texelFetch( sms, p2, samp);
|
|
ivec4 t32 = texelFetch(isms, p2, samp);
|
|
uvec4 t33 = texelFetch(usms, p2, 3);
|
|
vec4 t41 = texelFetch( smsa, p3, samp);
|
|
ivec4 t42 = texelFetch(ismsa, ivec3(2), samp);
|
|
uvec4 t43 = texelFetch(usmsa, p3, samp);
|
|
}
|
|
|
|
int primitiveID()
|
|
{
|
|
return gl_PrimitiveID;
|
|
gl_PerFragment; // ERROR, block name can't get reused
|
|
}
|
|
|
|
in double type1; // ERROR
|
|
#extension GL_ARB_gpu_shader_fp64 : enable
|
|
double type2;
|
|
double type3 = 2.0;
|
|
int absTest = sqrt(type3);
|
|
double absTest2 = sqrt(type3);
|
|
double absTest3 = sqrt(2);
|
|
float dk = sqrt(11); |