<div dir="ltr"><div>Reviewed-by: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>></div><div><br></div><div>Marek<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 25, 2019 at 11:30 PM Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This caused nouveau's function handling logic to think that the MAIN<br>
function was due to receive external parameters, and cascaded some<br>
failures after that. Instead avoid having the undefined components in<br>
the first place.<br>
<br>
Fixes: f6ac0b5d71 (gallium/auxiliary/vl: Add compute shader to support video compositor render)<br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=111213" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=111213</a><br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=111217" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=111217</a><br>
Signed-off-by: Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu" target="_blank">imirkin@alum.mit.edu</a>><br>
---<br>
 src/gallium/auxiliary/vl/vl_compositor_cs.c | 102 ++++++++++----------<br>
 1 file changed, 51 insertions(+), 51 deletions(-)<br>
<br>
diff --git a/src/gallium/auxiliary/vl/vl_compositor_cs.c b/src/gallium/auxiliary/vl/vl_compositor_cs.c<br>
index 485b4174b8e..d84df7240da 100644<br>
--- a/src/gallium/auxiliary/vl/vl_compositor_cs.c<br>
+++ b/src/gallium/auxiliary/vl/vl_compositor_cs.c<br>
@@ -61,7 +61,7 @@ const char *compute_shader_video_buffer =<br>
       "IMM[0] UINT32 { 8, 8, 1, 0}\n"<br>
       "IMM[1] FLT32 { 1.0, 2.0, 0.0, 0.0}\n"<br>
<br>
-      "UMAD TEMP[0], SV[1], IMM[0], SV[0]\n"<br>
+      "UMAD TEMP[0].xy, SV[1].xyyy, IMM[0].xyyy, SV[0].xyyy\n"<br>
<br>
       /* Drawn area check */<br>
       "USGE TEMP[1].xy, TEMP[0].xyxy, CONST[4].xyxy\n"<br>
@@ -70,20 +70,20 @@ const char *compute_shader_video_buffer =<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].zzzz\n"<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].wwww\n"<br>
<br>
-      "UIF TEMP[1]\n"<br>
+      "UIF TEMP[1].xxxx\n"<br>
          /* Translate */<br>
          "UADD TEMP[2].xy, TEMP[0], -CONST[5].xyxy\n"<br>
-         "U2F TEMP[2], TEMP[2]\n"<br>
-         "DIV TEMP[3], TEMP[2], IMM[1].yyyy\n"<br>
+         "U2F TEMP[2].xy, TEMP[2].xyyy\n"<br>
+         "DIV TEMP[3].xy, TEMP[2].xyyy, IMM[1].yyyy\n"<br>
<br>
          /* Scale */<br>
-         "DIV TEMP[2], TEMP[2], CONST[3].zwzw\n"<br>
-         "DIV TEMP[3], TEMP[3], CONST[3].zwzw\n"<br>
+         "DIV TEMP[2].xy, TEMP[2].xyyy, CONST[3].zwww\n"<br>
+         "DIV TEMP[3].xy, TEMP[3].xyyy, CONST[3].zwww\n"<br>
<br>
          /* Fetch texels */<br>
-         "TEX_LZ TEMP[4].x, TEMP[2], SAMP[0], RECT\n"<br>
-         "TEX_LZ TEMP[4].y, TEMP[3], SAMP[1], RECT\n"<br>
-         "TEX_LZ TEMP[4].z, TEMP[3], SAMP[2], RECT\n"<br>
+         "TEX_LZ TEMP[4].x, TEMP[2].xyyy, SAMP[0], RECT\n"<br>
+         "TEX_LZ TEMP[4].y, TEMP[3].xyyy, SAMP[1], RECT\n"<br>
+         "TEX_LZ TEMP[4].z, TEMP[3].xyyy, SAMP[2], RECT\n"<br>
<br>
          "MOV TEMP[4].w, IMM[1].xxxx\n"<br>
<br>
@@ -93,12 +93,12 @@ const char *compute_shader_video_buffer =<br>
          "DP4 TEMP[7].z, CONST[2], TEMP[4]\n"<br>
