blob: 35762192fd009440af9850e37b9122e994883cbb [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001From c43617b739e358064396912c7a7a8028ca91d201 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
3Date: Thu, 16 Apr 2015 20:40:39 +0300
4Subject: [PATCH] gen8: Fix the YUV->RGB shader
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Use the correct register (Yn_01) with first half of the
10Y samples instead of using the register (Yn_23) with the
11second half twice when computing the green channel.
12
13Also use the Yn_01 register name instead of Yn for the red
14channel as well, just for a bit of extra consistency.
15
16Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89807
17Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
18Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
19
20Upstream-Status: Backport
21Signed-off-by: Saul Wold <sgw@linux.intel.com>
22
23---
24 src/render_program/exa_wm_yuv_rgb.g8a | 4 ++--
25 src/render_program/exa_wm_yuv_rgb.g8b | 2 +-
26 2 files changed, 3 insertions(+), 3 deletions(-)
27
28diff --git a/src/render_program/exa_wm_yuv_rgb.g8a b/src/render_program/exa_wm_yuv_rgb.g8a
29index 7def093..34973ba 100644
30--- a/src/render_program/exa_wm_yuv_rgb.g8a
31+++ b/src/render_program/exa_wm_yuv_rgb.g8a
32@@ -76,7 +76,7 @@ add (16) Cbn<1>F Cb<8,8,1>F -0.501961F { compr align1 };
33 /*
34 * R = Y + Cr * 1.596
35 */
36-mov (8) acc0<1>F Yn<8,8,1>F { compr align1 };
37+mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 };
38 mac.sat(8) src_sample_r_01<1>F Crn_01<8,8,1>F 1.596F { compr align1 };
39
40 mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 };
41@@ -84,7 +84,7 @@ mac.sat(8) src_sample_r_23<1>F Crn_23<8,8,1>F 1.596F { compr align1 };
42 /*
43 * G = Crn * -0.813 + Cbn * -0.392 + Y
44 */
45-mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 };
46+mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 };
47 mac (8) acc0<1>F Crn_01<8,8,1>F -0.813F { compr align1 };
48 mac.sat(8) src_sample_g_01<1>F Cbn_01<8,8,1>F -0.392F { compr align1 };
49
50diff --git a/src/render_program/exa_wm_yuv_rgb.g8b b/src/render_program/exa_wm_yuv_rgb.g8b
51index 4494953..2cd6fc4 100644
52--- a/src/render_program/exa_wm_yuv_rgb.g8b
53+++ b/src/render_program/exa_wm_yuv_rgb.g8b
54@@ -6,7 +6,7 @@
55 { 0x80600048, 0x21c03ae8, 0x3e8d02c0, 0x3fcc49ba },
56 { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
57 { 0x80600048, 0x21e03ae8, 0x3e8d02e0, 0x3fcc49ba },
58- { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
59+ { 0x00600001, 0x24003ae0, 0x008d0300, 0x00000000 },
60 { 0x00600048, 0x24003ae0, 0x3e8d02c0, 0xbf5020c5 },
61 { 0x80600048, 0x22003ae8, 0x3e8d0340, 0xbec8b439 },
62 { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
63--
642.5.0
65