Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2019-02-13 18:39:59 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2019-02-13 18:39:59 +0300
commitd7090b8322ef4394424711081bad8af104b49603 (patch)
tree8244ad8536987d7f3b416888e906ce79a6927e9a /reference/opt/shaders/asm
parentd9ed3dcc7a7e62e5f95fd8f24e3d35e7e402ae92 (diff)
GLSL: Fix block name shenanigans in edge cases.
When we force recompile, the old var.self name we used as a fallback name might have been disturbed, so we should recover certain names back to their original form in case we are forced to take a recompile to make the naming algorithm more deterministic.
Diffstat (limited to 'reference/opt/shaders/asm')
-rw-r--r--reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp35
1 files changed, 35 insertions, 0 deletions
diff --git a/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp b/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp
new file mode 100644
index 00000000..ff83de34
--- /dev/null
+++ b/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp
@@ -0,0 +1,35 @@
+#version 450
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+
+layout(binding = 0, std430) buffer MyFirstBuffer
+{
+ uint _data[];
+} MyFirstBuffer_1;
+
+layout(binding = 0, std430) buffer MySecondBuffer
+{
+ uint _data[];
+} MySecondBuffer_1;
+
+layout(binding = 0, std430) buffer MyThirdBuffer
+{
+ uint _data[];
+} MyThirdBuffer_1;
+
+void main()
+{
+ uint _105 = MyFirstBuffer_1._data[0];
+ uint _109 = MyFirstBuffer_1._data[1];
+ uint _113 = MyFirstBuffer_1._data[2];
+ uint _117 = MyFirstBuffer_1._data[3];
+ uint _122 = MySecondBuffer_1._data[1];
+ uint _126 = MySecondBuffer_1._data[2];
+ uint _130 = MySecondBuffer_1._data[3];
+ uint _134 = MySecondBuffer_1._data[4];
+ uvec4 _140 = uvec4(_105, _109, _113, _117) + uvec4(_122, _126, _130, _134);
+ MyThirdBuffer_1._data[0] = _140.x;
+ MyThirdBuffer_1._data[1] = _140.y;
+ MyThirdBuffer_1._data[2] = _140.z;
+ MyThirdBuffer_1._data[3] = _140.w;
+}
+