summaryrefslogtreecommitdiff
path: root/src/shaders/post_processing/gen7/NV12_DI_NV12.g4a
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2015-11-03 15:10:08 +0000
committerSean V Kelley <seanvk@posteo.de>2015-11-09 14:20:58 -0800
commitac409c85430d7eb569bf3d4719402d4d7edad1c4 (patch)
treeaa1b92e63e7c3776865bf61226429f078c064533 /src/shaders/post_processing/gen7/NV12_DI_NV12.g4a
parent318908e6c6f8e12d71096e7d5ab6e03ed4ca67bb (diff)
downloadlibva-intel-driver-ac409c85430d7eb569bf3d4719402d4d7edad1c4.tar.gz
vpp: gen7/8/9: add yuv to rgb conversion matrix to registers send to EUs
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de>
Diffstat (limited to 'src/shaders/post_processing/gen7/NV12_DI_NV12.g4a')
-rw-r--r--src/shaders/post_processing/gen7/NV12_DI_NV12.g4a30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/shaders/post_processing/gen7/NV12_DI_NV12.g4a b/src/shaders/post_processing/gen7/NV12_DI_NV12.g4a
index 93704c56..e646cf1c 100644
--- a/src/shaders/post_processing/gen7/NV12_DI_NV12.g4a
+++ b/src/shaders/post_processing/gen7/NV12_DI_NV12.g4a
@@ -169,7 +169,7 @@
//=======================================================================
-//r9-r17
+//r11-r17
// Define temp space for any usages
@@ -178,15 +178,15 @@
// temp space for rotation
-.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f
+.declare fROBUF Base=r11.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f
-.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud
+.declare udROBUF Base=r11.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud
-.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw
+.declare uwROBUF Base=r11.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw
-.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub
+.declare ubROBUF Base=r11.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub
-.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub
+.declare ub4ROBUF Base=r11.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub
// End of common.inc
@@ -293,14 +293,14 @@
// Prepare the DNDI send command
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header
-mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK
-mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK
+mov (1) mwMSGHDR_DNDI(1,4)<1> r9.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK
+mov (1) mwMSGHDR_DNDI(1,12)<1> r9.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled
-mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15
+mov (2) r9.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15
@@ -312,8 +312,8 @@ mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF
-shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2
-mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin
+shr (1) mudMSGHDR_STMM(0,0)<1> r9.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2
+mov (1) mudMSGHDR_STMM(0,1)<1> r9.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4)
send (8) null<1>:d r20 0x5 0x40A8021:ud
@@ -329,8 +329,8 @@ send (8) null<1>:d r20 0x5 0x40A8021:ud
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header
-shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2
-mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3
+shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r9.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2
+mul (1) acc0.1<1>:ud r9.1<0;1,0>:w 3:w // Y origin * 3
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3)
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin
@@ -363,8 +363,8 @@ send (8) null<1>:d r24 0x5 0x40A8021:ud
// add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20
mov (8) r28.0<1>:ud r0.0<8;8,1>:ud
-mov (1) r28.0<1>:d r7.0<0;1,0>:w { NoDDClr } // H. block origin need to be doubled
-mov (1) r28.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin
+mov (1) r28.0<1>:d r9.0<0;1,0>:w { NoDDClr } // H. block origin need to be doubled
+mov (1) r28.1<1>:d r9.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin
mov (1) r28.2<1>:ud 0x3000F:ud { NoDDChk } // Block width and height (32x8)
//prepare the message headers