summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag55
1 files changed, 55 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag
new file mode 100644
index 00000000000..461469cd484
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.texture.struct.frag
@@ -0,0 +1,55 @@
+struct s1_t {
+ float c0;
+ float2 c1;
+ float c2;
+};
+
+struct s2_t {
+ float c0;
+ float3 c1;
+};
+
+struct s3_t {
+ float2 c0;
+ float1 c1;
+};
+
+struct s4_t {
+ int c0;
+ int2 c1;
+ int c2;
+};
+
+struct s5_t {
+ uint c0;
+ uint c1;
+};
+
+SamplerState g_sSamp;
+Texture2D <s1_t> g_tTex2s1;
+Texture2D <s2_t> g_tTex2s2;
+Texture2D <s3_t> g_tTex2s3;
+Texture2D <s4_t> g_tTex2s4;
+Texture2D <s5_t> g_tTex2s5;
+
+Texture2D <s1_t> g_tTex2s1a; // same type as g_tTex2s1, to test fn signature matching.
+
+// function overloading to test name mangling with textures templatized on structs
+s1_t fn1(Texture2D <s1_t> t1) { return t1 . Sample(g_sSamp, float2(0.6, 0.61)); }
+s2_t fn1(Texture2D <s2_t> t2) { return t2 . Sample(g_sSamp, float2(0.6, 0.61)); }
+
+float4 main() : SV_Target0
+{
+ s1_t s1 = g_tTex2s1 . Sample(g_sSamp, float2(0.1, 0.11));
+ s2_t s2 = g_tTex2s2 . Sample(g_sSamp, float2(0.2, 0.21));
+ s3_t s3 = g_tTex2s3 . Sample(g_sSamp, float2(0.3, 0.31));
+ s4_t s4 = g_tTex2s4 . Sample(g_sSamp, float2(0.4, 0.41));
+ s5_t s5 = g_tTex2s5 . Sample(g_sSamp, float2(0.5, 0.51));
+
+ s1_t r0 = fn1(g_tTex2s1);
+ s2_t r1 = fn1(g_tTex2s2);
+ s1_t r2 = fn1(g_tTex2s1a);
+
+ return 0;
+}
+