Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 1 | From c43617b739e358064396912c7a7a8028ca91d201 Mon Sep 17 00:00:00 2001 |
| 2 | From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com> |
| 3 | Date: Thu, 16 Apr 2015 20:40:39 +0300 |
| 4 | Subject: [PATCH] gen8: Fix the YUV->RGB shader |
| 5 | MIME-Version: 1.0 |
| 6 | Content-Type: text/plain; charset=UTF-8 |
| 7 | Content-Transfer-Encoding: 8bit |
| 8 | |
| 9 | Use the correct register (Yn_01) with first half of the |
| 10 | Y samples instead of using the register (Yn_23) with the |
| 11 | second half twice when computing the green channel. |
| 12 | |
| 13 | Also use the Yn_01 register name instead of Yn for the red |
| 14 | channel as well, just for a bit of extra consistency. |
| 15 | |
| 16 | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89807 |
| 17 | Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| 18 | Tested-by: Chris Wilson <chris@chris-wilson.co.uk> |
| 19 | |
| 20 | Upstream-Status: Backport |
| 21 | Signed-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 | |
| 28 | diff --git a/src/render_program/exa_wm_yuv_rgb.g8a b/src/render_program/exa_wm_yuv_rgb.g8a |
| 29 | index 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 | |
| 50 | diff --git a/src/render_program/exa_wm_yuv_rgb.g8b b/src/render_program/exa_wm_yuv_rgb.g8b |
| 51 | index 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 | -- |
| 64 | 2.5.0 |
| 65 | |