gallium/auxiliary/vl: Fix chroma and blurry output of cs video_buffer

Truncate UV coordinates to fix incorrect chroma offset.
Add texture offset to avoid blur from linear sampler.

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24301>
This commit is contained in:
David Rosca
2023-07-23 20:01:45 +02:00
committed by Marge Bot
parent 59f24c7df8
commit 3a484cd4ea
+6 -1
View File
@@ -61,7 +61,7 @@ const char *compute_shader_video_buffer =
"DCL TEMP[0..7]\n"
"IMM[0] UINT32 { 8, 8, 1, 0}\n"
"IMM[1] FLT32 { 1.0, 0.0, 0.0, 0.0}\n"
"IMM[1] FLT32 { 1.0, 0.5, 0.0, 0.0}\n"
"UMAD TEMP[0].xy, SV[1].xyyy, IMM[0].xyyy, SV[0].xyyy\n"
@@ -77,6 +77,11 @@ const char *compute_shader_video_buffer =
"UADD TEMP[2].xy, TEMP[0].xyyy, -CONST[5].xyxy\n"
"U2F TEMP[2].xy, TEMP[2].xyyy\n"
"MUL TEMP[3].xy, TEMP[2].xyyy, CONST[6].xyyy\n"
"TRUNC TEMP[3].xy, TEMP[3].xyyy\n"
/* Texture offset */
"ADD TEMP[2].xy, TEMP[2].xyxy, IMM[1].yyyy\n"
"ADD TEMP[3].xy, TEMP[3].xyxy, IMM[1].yyyy\n"
/* Scale */
"DIV TEMP[2].xy, TEMP[2].xyyy, CONST[3].zwww\n"