<br>
          "MOV TEMP[5].w, TEMP[4].zzzz\n"<br>
-         "SLE TEMP[6].w, TEMP[5], CONST[3].xxxx\n"<br>
-         "SGT TEMP[5].w, TEMP[5], CONST[3].yyyy\n"<br>
+         "SLE TEMP[6].w, TEMP[5].wwww, CONST[3].xxxx\n"<br>
+         "SGT TEMP[5].w, TEMP[5].wwww, CONST[3].yyyy\n"<br>
<br>
-         "MAX TEMP[7].w, TEMP[5], TEMP[6]\n"<br>
+         "MAX TEMP[7].w, TEMP[5].wwww, TEMP[6].wwww\n"<br>
<br>
-         "STORE IMAGE[0], TEMP[0], TEMP[7], 2D\n"<br>
+         "STORE IMAGE[0], TEMP[0].xyyy, TEMP[7], 2D\n"<br>
       "ENDIF\n"<br>
<br>
       "END\n";<br>
@@ -124,7 +124,7 @@ const char *compute_shader_weave =<br>
       "IMM[2] UINT32 { 1, 2, 4, 0}\n"<br>
       "IMM[3] FLT32 { 0.25, 0.5, 0.125, 0.125}\n"<br>
<br>
-      "UMAD TEMP[0], SV[1], IMM[0], SV[0]\n"<br>
+      "UMAD TEMP[0].xy, SV[1].xyyy, IMM[0].xyyy, SV[0].xyyy\n"<br>
<br>
       /* Drawn area check */<br>
       "USGE TEMP[1].xy, TEMP[0].xyxy, CONST[4].xyxy\n"<br>
@@ -133,22 +133,22 @@ const char *compute_shader_weave =<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].zzzz\n"<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].wwww\n"<br>
<br>
-      "UIF TEMP[1]\n"<br>
-         "MOV TEMP[2], TEMP[0]\n"<br>
+      "UIF TEMP[1].xxxx\n"<br>
+         "MOV TEMP[2].xy, TEMP[0].xyyy\n"<br>
          /* Translate */<br>
-         "UADD TEMP[2].xy, TEMP[2], -CONST[5].xyxy\n"<br>
+         "UADD TEMP[2].xy, TEMP[2].xyyy, -CONST[5].xyxy\n"<br>
<br>
          /* Top Y */<br>
-         "U2F TEMP[2], TEMP[2]\n"<br>
+         "U2F TEMP[2].xy, TEMP[2].xyyy\n"<br>
          "DIV TEMP[2].y, TEMP[2].yyyy, IMM[1].yyyy\n"<br>
          /* Down Y */<br>
-         "MOV TEMP[12], TEMP[2]\n"<br>
+         "MOV TEMP[12].xy, TEMP[2].xyyy\n"<br>
<br>
          /* Top UV */<br>
-         "MOV TEMP[3], TEMP[2]\n"<br>
+         "MOV TEMP[3].xy, TEMP[2].xyyy\n"<br>
          "DIV TEMP[3].xy, TEMP[3], IMM[1].yyyy\n"<br>
          /* Down UV */<br>
-         "MOV TEMP[13], TEMP[3]\n"<br>
+         "MOV TEMP[13].xy, TEMP[3].xyyy\n"<br>
<br>
          /* Texture offset */<br>
          "ADD TEMP[2].x, TEMP[2].xxxx, IMM[3].yyyy\n"<br>
@@ -162,10 +162,10 @@ const char *compute_shader_weave =<br>
          "ADD TEMP[13].y, TEMP[13].yyyy, IMM[3].wwww\n"<br>
<br>
          /* Scale */<br>
