a171087180
Using vertex-style stage input is complex, and it doesn't support nesting of structures or arrays. By using raw buffer input instead, we get this support "for free," and everything becomes much simpler. Arguably, this is the way I should've done this in the first place. Eventually, I'd like to make this the default, and then remove the option altogether. (And I still need to do that with `multi_patch_workgroup`...) Should help fix 66 tests in the Vulkan CTS, under the following trees: - `dEQP-VK.pipeline.*.interface_matching.*` - `dEQP-VK.tessellation.user_defined_io.*` - `dEQP-VK.clipping.user_defined.*`
32 lines
751 B
GLSL
32 lines
751 B
GLSL
#version 450
|
|
layout(triangles, ccw, equal_spacing) in;
|
|
|
|
out gl_PerVertex
|
|
{
|
|
vec4 gl_Position;
|
|
float gl_PointSize;
|
|
float gl_ClipDistance[1];
|
|
float gl_CullDistance[1];
|
|
};
|
|
|
|
struct t35
|
|
{
|
|
vec2 m0;
|
|
vec4 m1;
|
|
};
|
|
|
|
layout(location = 0) in t36
|
|
{
|
|
vec2 m0;
|
|
t35 m1;
|
|
} v40[32];
|
|
|
|
layout(location = 0) out float v80;
|
|
|
|
void main()
|
|
{
|
|
gl_Position = vec4((gl_TessCoord.xy * 2.0) - vec2(1.0), 0.0, 1.0);
|
|
float v34 = ((float(abs(v40[0].m1.m1.x - (-4.0)) < 0.001000000047497451305389404296875) * float(abs(v40[0].m1.m1.y - (-9.0)) < 0.001000000047497451305389404296875)) * float(abs(v40[0].m1.m1.z - 3.0) < 0.001000000047497451305389404296875)) * float(abs(v40[0].m1.m1.w - 7.0) < 0.001000000047497451305389404296875);
|
|
v80 = v34;
|
|
}
|