summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-benchmark')
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.25.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.24.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch138
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch2
4 files changed, 141 insertions, 2 deletions
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.24.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.25.bb
index 1a42fd45c2..6ab7ab79dd 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.24.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.25.bb
@@ -22,7 +22,7 @@ PACKAGECONFIG_NUMA_armeb = ""
PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
PACKAGECONFIG[numa] = ",--disable-numa,numactl"
-SRCREV = "45d3aa1f57be23db180f8db3d133e8094370f35c"
+SRCREV = "fd80924b22fef6ce0d5580724d91490347445f90"
SRC_URI = "git://git.kernel.dk/fio.git \
"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch
new file mode 100644
index 0000000000..af88f6cd23
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-fix-precision-handling-bugs.patch
@@ -0,0 +1,138 @@
+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$
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 44bce9fb5f..a5872f4354 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -17,6 +17,7 @@ SRC_URI = " \
git://github.com/glmark2/glmark2.git;protocol=https \
file://0001-fix-dispmanx-build.patch \
file://0002-run-dispmanx-fullscreen.patch \
+ file://0003-fix-precision-handling-bugs.patch \
"
SRCREV = "784aca755a469b144acf3cae180b6e613b7b057a"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
index 353d80b3b7..1d5d9c12ab 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
@@ -22,7 +22,7 @@ index 34a1371..3786741 100755
trap 'rm -f ${BASE}$$.s ${BASE}$$.c ${BASE}$$.o ${BASE}$$; exit 1' 1 2 15
-LDLIBS=-lm
-+LDLIBS+=-lm
++LDLIBS="$LDLIBS -lm"
# check for HP-UX's ANSI compiler
echo "main(int ac, char *av[]) { int i; }" > ${BASE}$$.c