First Commit
This commit is contained in:
111
externals/glslang/Test/vulkan.frag
vendored
Normal file
111
externals/glslang/Test/vulkan.frag
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
#version 450
|
||||
|
||||
uniform sampler s; // ERROR, no binding
|
||||
uniform sampler sA[4]; // ERROR, no binding
|
||||
uniform texture2D t2d; // ERROR, no binding
|
||||
uniform texture3D t3d[4]; // ERROR, no binding
|
||||
int i;
|
||||
uniform samplerShadow sShadow;
|
||||
uniform texture3D t3d5[5];
|
||||
writeonly uniform image2D i2d;
|
||||
|
||||
void badConst()
|
||||
{
|
||||
sampler2D(t2d); // ERROR, need 2 args
|
||||
sampler2D(s, s); // ERROR, wrong type
|
||||
sampler2D(i, i); // ERROR, wrong type
|
||||
sampler2D(t2d, i); // ERROR, wrong type
|
||||
sampler2D(t2d, t2d); // ERROR, wrong type
|
||||
sampler2D(t2d, sA); // ERROR, wrong type
|
||||
|
||||
sampler3D[4](t3d5, sA[2]); // ERROR, can't make array
|
||||
sampler2D(i2d, s); // ERROR, image instead of texture
|
||||
sampler2D(t3d[1], s); // ERROR, 3D not 2D
|
||||
sampler2D(t2d, sShadow);
|
||||
sampler2DShadow(t2d, s);
|
||||
}
|
||||
|
||||
sampler2D s2D = sampler2D(t2d, s); // ERROR, no sampler constructor
|
||||
sampler3D s3d[4] = sampler3D[4](t3d, sA[2]); // ERROR, no sampler constructor
|
||||
|
||||
out vec4 color; // ERROR, no location
|
||||
|
||||
void main()
|
||||
{
|
||||
color = texture(s2D, vec2(0.5));
|
||||
color += texture(s3d[i], vec3(0.5));
|
||||
}
|
||||
|
||||
layout(push_constant) buffer pcb { // ERROR, not on a buffer
|
||||
int a;
|
||||
} pcbInst;
|
||||
|
||||
layout(push_constant) uniform float pcfloat; // ERROR 2X: not on a non-block, and non-opaque outside block
|
||||
|
||||
layout(push_constant) uniform; // ERROR, needs an object
|
||||
layout(binding=2, push_constant) uniform pcbnd1 { // ERROR, can't have binding
|
||||
int a;
|
||||
} pcbnd1inst;
|
||||
layout(push_constant) uniform pcbnd2 { // ERROR, can't be array
|
||||
float a;
|
||||
} pcbnd2inst[2];
|
||||
layout(std430, push_constant) uniform pcb1 { int a; } pcb1inst;
|
||||
layout(push_constant) uniform pcb2 {
|
||||
int a;
|
||||
}; // Okay now to have no instance name
|
||||
|
||||
layout(input_attachment_index = 2) uniform subpassInput subD;
|
||||
layout(input_attachment_index = 3) uniform texture2D subDbad1; // ERROR, not a texture
|
||||
layout(input_attachment_index = 4) writeonly uniform image2D subDbad2; // ERROR, not an image
|
||||
uniform subpassInput subDbad3; // ERROR, need attachment number
|
||||
layout(input_attachment_index = 2) uniform subpassInputMS subDMS;
|
||||
|
||||
void foo()
|
||||
{
|
||||
vec4 v = subpassLoad(subD);
|
||||
v += subpassLoadMS(subD); // ERROR, no such function
|
||||
v += subpassLoad(subD, 2); // ERROR, no such sig.
|
||||
v += subpassLoad(subDMS, 2);
|
||||
v += subpassLoadMS(subDMS, 2); // ERROR, no such function
|
||||
}
|
||||
|
||||
subroutine int fooS; // ERROR, not in SPV
|
||||
subroutine int fooSub(); // ERROR, not in SPV
|
||||
|
||||
uniform vec4 dv4; // ERROR, no default uniforms
|
||||
|
||||
void fooTex()
|
||||
{
|
||||
texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture
|
||||
imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture
|
||||
}
|
||||
|
||||
precision highp float;
|
||||
|
||||
layout(location=0) in vec2 vTexCoord;
|
||||
layout(location=0) out vec4 FragColor;
|
||||
|
||||
vec4 userTexture(mediump sampler2D samp, vec2 coord)
|
||||
{
|
||||
return texture(samp, coord);
|
||||
}
|
||||
|
||||
bool cond;
|
||||
|
||||
void callUserTexture()
|
||||
{
|
||||
userTexture(sampler2D(t2d,s), vTexCoord); // ERROR, not point of use
|
||||
userTexture((sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use
|
||||
userTexture((sampler2D(t2d,s), sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use
|
||||
userTexture(cond ? sampler2D(t2d,s) : sampler2D(t2d,s), vTexCoord); // ERROR, no ?:, not point of use
|
||||
|
||||
gl_NumSamples; // ERROR, not for Vulkan
|
||||
}
|
||||
|
||||
void noise()
|
||||
{
|
||||
noise1(dv4);
|
||||
noise2(4.0);
|
||||
noise3(vec2(3));
|
||||
noise4(dv4);
|
||||
}
|
||||
Reference in New Issue
Block a user