- u_nouveau-corrupted-colors-boo1203949.patch
* fixes corrupted colors in videos on nouveau with Kepler in Firefox (boo#1203949, issue#7416) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1153
This commit is contained in:
parent
0a556531e0
commit
a66bc80d40
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 2 16:56:33 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- u_nouveau-corrupted-colors-boo1203949.patch
|
||||
* fixes corrupted colors in videos on nouveau with Kepler in
|
||||
Firefox (boo#1203949, issue#7416)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 2 08:53:22 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
|
@ -143,6 +143,7 @@ Patch201: u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patc
|
||||
Patch300: n_buildfix-21.3.0.patch
|
||||
Patch400: n_no-sse2-on-ix86-except-for-intel-drivers.patch
|
||||
Patch500: n_stop-iris-flicker.patch
|
||||
Patch600: u_nouveau-corrupted-colors-boo1203949.patch
|
||||
%ifarch %{ix86} x86_64
|
||||
BuildRequires: DirectX-Headers
|
||||
%endif
|
||||
@ -767,6 +768,7 @@ rm -rf docs/README.{VMS,WIN32,OS2}
|
||||
%patch400 -p1
|
||||
%endif
|
||||
%patch500 -p1
|
||||
%patch600 -p1
|
||||
|
||||
# Remove requires to vulkan libs from baselibs.conf on platforms
|
||||
# where vulkan build is disabled; ugly ...
|
||||
|
51
u_nouveau-corrupted-colors-boo1203949.patch
Normal file
51
u_nouveau-corrupted-colors-boo1203949.patch
Normal file
@ -0,0 +1,51 @@
|
||||
From 6014a642ae24e37c287adbf41d615efa18d0da3d Mon Sep 17 00:00:00 2001
|
||||
From: Joan Bruguera <joanbrugueram@gmail.com>
|
||||
Date: Tue, 1 Nov 2022 23:01:50 +0100
|
||||
Subject: [PATCH] nv50/ir/nir: ignore sampler for TXF/TXQ ops.
|
||||
|
||||
Recently, a regression was reported where videos in Firefox had shifted/
|
||||
glitched colors on certain Kepler hardware. This was bisected to
|
||||
bf02bffe156214dad942f56ee68c380d1968704f, however, the issue already
|
||||
existed but didn't hit users until TGSI was switched to NIR as default.
|
||||
|
||||
The issue was traced to a YUV-to-RGB fragment shader used by Firefox,
|
||||
which uses three samplers for the Y/U/V components. The Y component was
|
||||
handled correctly, but the U/V components were bogus, causing the issue.
|
||||
|
||||
After analysis, it appears the TXF/TXQ ops. should only handle the texture
|
||||
(r) but not the sampler (s), see 63b850403c90f33c295d3ad6be4ad749d4ea6274
|
||||
and 346ce0b98832e33d5411200002571b3edea9e2bb.
|
||||
Similarly, handleTXQ/handleTXF on nv50_ir_from_tgsi always sets s=0.
|
||||
Only Kepler was affected because other hardware ignores s at codegen.
|
||||
|
||||
Always set s=0 on NIR for TXF/TXQ, to keep TGSI behavior and fix the
|
||||
regression.
|
||||
|
||||
Thanks: Karol Herbst and M Henning for help diagnosing the issue.
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7416
|
||||
Cc: mesa-stable
|
||||
Suggested-by: Karol Herbst <kherbst@redhat.com>
|
||||
Reviewed-by: Karol Herbst <kherbst@redhat.com>
|
||||
Reviewed-by: M Henning <drawoc@darkrefraction.com>
|
||||
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19453>
|
||||
---
|
||||
src/nouveau/codegen/nv50_ir_from_nir.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/nouveau/codegen/nv50_ir_from_nir.cpp b/src/nouveau/codegen/nv50_ir_from_nir.cpp
|
||||
index cbefa93d25fa..4550acbf180d 100644
|
||||
--- a/src/nouveau/codegen/nv50_ir_from_nir.cpp
|
||||
+++ b/src/nouveau/codegen/nv50_ir_from_nir.cpp
|
||||
@@ -3133,6 +3133,8 @@ Converter::visit(nir_tex_instr *insn)
|
||||
|
||||
r = bindless ? 0xff : insn->texture_index;
|
||||
s = bindless ? 0x1f : insn->sampler_index;
|
||||
+ if (op == OP_TXF || op == OP_TXQ)
|
||||
+ s = 0;
|
||||
|
||||
defs.resize(newDefs.size());
|
||||
for (uint8_t d = 0u; d < newDefs.size(); ++d) {
|
||||
--
|
||||
GitLab
|
||||
|
Loading…
Reference in New Issue
Block a user