Commit 0f4ea932 authored by Ian Romanick's avatar Ian Romanick
Browse files

glsl-1.30: Verify that gl_Frag{Color,Data} and a function out can be written



These tests try to trick the GLSL compiler by writing a built-in
fragment shader output and a function "out" variable.  The compiler is
supposed to generate an error if a built-in output and a user-defined
shader "out" variable are written.  Writing to a built-in and a
funciton "out" should be allowed.
Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
Reviewed-by: default avatarChad Versace <chad.versace@linux.intel.com>
parent 82aa5a6c
/* [config]
* expect_result: pass
* glsl_version: 1.30
* [end config]
*
* From page 68 of the GLSL 1.30 spec:
*
* "Similarly, if user declared output variables are in use (statically
* assigned to), then the built-in variables gl_FragColor and gl_FragData
* may not be assigned to. These incorrect usages all generate compile
* time errors."
*
* This test tries to trick the compiler by writing to gl_FragColor and an
* 'out' parameter of a function. This is valid.
*/
#version 130
void function(out vec4 f)
{
f = vec4(1.0);
}
void main()
{
vec4 v;
function(v);
gl_FragColor = v;
}
/* [config]
* expect_result: pass
* glsl_version: 1.30
* [end config]
*
* From page 68 of the GLSL 1.30 spec:
*
* "Similarly, if user declared output variables are in use (statically
* assigned to), then the built-in variables gl_FragColor and gl_FragData
* may not be assigned to. These incorrect usages all generate compile
* time errors."
*
* This test tries to trick the compiler by writing to gl_FragColor and an
* 'out' parameter of a function. This is valid.
*/
#version 130
void function(out vec4 f)
{
f = vec4(1.0);
}
void main()
{
vec4 v;
function(v);
gl_FragData[0] = v;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment