freedreno: make fd_batch a one-shot thing
[mesa.git] / src / gallium / drivers / freedreno / adreno_common.xml.h
index f94fd483da7c1649d366657fa0c0dace3f1b43d2..fc0dcb029ae08ffc6d23dc4a6a5574c0e4a2a720 100644 (file)
@@ -8,16 +8,21 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    364 bytes, from 2013-11-30 14:47:15)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1453 bytes, from 2013-03-31 16:51:27)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  32580 bytes, from 2014-05-09 14:56:06)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  10186 bytes, from 2014-05-09 14:56:06)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  14477 bytes, from 2014-05-09 14:56:06)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  57702 bytes, from 2014-05-09 14:56:06)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          (  26293 bytes, from 2014-05-09 14:56:06)
-
-Copyright (C) 2013-2014 by the following authors:
+- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
+- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+
+Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
+- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
@@ -41,6 +46,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
 
+enum chip {
+       A2XX = 0,
+       A3XX = 0,
+       A4XX = 0,
+       A5XX = 0,
+};
+
 enum adreno_pa_su_sc_draw {
        PC_DRAW_POINTS = 0,
        PC_DRAW_LINES = 1,
@@ -85,15 +97,10 @@ enum adreno_rb_blend_factor {
        FACTOR_CONSTANT_ALPHA = 14,
        FACTOR_ONE_MINUS_CONSTANT_ALPHA = 15,
        FACTOR_SRC_ALPHA_SATURATE = 16,
-};
-
-enum adreno_rb_blend_opcode {
-       BLEND_DST_PLUS_SRC = 0,
-       BLEND_SRC_MINUS_DST = 1,
-       BLEND_MIN_DST_SRC = 2,
-       BLEND_MAX_DST_SRC = 3,
-       BLEND_DST_MINUS_SRC = 4,
-       BLEND_DST_PLUS_SRC_BIAS = 5,
+       FACTOR_SRC1_COLOR = 20,
+       FACTOR_ONE_MINUS_SRC1_COLOR = 21,
+       FACTOR_SRC1_ALPHA = 22,
+       FACTOR_ONE_MINUS_SRC1_ALPHA = 23,
 };
 
 enum adreno_rb_surface_endian {
@@ -114,6 +121,7 @@ enum adreno_rb_dither_mode {
 enum adreno_rb_depth_format {
        DEPTHX_16 = 0,
        DEPTHX_24_8 = 1,
+       DEPTHX_32 = 2,
 };
 
 enum adreno_rb_copy_control_mode {
@@ -122,6 +130,25 @@ enum adreno_rb_copy_control_mode {
        RB_COPY_DEPTH_STENCIL = 5,
 };
 
+enum a3xx_rop_code {
+       ROP_CLEAR = 0,
+       ROP_NOR = 1,
+       ROP_AND_INVERTED = 2,
+       ROP_COPY_INVERTED = 3,
+       ROP_AND_REVERSE = 4,
+       ROP_INVERT = 5,
+       ROP_XOR = 6,
+       ROP_NAND = 7,
+       ROP_AND = 8,
+       ROP_EQUIV = 9,
+       ROP_NOOP = 10,
+       ROP_OR_INVERTED = 11,
+       ROP_COPY = 12,
+       ROP_OR_REVERSE = 13,
+       ROP_OR = 14,
+       ROP_SET = 15,
+};
+
 enum a3xx_render_mode {
        RB_RENDERING_PASS = 0,
        RB_TILING_PASS = 1,
@@ -141,6 +168,7 @@ enum a3xx_threadmode {
 };
 
 enum a3xx_instrbuffermode {
+       CACHE = 0,
        BUFFER = 1,
 };
 
@@ -149,6 +177,27 @@ enum a3xx_threadsize {
        FOUR_QUADS = 1,
 };
 
+enum a3xx_color_swap {
+       WZYX = 0,
+       WXYZ = 1,
+       ZYXW = 2,
+       XYZW = 3,
+};
+
+enum a3xx_rb_blend_opcode {
+       BLEND_DST_PLUS_SRC = 0,
+       BLEND_SRC_MINUS_DST = 1,
+       BLEND_DST_MINUS_SRC = 2,
+       BLEND_MIN_DST_SRC = 3,
+       BLEND_MAX_DST_SRC = 4,
+};
+
+enum a4xx_tess_spacing {
+       EQUAL_SPACING = 0,
+       ODD_SPACING = 2,
+       EVEN_SPACING = 3,
+};
+
 #define REG_AXXX_CP_RB_BASE                                    0x000001c0
 
 #define REG_AXXX_CP_RB_CNTL                                    0x000001c1
@@ -185,6 +234,7 @@ static inline uint32_t AXXX_CP_RB_RPTR_ADDR_SWAP(uint32_t val)
 #define AXXX_CP_RB_RPTR_ADDR_ADDR__SHIFT                       2
 static inline uint32_t AXXX_CP_RB_RPTR_ADDR_ADDR(uint32_t val)
 {
+       assert(!(val & 0x3));
        return ((val >> 2) << AXXX_CP_RB_RPTR_ADDR_ADDR__SHIFT) & AXXX_CP_RB_RPTR_ADDR_ADDR__MASK;
 }
 
@@ -389,6 +439,35 @@ static inline uint32_t AXXX_CP_CSQ_IB2_STAT_WPTR(uint32_t val)
 #define REG_AXXX_CP_IB2_BUFSZ                                  0x0000045b
 
 #define REG_AXXX_CP_STAT                                       0x0000047f
+#define AXXX_CP_STAT_CP_BUSY                                   0x80000000
+#define AXXX_CP_STAT_VS_EVENT_FIFO_BUSY                                0x40000000
+#define AXXX_CP_STAT_PS_EVENT_FIFO_BUSY                                0x20000000
+#define AXXX_CP_STAT_CF_EVENT_FIFO_BUSY                                0x10000000
+#define AXXX_CP_STAT_RB_EVENT_FIFO_BUSY                                0x08000000
+#define AXXX_CP_STAT_ME_BUSY                                   0x04000000
+#define AXXX_CP_STAT_MIU_WR_C_BUSY                             0x02000000
+#define AXXX_CP_STAT_CP_3D_BUSY                                        0x00800000
+#define AXXX_CP_STAT_CP_NRT_BUSY                               0x00400000
+#define AXXX_CP_STAT_RBIU_SCRATCH_BUSY                         0x00200000
+#define AXXX_CP_STAT_RCIU_ME_BUSY                              0x00100000
+#define AXXX_CP_STAT_RCIU_PFP_BUSY                             0x00080000
+#define AXXX_CP_STAT_MEQ_RING_BUSY                             0x00040000
+#define AXXX_CP_STAT_PFP_BUSY                                  0x00020000
+#define AXXX_CP_STAT_ST_QUEUE_BUSY                             0x00010000
+#define AXXX_CP_STAT_INDIRECT2_QUEUE_BUSY                      0x00002000
+#define AXXX_CP_STAT_INDIRECTS_QUEUE_BUSY                      0x00001000
+#define AXXX_CP_STAT_RING_QUEUE_BUSY                           0x00000800
+#define AXXX_CP_STAT_CSF_BUSY                                  0x00000400
+#define AXXX_CP_STAT_CSF_ST_BUSY                               0x00000200
+#define AXXX_CP_STAT_EVENT_BUSY                                        0x00000100
+#define AXXX_CP_STAT_CSF_INDIRECT2_BUSY                                0x00000080
+#define AXXX_CP_STAT_CSF_INDIRECTS_BUSY                                0x00000040
+#define AXXX_CP_STAT_CSF_RING_BUSY                             0x00000020
+#define AXXX_CP_STAT_RCIU_BUSY                                 0x00000010
+#define AXXX_CP_STAT_RBIU_BUSY                                 0x00000008
+#define AXXX_CP_STAT_MIU_RD_RETURN_BUSY                                0x00000004
+#define AXXX_CP_STAT_MIU_RD_REQ_BUSY                           0x00000002
+#define AXXX_CP_STAT_MIU_WR_BUSY                               0x00000001
 
 #define REG_AXXX_CP_SCRATCH_REG0                               0x00000578