summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2016-05-09 13:13:20 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2016-05-09 11:15:07 +0000
commitf643f6504bf2233c7a5c937be620daf944bb0f61 (patch)
tree267a236166cbb171afb511ef51fa5fa93d16b77a /src
parent09d1554599b285a16e24e5e9f6e15459779e7144 (diff)
Fix ANGLE glGetUniform*v functions to work properly with arrays
glGetUniform*v functions are supposed to return just a single array element, so returning the whole array is always incorrect. Task-number: QTBUG-53072 Change-Id: I22f05d420082d4d9de06d975b3d0f5e64d3e0c41 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/angle/src/libANGLE/Program.cpp2
-rw-r--r--src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch31
2 files changed, 32 insertions, 1 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/Program.cpp b/src/3rdparty/angle/src/libANGLE/Program.cpp
index 748ceae030..69497c4436 100644
--- a/src/3rdparty/angle/src/libANGLE/Program.cpp
+++ b/src/3rdparty/angle/src/libANGLE/Program.cpp
@@ -2510,7 +2510,7 @@ void Program::getUniformInternal(GLint location, DestT *dataOut) const
return;
}
- int components = VariableComponentCount(uniform.type) * uniform.elementCount();
+ int components = VariableComponentCount(uniform.type);
switch (componentType)
{
diff --git a/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch b/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch
new file mode 100644
index 0000000000..b53e11038b
--- /dev/null
+++ b/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch
@@ -0,0 +1,31 @@
+From 2d4a7aec7957e507cbf0b4b8dcf68abb26667e33 Mon Sep 17 00:00:00 2001
+From: Miikka Heikkinen <miikka.heikkinen@qt.io>
+Date: Mon, 9 May 2016 13:13:20 +0300
+Subject: [PATCH] Fix ANGLE glGetUniform*v functions to work properly array
+ uniforms
+
+glGetUniform*v functions are supposed to return just a single
+array element, so returning the whole array is always incorrect.
+
+Task-number: QTBUG-53072
+Change-Id: I22f05d420082d4d9de06d975b3d0f5e64d3e0c41
+---
+ src/3rdparty/angle/src/libANGLE/Program.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/3rdparty/angle/src/libANGLE/Program.cpp b/src/3rdparty/angle/src/libANGLE/Program.cpp
+index 748ceae..69497c4 100644
+--- a/src/3rdparty/angle/src/libANGLE/Program.cpp
++++ b/src/3rdparty/angle/src/libANGLE/Program.cpp
+@@ -2510,7 +2510,7 @@ void Program::getUniformInternal(GLint location, DestT *dataOut) const
+ return;
+ }
+
+- int components = VariableComponentCount(uniform.type) * uniform.elementCount();
++ int components = VariableComponentCount(uniform.type);
+
+ switch (componentType)
+ {
+--
+2.6.3.windows.1
+