Module: Mesa
Branch: staging/20.0
Commit: 1ee63ec9e72eaa00b31820a080a929e67022897d
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ee63ec9e72eaa00b31820a080a929e67022897d

Author: Marek Vasut <[email protected]>
Date:   Sun Mar 22 03:48:05 2020 +0100

etnaviv: Emit PE.ALPHA_COLOR_EXT* on GPUs with half-float support

At least GC880 (iMX6S), GC2000 (iMX6Q) blobs do not emit the
PE.ALPHA_COLOR_EXT0 and PE.ALPHA_COLOR_EXT1 into the command
stream. The GCnano (STM32MP1) is not affected by this change
either. This is because neither of these GPUs support the
half-float feature.

Emit PE.ALPHA_COLOR_EXT* in etnaviv only if half-float support
is present in the GPU. This fixes all of the currently failing
dEQPs in this group:
  dEQP-GLES2.functional.fragment_ops.blend.*

Fixes: 76adf041f25 ("etnaviv: fix blend color on newer GPUs")
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Christian Gmeiner <[email protected]>
Reviewed-by: Jonathan Marek <[email protected]>
Tested-by: Marge Bot 
<https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4277>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4277>
(cherry picked from commit 9e78f17b74a862e34891901cde8292f91adeb655)

---

 .pick_status.json                          | 2 +-
 src/gallium/drivers/etnaviv/etnaviv_emit.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index a397a511fde..742bf1363ed 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -211,7 +211,7 @@
         "description": "etnaviv: Emit PE.ALPHA_COLOR_EXT* on GPUs with 
half-float support",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "76adf041f25defad204abea1ed49b82fd9c264d1"
     },
diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c 
b/src/gallium/drivers/etnaviv/etnaviv_emit.c
index b92cf770cf4..d572bfe3007 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_emit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c
@@ -532,7 +532,8 @@ etna_emit_state(struct etna_context *ctx)
          /*014A8*/ EMIT_STATE(PE_DITHER(x), blend->PE_DITHER[x]);
       }
    }
-   if (unlikely(dirty & (ETNA_DIRTY_BLEND_COLOR))) {
+   if (unlikely(dirty & (ETNA_DIRTY_BLEND_COLOR)) &&
+       VIV_FEATURE(screen, chipMinorFeatures1, HALF_FLOAT)) {
          /*014B0*/ EMIT_STATE(PE_ALPHA_COLOR_EXT0, 
ctx->blend_color.PE_ALPHA_COLOR_EXT0);
          /*014B4*/ EMIT_STATE(PE_ALPHA_COLOR_EXT1, 
ctx->blend_color.PE_ALPHA_COLOR_EXT1);
    }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to