 a3c7a25e10
			
		
	
	
		a3c7a25e10
		
	
	
	
	
		
			
			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
		
	
	
		
			1.6 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			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); |