pan/va: Add Bifrost-style LD_VAR instructions
authorAlyssa Rosenzweig <alyssa@collabora.com>
Thu, 24 Mar 2022 00:29:08 +0000 (20:29 -0400)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Mar 2022 19:00:13 +0000 (19:00 +0000)
For use in the legacy non-MALLOC_IDVS flow. Especially useful in blit shaders.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15223>

src/panfrost/bifrost/valhall/ISA.xml

index b9ec25a..c645f7a 100644 (file)
     <src/>
   </group>
 
+  <ins name="LD_VAR" title="Load indirect varying" unit="V" opcode="0x64">
+    <desc>Interpolates a given varying from a software buffer</desc>
+    <slot/>
+    <vecsize/>
+    <regfmt/>
+    <sample/>
+    <update/>
+    <sr write="true"/>
+    <sr_count/>
+    <src/>
+    <src>Varying index and table</src>
+  </ins>
+
+  <ins name="LD_VAR_IMM" title="Load immediate varying" unit="V" opcode="0x54">
+    <desc>Interpolates a given varying from a software buffer</desc>
+    <slot/>
+    <vecsize/>
+    <regfmt/>
+    <sample/>
+    <update/>
+    <sr write="true"/>
+    <sr_count/>
+    <src/>
+    <imm name="table" start="8" size="4"/>
+    <imm name="index" start="12" size="8"/>
+  </ins>
+
+  <ins name="LD_VAR_FLAT" title="Load indirect varying" unit="V" opcode="0x55">
+    <desc>Fetches a given varying from a software buffer</desc>
+    <slot/>
+    <vecsize/>
+    <regfmt/>
+    <sr write="true"/>
+    <sr_count/>
+    <src>Varying index and table</src>
+  </ins>
+
+  <ins name="LD_VAR_FLAT_IMM" title="Load immediate varying" unit="V" opcode="0x41">
+    <desc>Fetches a given varying from a software buffer</desc>
+    <slot/>
+    <vecsize/>
+    <regfmt/>
+    <sr write="true"/>
+    <sr_count/>
+    <imm name="table" start="8" size="4"/>
+    <imm name="index" start="12" size="8"/>
+  </ins>
+
   <ins name="LD_ATTR_IMM" title="Load immediate attribute" opcode="0x66" unit="LS">
     <desc>
       Load `vecsize` components from the attribute descriptor at entry `index`