-         "DIV TEMP[2].xy, TEMP[2], CONST[3].zwzw\n"<br>
-         "DIV TEMP[12].xy, TEMP[12], CONST[3].zwzw\n"<br>
-         "DIV TEMP[3].xy, TEMP[3], CONST[3].zwzw\n"<br>
-         "DIV TEMP[13].xy, TEMP[13], CONST[3].zwzw\n"<br>
+         "DIV TEMP[2].xy, TEMP[2].xyyy, CONST[3].zwzw\n"<br>
+         "DIV TEMP[12].xy, TEMP[12].xyyy, CONST[3].zwzw\n"<br>
+         "DIV TEMP[3].xy, TEMP[3].xyyy, CONST[3].zwzw\n"<br>
+         "DIV TEMP[13].xy, TEMP[13].xyyy, CONST[3].zwzw\n"<br>
<br>
          /* Weave offset */<br>
          "ADD TEMP[2].y, TEMP[2].yyyy, IMM[3].xxxx\n"<br>
@@ -176,32 +176,32 @@ const char *compute_shader_weave =<br>
          /* Texture layer */<br>
          "MOV TEMP[14].x, TEMP[2].yyyy\n"<br>
          "MOV TEMP[14].yz, TEMP[3].yyyy\n"<br>
-         "ROUND TEMP[15], TEMP[14]\n"<br>
-         "ADD TEMP[14], TEMP[14], -TEMP[15]\n"<br>
-         "MOV TEMP[14], |TEMP[14]|\n"<br>
-         "MUL TEMP[14], TEMP[14], IMM[1].yyyy\n"<br>
+         "ROUND TEMP[15].xyz, TEMP[14].xyzz\n"<br>
+         "ADD TEMP[14].xyz, TEMP[14].xyzz, -TEMP[15].xyzz\n"<br>
+         "MOV TEMP[14].xyz, |TEMP[14].xyzz|\n"<br>
+         "MUL TEMP[14].xyz, TEMP[14].xyzz, IMM[1].yyyy\n"<br>
<br>
          /* Normalize */<br>
-         "DIV TEMP[2].xy, TEMP[2], CONST[5].zwzw\n"<br>
-         "DIV TEMP[12].xy, TEMP[12], CONST[5].zwzw\n"<br>
+         "DIV TEMP[2].xy, TEMP[2].xyyy, CONST[5].zwzw\n"<br>
+         "DIV TEMP[12].xy, TEMP[12].xyyy, CONST[5].zwzw\n"<br>
          "DIV TEMP[15].xy, CONST[5].zwzw, IMM[1].yyyy\n"<br>
-         "DIV TEMP[3].xy, TEMP[3], TEMP[15].xyxy\n"<br>
-         "DIV TEMP[13].xy, TEMP[13], TEMP[15].xyxy\n"<br>
+         "DIV TEMP[3].xy, TEMP[3].xyyy, TEMP[15].xyxy\n"<br>
+         "DIV TEMP[13].xy, TEMP[13].xyyy, TEMP[15].xyxy\n"<br>
<br>
          /* Fetch texels */<br>
          "MOV TEMP[2].z, IMM[1].wwww\n"<br>
          "MOV TEMP[3].z, IMM[1].wwww\n"<br>
-         "TEX_LZ TEMP[10].x, TEMP[2], SAMP[0], 2D_ARRAY\n"<br>
-         "TEX_LZ TEMP[10].y, TEMP[3], SAMP[1], 2D_ARRAY\n"<br>
-         "TEX_LZ TEMP[10].z, TEMP[3], SAMP[2], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[10].x, TEMP[2].xyzz, SAMP[0], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[10].y, TEMP[3].xyzz, SAMP[1], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[10].z, TEMP[3].xyzz, SAMP[2], 2D_ARRAY\n"<br>
<br>
          "MOV TEMP[12].z, IMM[1].xxxx\n"<br>
          "MOV TEMP[13].z, IMM[1].xxxx\n"<br>
