Mesa (master): panfrost/midgard: Add L/S op for writing cubemap coordinates

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Mar 31 02:38:34 UTC 2019


Module: Mesa
Branch: master
Commit: 499f31aab869205ea92b2635267d792ef1837077
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=499f31aab869205ea92b2635267d792ef1837077

Author: Alyssa Rosenzweig <alyssa at rosenzweig.io>
Date:   Wed Mar 27 04:36:42 2019 +0000

panfrost/midgard: Add L/S op for writing cubemap coordinates

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",




More information about the mesa-commit mailing list