gallium/auxiliary/vl: Fix chroma offset of compute_shader_weave

Truncate UV coordinates to fix incorrect chroma offset.
Adjust texture offsets to match this change:
   0.5   on X
   0.25  on Y (interlaced)

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:16:28 +02:00
committed by Marge Bot
parent 3a484cd4ea
commit e52f7d5cb9
+12 -9
View File
@@ -129,7 +129,7 @@ const char *compute_shader_weave =
"IMM[0] UINT32 { 8, 8, 1, 0}\n"
"IMM[1] FLT32 { 1.0, 2.0, 0.0, 0.0}\n"
"IMM[2] UINT32 { 1, 2, 4, 0}\n"
"IMM[3] FLT32 { 0.25, 0.5, 0.125, 0.125}\n"
"IMM[3] FLT32 { 0.25, 0.5, 0.0, 0.0}\n"
"UMAD TEMP[0].xy, SV[1].xyyy, IMM[0].xyyy, SV[0].xyyy\n"
@@ -145,28 +145,31 @@ const char *compute_shader_weave =
/* Translate */
"UADD TEMP[2].xy, TEMP[2].xyyy, -CONST[5].xyxy\n"
/* Top Y */
"U2F TEMP[2].xy, TEMP[2].xyyy\n"
"DIV TEMP[2].y, TEMP[2].yyyy, IMM[1].yyyy\n"
/* Down Y */
"MOV TEMP[12].xy, TEMP[2].xyyy\n"
/* Top UV */
"MOV TEMP[3].xy, TEMP[2].xyyy\n"
"DIV TEMP[3].xy, TEMP[3], IMM[1].yyyy\n"
"TRUNC TEMP[3].xy, TEMP[3].xyyy\n"
"DIV TEMP[3].y, TEMP[3].yyyy, IMM[1].yyyy\n"
/* Down UV */
"MOV TEMP[13].xy, TEMP[3].xyyy\n"
/* Top Y */
"DIV TEMP[2].y, TEMP[2].yyyy, IMM[1].yyyy\n"
/* Down Y */
"MOV TEMP[12].xy, TEMP[2].xyyy\n"
/* Texture offset */
"ADD TEMP[2].x, TEMP[2].xxxx, IMM[3].yyyy\n"
"ADD TEMP[2].y, TEMP[2].yyyy, IMM[3].xxxx\n"
"ADD TEMP[12].x, TEMP[12].xxxx, IMM[3].yyyy\n"
"ADD TEMP[12].y, TEMP[12].yyyy, IMM[3].xxxx\n"
"ADD TEMP[3].x, TEMP[3].xxxx, IMM[3].xxxx\n"
"ADD TEMP[3].y, TEMP[3].yyyy, IMM[3].wwww\n"
"ADD TEMP[13].x, TEMP[13].xxxx, IMM[3].xxxx\n"
"ADD TEMP[13].y, TEMP[13].yyyy, IMM[3].wwww\n"
"ADD TEMP[3].x, TEMP[3].xxxx, IMM[3].yyyy\n"
"ADD TEMP[3].y, TEMP[3].yyyy, IMM[3].xxxx\n"
"ADD TEMP[13].x, TEMP[13].xxxx, IMM[3].yyyy\n"
"ADD TEMP[13].y, TEMP[13].yyyy, IMM[3].xxxx\n"
/* Scale */
"DIV TEMP[2].xy, TEMP[2].xyyy, CONST[3].zwzw\n"