aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch')
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch b/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch
deleted file mode 100644
index af88f6cd23..0000000000
--- a/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 90e837ffd1ff5c9add1074d69de23e58a3a4810e Mon Sep 17 00:00:00 2001
-From: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-Date: Wed, 11 Nov 2020 09:26:03 -0500
-Subject: [PATCH 1/3] terrain: Fix precision bug in light rendering
-
-Resulting in overly bright rendering when mediump is implemented as
-fp16.
-
-Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
----
- data/shaders/terrain.frag | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/data/shaders/terrain.frag b/data/shaders/terrain.frag
-index 84d085c..58f17ea 100644
---- a/data/shaders/terrain.frag
-+++ b/data/shaders/terrain.frag
-@@ -67,7 +67,12 @@ void main() {
- vec3 pointSpecular = vec3( 0.0 );
- for ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {
- vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );
-+#ifdef GL_FRAGMENT_PRECISION_HIGH
-+ // should be highp for correct behaviour if mediump is implemented as fp16
-+ highp vec3 lVector = lPosition.xyz + vViewPosition.xyz;
-+#else
- vec3 lVector = lPosition.xyz + vViewPosition.xyz;
-+#endif
- float lDistance = 1.0;
- if ( pointLightDistance[ i ] > 0.0 )
- lDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );
-
-From 1edd76fda77edabd49d713912aee49b8360c86c3 Mon Sep 17 00:00:00 2001
-From: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-Date: Wed, 11 Nov 2020 09:49:52 -0500
-Subject: [PATCH 2/3] terrain: Fix precision handling in noise shader
-
-Another overflow resulting in infinity in mediump. Note this bug is
-masked if the driver clamps infinity to MAX_FLOAT, but it's still our
-bug.
-
-Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
----
- data/shaders/terrain-noise.frag | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/data/shaders/terrain-noise.frag b/data/shaders/terrain-noise.frag
-index 7fea5c0..9535e58 100644
---- a/data/shaders/terrain-noise.frag
-+++ b/data/shaders/terrain-noise.frag
-@@ -17,7 +17,13 @@ uniform float time;
- uniform MEDIUMP vec2 uvScale;
- varying vec2 vUv;
-
-+#ifdef GL_FRAGMENT_PRECISION_HIGH
-+// x should be passed as highp since the intermediate multiplications can
-+// overflow with mediump
-+vec4 permute(highp vec4 x)
-+#else
- vec4 permute(vec4 x)
-+#endif
- {
- return mod(((x * 34.0) + 1.0) * x, 289.0);
- }
-
-From e866cc633ffc450e5358b2742f32ca360e4f3f12 Mon Sep 17 00:00:00 2001
-From: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-Date: Wed, 11 Nov 2020 09:35:21 -0500
-Subject: [PATCH 3/3] loop,function,conditionals: Fix mediump overflow
-
-The multiplication can produce infinity.
-
-Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
----
- data/shaders/conditionals.frag | 9 ++++++++-
- data/shaders/function.frag | 9 ++++++++-
- data/shaders/loop.frag | 9 ++++++++-
- 3 files changed, 24 insertions(+), 3 deletions(-)
-
-diff --git a/data/shaders/conditionals.frag b/data/shaders/conditionals.frag
-index 3bd2507..e902263 100644
---- a/data/shaders/conditionals.frag
-+++ b/data/shaders/conditionals.frag
-@@ -2,7 +2,14 @@ varying vec4 dummy;
-
- void main(void)
- {
-- float d = fract(gl_FragCoord.x * gl_FragCoord.y * 0.0001);
-+#ifdef GL_FRAGMENT_PRECISION_HIGH
-+ // should be declared highp since the multiplication can overflow in
-+ // mediump, particularly if mediump is implemented as fp16
-+ highp vec2 FragCoord = gl_FragCoord.xy;
-+#else
-+ vec2 FragCoord = gl_FragCoord.xy;
-+#endif
-+ float d = fract(FragCoord.x * FragCoord.y * 0.0001);
-
- $MAIN$
-
-diff --git a/data/shaders/function.frag b/data/shaders/function.frag
-index 3e3c74f..9d0230e 100644
---- a/data/shaders/function.frag
-+++ b/data/shaders/function.frag
-@@ -8,7 +8,14 @@ $PROCESS$
-
- void main(void)
- {
-- float d = fract(gl_FragCoord.x * gl_FragCoord.y * 0.0001);
-+#ifdef GL_FRAGMENT_PRECISION_HIGH
-+ // should be declared highp since the multiplication can overflow in
-+ // mediump, particularly if mediump is implemented as fp16
-+ highp vec2 FragCoord = gl_FragCoord.xy;
-+#else
-+ vec2 FragCoord = gl_FragCoord.xy;
-+#endif
-+ float d = fract(FragCoord.x * FragCoord.y * 0.0001);
-
- $MAIN$
-
-diff --git a/data/shaders/loop.frag b/data/shaders/loop.frag
-index 31ae23e..9a6afd2 100644
---- a/data/shaders/loop.frag
-+++ b/data/shaders/loop.frag
-@@ -3,7 +3,14 @@ uniform int FragmentLoops;
-
- void main(void)
- {
-- float d = fract(gl_FragCoord.x * gl_FragCoord.y * 0.0001);
-+#ifdef GL_FRAGMENT_PRECISION_HIGH
-+ // should be declared highp since the multiplication can overflow in
-+ // mediump, particularly if mediump is implemented as fp16
-+ highp vec2 FragCoord = gl_FragCoord.xy;
-+#else
-+ vec2 FragCoord = gl_FragCoord.xy;
-+#endif
-+ float d = fract(FragCoord.x * FragCoord.y * 0.0001);
-
- $MAIN$
-