summaryrefslogtreecommitdiffstats
path: root/Tests/TestApp/assets/Shaders
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-05-07 15:25:35 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-05-07 15:25:35 +0000
commit5ad9be30fe2e3bceca2d5b1f00afd35a7ced67a8 (patch)
treeb406a1ab31a450d64457668ccf92aa31541b198e /Tests/TestApp/assets/Shaders
parentUpdated core submodule (diff)
downloadDiligentEngine-5ad9be30fe2e3bceca2d5b1f00afd35a7ced67a8.tar.gz
DiligentEngine-5ad9be30fe2e3bceca2d5b1f00afd35a7ced67a8.zip
Test app: added shader resource layout initialization test; updated gl shaders
Diffstat (limited to 'Tests/TestApp/assets/Shaders')
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl2
-rw-r--r--Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.psh101
-rw-r--r--Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.vsh112
-rw-r--r--Tests/TestApp/assets/Shaders/SpriteGL.psh2
-rw-r--r--Tests/TestApp/assets/Shaders/TextureIntTestGL.psh2
-rw-r--r--Tests/TestApp/assets/Shaders/TextureTestGL.psh2
-rw-r--r--Tests/TestApp/assets/Shaders/UniformBufferGL.psh2
-rw-r--r--Tests/TestApp/assets/Shaders/minimalGL.psh4
8 files changed, 220 insertions, 7 deletions
diff --git a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl b/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl
index e90ff5c..2139000 100644
--- a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl
+++ b/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl
@@ -5,7 +5,7 @@ uniform sampler2D g_tex2DTest2;
layout(location = 1)in vec2 ex_UV;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main()
{
diff --git a/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.psh b/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.psh
new file mode 100644
index 0000000..3d93044
--- /dev/null
+++ b/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.psh
@@ -0,0 +1,101 @@
+// Fragment Shader – file "minimal.frag"
+
+uniform sampler2D g_tex2D_Static;
+uniform sampler2D g_tex2DArr_Static[2];
+uniform sampler2D g_tex2D_Mut;
+uniform sampler2D g_tex2DArr_Mut[3];
+uniform sampler2D g_tex2D_Dyn;
+uniform sampler2D g_tex2DArr_Dyn[4];
+
+uniform UniformBuff_Stat
+{
+ vec2 UV;
+}g_UniformBuff_Stat;
+
+uniform UniformBuffArr_Stat
+{
+ vec2 UV;
+}g_UniformBuffArr_Stat[2];
+
+uniform UniformBuff_Dyn
+{
+ vec2 UV;
+}g_UniformBuff_Dyn;
+
+uniform UniformBuffArr_Dyn
+{
+ vec2 UV;
+}g_UniformBuffArr_Dyn[4];
+
+uniform UniformBuff_Mut
+{
+ vec2 UV;
+}g_UniformBuff_Mut;
+
+uniform UniformBuffArr_Mut
+{
+ vec2 UV;
+}g_UniformBuffArr_Mut[3];
+
+layout(std140) buffer storageBuff_Static
+{
+ vec4 UV[];
+}g_StorageBuff_Stat;
+
+layout(std140) buffer storageBuffArr_Static
+{
+ vec4 UV[];
+}g_StorageBuffArr_Stat[2];
+
+layout(std140) buffer storageBuff_Dyn
+{
+ vec4 UV[];
+}g_StorageBuff_Dyn;
+
+layout(std140) buffer storageBuffArr_Dyn
+{
+ vec4 UV[];
+}g_StorageBuffArr_Dyn[4];
+
+layout(std140) buffer storageBuff_Mut
+{
+ vec4 UV[];
+}g_StorageBuff_Mut;
+
+layout(std140) buffer storageBuffArr_Mut
+{
+ vec4 UV[];
+}g_StorageBuffArr_Mut[3];
+
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImg_Stat;
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImgArr_Mut[2];
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImgArr_Dyn[2];
+
+layout(location = 0)in vec4 in_Color;
+layout(location = 0)out vec4 out_Color;
+
+void main(void)
+{
+ out_Color = in_Color;
+
+ out_Color += textureLod(g_tex2D_Static, g_UniformBuff_Stat.UV + g_StorageBuff_Stat.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Static[0], g_UniformBuffArr_Stat[0].UV + g_StorageBuffArr_Stat[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Static[1], g_UniformBuffArr_Stat[1].UV + g_StorageBuffArr_Stat[1].UV[0].xy, 0.0);
+
+ out_Color += textureLod(g_tex2D_Mut, g_UniformBuff_Mut.UV + g_StorageBuff_Mut.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[0], g_UniformBuffArr_Mut[0].UV + g_StorageBuffArr_Mut[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[1], g_UniformBuffArr_Mut[1].UV + g_StorageBuffArr_Mut[1].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[2], g_UniformBuffArr_Mut[2].UV + g_StorageBuffArr_Mut[2].UV[0].xy, 0.0);
+
+ out_Color += textureLod(g_tex2D_Dyn, g_UniformBuff_Dyn.UV + g_StorageBuff_Dyn.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[0], g_UniformBuffArr_Dyn[0].UV + g_StorageBuffArr_Dyn[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[1], g_UniformBuffArr_Dyn[1].UV + g_StorageBuffArr_Dyn[1].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[2], g_UniformBuffArr_Dyn[2].UV + g_StorageBuffArr_Dyn[2].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[3], g_UniformBuffArr_Dyn[3].UV + g_StorageBuffArr_Dyn[3].UV[0].xy, 0.0);
+
+ imageStore(g_tex2DStorageImg_Stat, ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Mut[0], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Mut[1], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Dyn[0], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Dyn[1], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+}
diff --git a/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.vsh b/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.vsh
new file mode 100644
index 0000000..441bf59
--- /dev/null
+++ b/Tests/TestApp/assets/Shaders/ShaderResLayoutTestGL.vsh
@@ -0,0 +1,112 @@
+
+uniform sampler2D g_tex2D_Static;
+uniform sampler2D g_tex2DArr_Static[2];
+uniform sampler2D g_tex2D_Mut;
+uniform sampler2D g_tex2DArr_Mut[3];
+uniform sampler2D g_tex2D_Dyn;
+uniform sampler2D g_tex2DArr_Dyn[4];
+
+uniform UniformBuff_Stat
+{
+ vec2 UV;
+}g_UniformBuff_Stat;
+
+uniform UniformBuffArr_Stat
+{
+ vec2 UV;
+}g_UniformBuffArr_Stat[2];
+
+uniform UniformBuff_Dyn
+{
+ vec2 UV;
+}g_UniformBuff_Dyn;
+
+uniform UniformBuffArr_Dyn
+{
+ vec2 UV;
+}g_UniformBuffArr_Dyn[4];
+
+uniform UniformBuff_Mut
+{
+ vec2 UV;
+}g_UniformBuff_Mut;
+
+uniform UniformBuffArr_Mut
+{
+ vec2 UV;
+}g_UniformBuffArr_Mut[3];
+
+layout(std140) buffer storageBuff_Static
+{
+ vec4 UV[];
+}g_StorageBuff_Stat;
+
+layout(std140) buffer storageBuffArr_Static
+{
+ vec4 UV[];
+}g_StorageBuffArr_Stat[2];
+
+layout(std140) buffer storageBuff_Dyn
+{
+ vec4 UV[];
+}g_StorageBuff_Dyn;
+
+layout(std140) buffer storageBuffArr_Dyn
+{
+ vec4 UV[];
+}g_StorageBuffArr_Dyn[4];
+
+layout(std140) buffer storageBuff_Mut
+{
+ vec4 UV[];
+}g_StorageBuff_Mut;
+
+layout(std140) buffer storageBuffArr_Mut
+{
+ vec4 UV[];
+}g_StorageBuffArr_Mut[3];
+
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImg_Stat;
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImgArr_Mut[2];
+layout(rgba8) uniform writeonly image2D g_tex2DStorageImgArr_Dyn[2];
+
+layout(location = 0) out vec4 out_Color;
+
+//To use any built-in input or output in the gl_PerVertex and
+//gl_PerFragment blocks in separable program objects, shader code must
+//redeclare those blocks prior to use.
+//
+// Declaring this block causes compilation error on NVidia GLES
+#ifndef GL_ES
+out gl_PerVertex
+{
+ vec4 gl_Position;
+};
+#endif
+
+void main(void)
+{
+ out_Color = vec4(0.0, 0.0, 0.0, 0.0);
+ out_Color += textureLod(g_tex2D_Static, g_UniformBuff_Stat.UV + g_StorageBuff_Stat.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Static[0], g_UniformBuffArr_Stat[0].UV + g_StorageBuffArr_Stat[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Static[1], g_UniformBuffArr_Stat[1].UV + g_StorageBuffArr_Stat[1].UV[0].xy, 0.0);
+
+ out_Color += textureLod(g_tex2D_Mut, g_UniformBuff_Mut.UV + g_StorageBuff_Mut.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[0], g_UniformBuffArr_Mut[0].UV + g_StorageBuffArr_Mut[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[1], g_UniformBuffArr_Mut[1].UV + g_StorageBuffArr_Mut[1].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Mut[2], g_UniformBuffArr_Mut[2].UV + g_StorageBuffArr_Mut[2].UV[0].xy, 0.0);
+
+ out_Color += textureLod(g_tex2D_Dyn, g_UniformBuff_Dyn.UV + g_StorageBuff_Dyn.UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[0], g_UniformBuffArr_Dyn[0].UV + g_StorageBuffArr_Dyn[0].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[1], g_UniformBuffArr_Dyn[1].UV + g_StorageBuffArr_Dyn[1].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[2], g_UniformBuffArr_Dyn[2].UV + g_StorageBuffArr_Dyn[2].UV[0].xy, 0.0);
+ out_Color += textureLod(g_tex2DArr_Dyn[3], g_UniformBuffArr_Dyn[3].UV + g_StorageBuffArr_Dyn[3].UV[0].xy, 0.0);
+
+ imageStore(g_tex2DStorageImg_Stat, ivec2(0,0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Mut[0], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Mut[1], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Dyn[0], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+ imageStore(g_tex2DStorageImgArr_Dyn[1], ivec2(0, 0), vec4(1.0, 2.0, 3.0, 4.0));
+
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
+}
diff --git a/Tests/TestApp/assets/Shaders/SpriteGL.psh b/Tests/TestApp/assets/Shaders/SpriteGL.psh
index 557ec8e..f2bdd11 100644
--- a/Tests/TestApp/assets/Shaders/SpriteGL.psh
+++ b/Tests/TestApp/assets/Shaders/SpriteGL.psh
@@ -3,7 +3,7 @@
layout(location = 1)in vec2 in_UV;
uniform sampler2D g_tex2DTest;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main(void)
{
diff --git a/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh b/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh
index 114bcb4..003426d 100644
--- a/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh
+++ b/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh
@@ -3,7 +3,7 @@
layout(location = 1)in vec2 in_UV;
uniform isampler2D g_tex2DTest;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main(void)
{
diff --git a/Tests/TestApp/assets/Shaders/TextureTestGL.psh b/Tests/TestApp/assets/Shaders/TextureTestGL.psh
index 021f555..3f84f11 100644
--- a/Tests/TestApp/assets/Shaders/TextureTestGL.psh
+++ b/Tests/TestApp/assets/Shaders/TextureTestGL.psh
@@ -3,7 +3,7 @@
layout(location = 1)in vec2 in_UV;
uniform sampler2D g_tex2DTest;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main(void)
{
diff --git a/Tests/TestApp/assets/Shaders/UniformBufferGL.psh b/Tests/TestApp/assets/Shaders/UniformBufferGL.psh
index 5400a66..267e678 100644
--- a/Tests/TestApp/assets/Shaders/UniformBufferGL.psh
+++ b/Tests/TestApp/assets/Shaders/UniformBufferGL.psh
@@ -12,7 +12,7 @@ uniform cbTestBlock
vec4 Color;
}g_TestBlock;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main(void)
{
diff --git a/Tests/TestApp/assets/Shaders/minimalGL.psh b/Tests/TestApp/assets/Shaders/minimalGL.psh
index c39bb30..8aafaa2 100644
--- a/Tests/TestApp/assets/Shaders/minimalGL.psh
+++ b/Tests/TestApp/assets/Shaders/minimalGL.psh
@@ -1,8 +1,8 @@
// Fragment Shader – file "minimal.frag"
-layout(location = 1)in vec3 ex_Color;
+layout(location = 1) in vec3 ex_Color;
-out vec4 out_Color;
+layout(location = 0) out vec4 out_Color;
void main(void)
{