yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Julius IkkalaFix varying output structs in GLSL source (#8501)9e34c6d94

master
914 B45 linesraw
1//TEST:SIMPLE(filecheck=CHECK_GLSL): -target glsl -stage fragment -entry fragmentMain -allow-glsl
2
3//CHECK_GLSL: layout(location = 0)
4//CHECK_GLSL: out vec4 entryPointParam_fragmentMain_cd_out1_0;
5
6//CHECK_GLSL: layout(location = 1)
7//CHECK_GLSL: out vec4 entryPointParam_fragmentMain_cd_out2_0;
8
9//CHECK_GLSL: layout(location = 0)
10//CHECK_GLSL: in vec2 vd_texcoord_0_0;
11
12//CHECK_GLSL: layout(location = 1)
13//CHECK_GLSL: in vec2 vd_texcoord_1_0;
14
15//CHECK_GLSL: layout(location = 2)
16//CHECK_GLSL: in vec4 vd_inner_texcoord_2_0;
17
18import glsl;
19
20#version 400
21
22struct innerData
23{
24    vec4 texcoord_2;
25};
26
27in VertexData
28{
29    vec2 texcoord_0;
30    vec2 texcoord_1;
31    innerData inner;
32} vd;
33
34out ColorData
35{
36    vec4 out1;
37    vec4 out2;
38} cd;
39
40void fragmentMain()
41{
42    cd.out1 = vec4(vd.texcoord_0, vd.texcoord_1.x, vd.inner.texcoord_2.y);
43    cd.out2 = vec4(vd.texcoord_1, vd.texcoord_0.x, vd.inner.texcoord_2.y);
44}
45