From f643f6504bf2233c7a5c937be620daf944bb0f61 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 9 May 2016 13:13:20 +0300 Subject: 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 Reviewed-by: Oliver Wolff --- src/3rdparty/angle/src/libANGLE/Program.cpp | 2 +- ...glGetUniform-v-functions-to-work-properly.patch | 31 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch 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 +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 + -- cgit v1.2.3