freedreno/registers: document vertex/instance id offset bits
authorJonathan Marek <jonathan@marek.ca>
Thu, 19 Dec 2019 03:19:15 +0000 (22:19 -0500)
committerJonathan Marek <jonathan@marek.ca>
Thu, 19 Dec 2019 20:13:40 +0000 (15:13 -0500)
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3162>

src/freedreno/registers/a6xx.xml
src/freedreno/vulkan/tu_cmd_buffer.c
src/gallium/drivers/freedreno/a6xx/fd6_emit.c

index ff723941f313c5fe4de2dc00acf7c83050c7548c..f75d98ad3a0699f7c3e5e759f60e3104651de777 100644 (file)
@@ -2707,7 +2707,12 @@ to upconvert to 32b float internally?
 
        <!-- always 0x0 ? -->
        <reg32 offset="0xa008" name="VFD_UNKNOWN_A008"/>
-       <reg32 offset="0xa009" name="VFD_UNKNOWN_A009"/>
+       <reg32 offset="0xa009" name="VFD_ADD_OFFSET">
+               <!-- add VFD_INDEX_OFFSET to REGID4VTX -->
+               <bitfield name="VERTEX" pos="0" type="boolean"/>
+               <!-- add VFD_INSTANCE_START_OFFSET to REGID4INST -->
+               <bitfield name="INSTANCE" pos="1" type="boolean"/>
+       </reg32>
 
        <reg32 offset="0xa00e" name="VFD_INDEX_OFFSET"/>
        <reg32 offset="0xa00f" name="VFD_INSTANCE_START_OFFSET"/>
index 0080e10ee6641d4bf8a802b22c74e5e1ab8de058..729a0bc67a746a35d8d0a82d1d90a55d37e5dae2 100644 (file)
@@ -971,7 +971,7 @@ tu6_init_hw(struct tu_cmd_buffer *cmd, struct tu_cs *cs)
    tu_cs_emit_write_reg(cs, REG_A6XX_UCHE_CLIENT_PF, 4);
    tu_cs_emit_write_reg(cs, REG_A6XX_RB_UNKNOWN_8E01, 0x0);
    tu_cs_emit_write_reg(cs, REG_A6XX_SP_UNKNOWN_AB00, 0x5);
-   tu_cs_emit_write_reg(cs, REG_A6XX_VFD_UNKNOWN_A009, 0x00000001);
+   tu_cs_emit_write_reg(cs, REG_A6XX_VFD_ADD_OFFSET, A6XX_VFD_ADD_OFFSET_VERTEX);
    tu_cs_emit_write_reg(cs, REG_A6XX_RB_UNKNOWN_8811, 0x00000010);
    tu_cs_emit_write_reg(cs, REG_A6XX_PC_MODE_CNTL, 0x1f);
 
index d323ae49942c0b2a57fe6edc72b1e95792cba949..229a863fd3634f0f0dd1e3890941ea8c0c3a9a1e 100644 (file)
@@ -1320,7 +1320,7 @@ fd6_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring)
        WRITE(REG_A6XX_UCHE_CLIENT_PF, 4);
        WRITE(REG_A6XX_RB_UNKNOWN_8E01, 0x1);
        WRITE(REG_A6XX_SP_UNKNOWN_AB00, 0x5);
-       WRITE(REG_A6XX_VFD_UNKNOWN_A009, 0x00000001);
+       WRITE(REG_A6XX_VFD_ADD_OFFSET, A6XX_VFD_ADD_OFFSET_VERTEX);
        WRITE(REG_A6XX_RB_UNKNOWN_8811, 0x00000010);
        WRITE(REG_A6XX_PC_MODE_CNTL, 0x1f);