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
|
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||||
|
|
||||||
Patch10: gnome-shell-glthread-disable.patch
|
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: meson >= 1.3.0
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
|
Loading…
Reference in a new issue