[Mesa-dev] [PATCH 2/9] panfrost/midgard: Add L/S op for writing cubemap coordinates

Alyssa Rosenzweig alyssa at rosenzweig.io
Fri Mar 29 01:53:40 UTC 2019


Signed-off-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
---
 src/gallium/drivers/panfrost/midgard/midgard.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h
index 59957c1b566..b2849aa0fee 100644
--- a/src/gallium/drivers/panfrost/midgard/midgard.h
+++ b/src/gallium/drivers/panfrost/midgard/midgard.h
@@ -278,6 +278,14 @@ midgard_writeout;
 
 typedef enum {
         midgard_op_ld_st_noop   = 0x03,
+
+        /* Unclear why this is on the L/S unit, but (with an address of 0,
+         * appropriate swizzle, magic constant 0x24, and xy mask?) moves fp32 cube
+         * map coordinates in r27 to its cube map texture coordinate
+         * destination (e.g r29). 0x4 magic for loading from fp16 instead */
+
+        midgard_op_store_cubemap_coords = 0x0E,
+
         midgard_op_load_attr_16 = 0x95,
         midgard_op_load_attr_32 = 0x94,
         midgard_op_load_vary_16 = 0x99,
@@ -507,6 +515,7 @@ static char *alu_opcode_names[256] = {
 };
 
 static char *load_store_opcode_names[256] = {
+        [midgard_op_store_cubemap_coords] = "st_cubemap_coords",
         [midgard_op_load_attr_16] = "ld_attr_16",
         [midgard_op_load_attr_32] = "ld_attr_32",
         [midgard_op_load_vary_16] = "ld_vary_16",
-- 
2.20.1



More information about the mesa-dev mailing list