mirror of
https://src.fedoraproject.org/rpms/mesa.git
synced 2024-11-28 02:54:51 +00:00
Fix rendering issues using GTK's GSK_RENDERER=ngl on Raspberry Pi
Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28740 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2269412
This commit is contained in:
parent
9c49b0842d
commit
06834ca2a3
2 changed files with 45 additions and 0 deletions
|
@ -0,0 +1,41 @@
|
|||
From 97f5721bfc4bbbce5c3a39cf48eeb6ad1fb9cf97 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
|
||||
Date: Mon, 15 Apr 2024 12:22:31 +0200
|
||||
Subject: [PATCH] broadcom/compiler: needs_quad_helper_invocation enable
|
||||
PER_QUAD TMU access
|
||||
|
||||
We take advantage of the needs_quad_helper_invocation information to
|
||||
only enable the PER_QUAD TMU access on Fragment Shaders when it is needed.
|
||||
|
||||
PER_QUAD access is also disabled on stages different to fragment shader.
|
||||
Being enabled was causing MMU errors when TMU was doing indexed by vertexid
|
||||
reads on disabled lanes on vertex stage. This problem was exercised by some
|
||||
shaders from the GTK new GSK_RENDERER=ngl that were accessing a constant buffer
|
||||
offset[6], but having PER_QUAD enabled on the TMU access by VertexID was
|
||||
doing hidden incorrect access to not existing vertex 6 and 7 as TMU was
|
||||
accessing the full quad.
|
||||
|
||||
cc: mesa-stable
|
||||
|
||||
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28740>
|
||||
---
|
||||
src/broadcom/compiler/nir_to_vir.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
|
||||
index ff98e4b5961..0303ca96103 100644
|
||||
--- a/src/broadcom/compiler/nir_to_vir.c
|
||||
+++ b/src/broadcom/compiler/nir_to_vir.c
|
||||
@@ -656,6 +656,8 @@ ntq_emit_tmu_general(struct v3d_compile *c, nir_intrinsic_instr *instr,
|
||||
*/
|
||||
uint32_t perquad =
|
||||
is_load && !vir_in_nonuniform_control_flow(c) &&
|
||||
+ c->s->info.stage == MESA_SHADER_FRAGMENT &&
|
||||
+ c->s->info.fs.needs_quad_helper_invocations &&
|
||||
!c->emitted_discard ?
|
||||
GENERAL_TMU_LOOKUP_PER_QUAD :
|
||||
GENERAL_TMU_LOOKUP_PER_PIXEL;
|
||||
--
|
||||
2.44.0
|
||||
|
|
@ -75,6 +75,10 @@ Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz
|
|||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||
|
||||
Patch10: gnome-shell-glthread-disable.patch
|
||||
# Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28740
|
||||
# to fix rendering issues using GTK's GSK_RENDERER=ngl on Raspberry Pi:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2269412
|
||||
Patch11: 0001-broadcom-compiler-needs_quad_helper_invocation-enabl.patch
|
||||
|
||||
BuildRequires: meson >= 1.3.0
|
||||
BuildRequires: gcc
|
||||
|
|
Loading…
Reference in a new issue