-         "TEX_LZ TEMP[11].x, TEMP[12], SAMP[0], 2D_ARRAY\n"<br>
-         "TEX_LZ TEMP[11].y, TEMP[13], SAMP[1], 2D_ARRAY\n"<br>
-         "TEX_LZ TEMP[11].z, TEMP[13], SAMP[2], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[11].x, TEMP[12].xyzz, SAMP[0], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[11].y, TEMP[13].xyzz, SAMP[1], 2D_ARRAY\n"<br>
+         "TEX_LZ TEMP[11].z, TEMP[13].xyzz, SAMP[2], 2D_ARRAY\n"<br>
<br>
-         "LRP TEMP[6], TEMP[14], TEMP[10], TEMP[11]\n"<br>
+         "LRP TEMP[6].xyz, TEMP[14].xyzz, TEMP[10].xyzz, TEMP[11].xyzz\n"<br>
          "MOV TEMP[6].w, IMM[1].xxxx\n"<br>
<br>
          /* Color Space Conversion */<br>
@@ -210,12 +210,12 @@ const char *compute_shader_weave =<br>
          "DP4 TEMP[9].z, CONST[2], TEMP[6]\n"<br>
<br>
          "MOV TEMP[7].w, TEMP[6].zzzz\n"<br>
-         "SLE TEMP[8].w, TEMP[7], CONST[3].xxxx\n"<br>
-         "SGT TEMP[7].w, TEMP[7], CONST[3].yyyy\n"<br>
+         "SLE TEMP[8].w, TEMP[7].wwww, CONST[3].xxxx\n"<br>
+         "SGT TEMP[7].w, TEMP[7].wwww, CONST[3].yyyy\n"<br>
<br>
-         "MAX TEMP[9].w, TEMP[7], TEMP[8]\n"<br>
+         "MAX TEMP[9].w, TEMP[7].wwww, TEMP[8].wwww\n"<br>
<br>
-         "STORE IMAGE[0], TEMP[0], TEMP[9], 2D\n"<br>
+         "STORE IMAGE[0], TEMP[0].xyyy, TEMP[9], 2D\n"<br>
       "ENDIF\n"<br>
<br>
       "END\n";<br>
@@ -239,7 +239,7 @@ const char *compute_shader_rgba =<br>
       "IMM[0] UINT32 { 8, 8, 1, 0}\n"<br>
       "IMM[1] FLT32 { 1.0, 2.0, 0.0, 0.0}\n"<br>
<br>
-      "UMAD TEMP[0], SV[1], IMM[0], SV[0]\n"<br>
+      "UMAD TEMP[0].xy, SV[1].xyyy, IMM[0].xyyy, SV[0].xyyy\n"<br>
<br>
       /* Drawn area check */<br>
       "USGE TEMP[1].xy, TEMP[0].xyxy, CONST[4].xyxy\n"<br>
@@ -248,18 +248,18 @@ const char *compute_shader_rgba =<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].zzzz\n"<br>
       "AND TEMP[1].x, TEMP[1].xxxx, TEMP[1].wwww\n"<br>
<br>
-      "UIF TEMP[1]\n"<br>
+      "UIF TEMP[1].xxxx\n"<br>
          /* Translate */<br>
-         "UADD TEMP[2].xy, TEMP[0], -CONST[5].xyxy\n"<br>
-         "U2F TEMP[2], TEMP[2]\n"<br>
+         "UADD TEMP[2].xy, TEMP[0].xyyy, -CONST[5].xyxy\n"<br>
+         "U2F TEMP[2].xy, TEMP[2].xyyy\n"<br>
<br>
          /* Scale */<br>
-         "DIV TEMP[2], TEMP[2], CONST[3].zwzw\n"<br>
+         "DIV TEMP[2].xy, TEMP[2].xyyy, CONST[3].zwzw\n"<br>
<br>
          /* Fetch texels */<br>
-         "TEX_LZ TEMP[3], TEMP[2], SAMP[0], RECT\n"<br>
+         "TEX_LZ TEMP[3], TEMP[2].xyyy, SAMP[0], RECT\n"<br>
<br>
-         "STORE IMAGE[0], TEMP[0], TEMP[3], 2D\n"<br>
+         "STORE IMAGE[0], TEMP[0].xyyy, TEMP[3], 2D\n"<br>
       "ENDIF\n"<br>
<br>
       "END\n";<br>
-- <br>
2.21.0<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a></blockquote></div>