mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2025-12-16 07:15:43 +01:00
glmark2: upgrade 20201114 -> 2021.02
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
a8d0838fa7
commit
f89473d972
|
|
@ -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$
|
|
||||||
|
|
||||||
|
|
@ -11,15 +11,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
|
||||||
DEPENDS = "libpng jpeg udev"
|
DEPENDS = "libpng jpeg udev"
|
||||||
DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native', '', d)}"
|
DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native', '', d)}"
|
||||||
|
|
||||||
PV = "20201114+${SRCPV}"
|
PV = "2021.02+${SRCPV}"
|
||||||
|
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
git://github.com/glmark2/glmark2.git;protocol=https \
|
git://github.com/glmark2/glmark2.git;protocol=https \
|
||||||
file://0001-fix-dispmanx-build.patch \
|
file://0001-fix-dispmanx-build.patch \
|
||||||
file://0002-run-dispmanx-fullscreen.patch \
|
file://0002-run-dispmanx-fullscreen.patch \
|
||||||
file://0003-fix-precision-handling-bugs.patch \
|
|
||||||
"
|
"
|
||||||
SRCREV = "784aca755a469b144acf3cae180b6e613b7b057a"
|
SRCREV = "4b2bbe803576d48f08367aa5441740f9319c21e7"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user