etnaviv: update HW headers and fix provoking vertex
authorLucas Stach <l.stach@pengutronix.de>
Fri, 29 Sep 2017 12:17:41 +0000 (14:17 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 10 Oct 2017 10:32:24 +0000 (12:32 +0200)
Now that the real meaning of the 2 bits in PA_SYSTEM_MODE is known,
we can set them according to the rasterizer state, which fixes uses
that are setting provoking vertex first.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
src/gallium/drivers/etnaviv/hw/cmdstream.xml.h
src/gallium/drivers/etnaviv/hw/common.xml.h
src/gallium/drivers/etnaviv/hw/isa.xml.h
src/gallium/drivers/etnaviv/hw/state.xml.h
src/gallium/drivers/etnaviv/hw/state_3d.xml.h

index 56f2735e8a18291325d0206975366ffa4d6eac5e..c8627b1a9ab4cf1b8593984fdb5845dff9f5b2b2 100644 (file)
@@ -61,7 +61,8 @@ etna_rasterizer_state_create(struct pipe_context *pctx,
    /* XXX anything else? */
    /* XXX bottom_edge_rule */
    cs->PA_SYSTEM_MODE =
-      COND(so->half_pixel_center, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+      COND(!so->flatshade_first, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST) |
+      COND(so->half_pixel_center, VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
 
    /* so->scissor overrides the scissor, defaulting to the whole framebuffer,
     * with the scissor state */
index d4da03016ea508bc96670c38360e52688aaa8475..f8d76b01058224c303589290a04252d8ddc51936 100644 (file)
@@ -8,11 +8,11 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- cmdstream.xml (  14313 bytes, from 2016-11-17 18:46:23)
-- copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
-- common.xml    (  23473 bytes, from 2017-01-07 14:27:54)
+- cmdstream.xml (  15289 bytes, from 2017-09-29 11:52:39)
+- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
+- common.xml    (  23529 bytes, from 2017-09-29 11:52:39)
 
-Copyright (C) 2012-2016 by the following authors:
+Copyright (C) 2012-2017 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
 - Christian Gmeiner <christian.gmeiner@gmail.com>
 - Lucas Stach <l.stach@pengutronix.de>
index 8b73fd8128966b2a4b735ca2dda2f3d8d8e900b8..85c4990b61aef35b2515869b30ab0ce8e87fbdd5 100644 (file)
@@ -8,13 +8,13 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- state.xml     (  19930 bytes, from 2017-01-07 14:27:54)
-- common.xml    (  23473 bytes, from 2017-01-07 14:27:54)
-- state_hi.xml  (  26403 bytes, from 2017-01-07 14:27:54)
-- copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
-- state_2d.xml  (  51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml  (  66964 bytes, from 2017-04-13 12:38:05)
-- state_vg.xml  (   5975 bytes, from 2016-10-29 07:29:22)
+- state.xml     (  20229 bytes, from 2017-09-29 11:52:39)
+- common.xml    (  23529 bytes, from 2017-09-29 11:52:39)
+- state_hi.xml  (  26403 bytes, from 2017-03-09 15:43:43)
+- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
+- state_2d.xml  (  51552 bytes, from 2016-12-08 16:37:56)
+- state_3d.xml  (  68429 bytes, from 2017-09-29 11:55:19)
+- state_vg.xml  (   5975 bytes, from 2016-12-08 16:37:56)
 
 Copyright (C) 2012-2017 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
@@ -247,7 +247,7 @@ DEALINGS IN THE SOFTWARE.
 #define chipMinorFeatures3_UNK24                               0x01000000
 #define chipMinorFeatures3_UNK25                               0x02000000
 #define chipMinorFeatures3_NEW_HZ                              0x04000000
-#define chipMinorFeatures3_UNK27                               0x08000000
+#define chipMinorFeatures3_PE_DITHER_FIX                       0x08000000
 #define chipMinorFeatures3_UNK28                               0x10000000
 #define chipMinorFeatures3_SH_ENHANCEMENTS3                    0x20000000
 #define chipMinorFeatures3_UNK30                               0x40000000
@@ -269,7 +269,7 @@ DEALINGS IN THE SOFTWARE.
 #define chipMinorFeatures4_UNK14                               0x00004000
 #define chipMinorFeatures4_UNK15                               0x00008000
 #define chipMinorFeatures4_HALTI2                              0x00010000
-#define chipMinorFeatures4_UNK17                               0x00020000
+#define chipMinorFeatures4_2D_MIRROR_EXTENSION                 0x00020000
 #define chipMinorFeatures4_SMALL_MSAA                          0x00040000
 #define chipMinorFeatures4_UNK19                               0x00080000
 #define chipMinorFeatures4_NEW_RA                              0x00100000
index 31706807e3de882f856af1e89eac6d89a0576faf..35a050e2156f6ee8b04e3cfd34bfe89fc5ba90cb 100644 (file)
@@ -8,8 +8,8 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- isa.xml       (  34392 bytes, from 2017-04-13 12:44:36)
-- copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
+- isa.xml       (  34708 bytes, from 2017-09-29 11:52:39)
+- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
 
 Copyright (C) 2012-2017 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
index 2b278e0fffbd31c0ac702768d29658a6328bfa10..bd82218a3d7dbb5b5b77841975601111caac51ef 100644 (file)
@@ -8,13 +8,13 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- state.xml     (  19930 bytes, from 2017-01-07 14:27:54)
-- common.xml    (  23473 bytes, from 2017-01-07 14:27:54)
-- state_hi.xml  (  26403 bytes, from 2017-01-07 14:27:54)
-- copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
-- state_2d.xml  (  51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml  (  66964 bytes, from 2017-04-13 12:38:05)
-- state_vg.xml  (   5975 bytes, from 2016-10-29 07:29:22)
+- state.xml     (  20229 bytes, from 2017-09-29 11:52:39)
+- common.xml    (  23529 bytes, from 2017-09-29 11:52:39)
+- state_hi.xml  (  26403 bytes, from 2017-03-09 15:43:43)
+- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
+- state_2d.xml  (  51552 bytes, from 2016-12-08 16:37:56)
+- state_3d.xml  (  68429 bytes, from 2017-09-29 11:55:19)
+- state_vg.xml  (   5975 bytes, from 2016-12-08 16:37:56)
 
 Copyright (C) 2012-2017 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
index 4a632e3dbc0101f7431151cd505837ff70140c7b..b025117c0da1a13338c757d1a4f92ec9b081338e 100644 (file)
@@ -8,13 +8,13 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- state.xml     (  19930 bytes, from 2017-01-07 14:27:54)
-- common.xml    (  23473 bytes, from 2017-01-07 14:27:54)
-- state_hi.xml  (  26403 bytes, from 2017-01-07 14:27:54)
-- copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
-- state_2d.xml  (  51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml  (  67197 bytes, from 2017-07-23 10:53:21)
-- state_vg.xml  (   5975 bytes, from 2016-10-29 07:29:22)
+- state.xml     (  20229 bytes, from 2017-09-29 11:52:39)
+- common.xml    (  23529 bytes, from 2017-09-29 11:52:39)
+- state_hi.xml  (  26403 bytes, from 2017-03-09 15:43:43)
+- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
+- state_2d.xml  (  51552 bytes, from 2016-12-08 16:37:56)
+- state_3d.xml  (  68429 bytes, from 2017-09-29 11:55:19)
+- state_vg.xml  (   5975 bytes, from 2016-12-08 16:37:56)
 
 Copyright (C) 2012-2017 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
@@ -88,17 +88,17 @@ DEALINGS IN THE SOFTWARE.
 #define RS_FORMAT_A8R8G8B8                                     0x00000006
 #define RS_FORMAT_YUY2                                         0x00000007
 #define RS_FORMAT_R16F                                         0x00000011
-#define RS_FORMAT_X16R16F                                      0x00000012
-#define RS_FORMAT_X16B16G16R16F                                        0x00000013
+#define RS_FORMAT_G16R16F                                      0x00000012
+#define RS_FORMAT_A16B16G16R16F                                        0x00000013
 #define RS_FORMAT_R32F                                         0x00000014
-#define RS_FORMAT_X32R32F                                      0x00000015
+#define RS_FORMAT_G32R32F                                      0x00000015
 #define RS_FORMAT_A2B10G10R10                                  0x00000016
 #define RS_FORMAT_R8I                                          0x00000017
-#define RS_FORMAT_X8R8I                                                0x00000018
-#define RS_FORMAT_X8B8G8R8I                                    0x00000019
+#define RS_FORMAT_G8R8I                                                0x00000018
+#define RS_FORMAT_A8B8G8R8I                                    0x00000019
 #define RS_FORMAT_R16I                                         0x0000001a
-#define RS_FORMAT_X16R16I                                      0x0000001b
-#define RS_FORMAT_X16B16G16R16I                                        0x0000001c
+#define RS_FORMAT_G16R16I                                      0x0000001b
+#define RS_FORMAT_A16B16G16R16I                                        0x0000001c
 #define RS_FORMAT_B10G11R11F                                   0x0000001d
 #define RS_FORMAT_A2B10G10R10UI                                        0x0000001e
 #define RS_FORMAT_G8R8                                         0x0000001f
@@ -132,11 +132,11 @@ DEALINGS IN THE SOFTWARE.
 #define TEXTURE_FORMAT_EXT_RG11_EAC                            0x00000004
 #define TEXTURE_FORMAT_EXT_SIGNED_RG11_EAC                     0x00000005
 #define TEXTURE_FORMAT_EXT_G8R8                                        0x00000006
-#define TEXTURE_FORMAT_EXT_A16F                                        0x00000007
-#define TEXTURE_FORMAT_EXT_A16L16F                             0x00000008
+#define TEXTURE_FORMAT_EXT_R16F                                        0x00000007
+#define TEXTURE_FORMAT_EXT_G16R16F                             0x00000008
 #define TEXTURE_FORMAT_EXT_A16B16G16R16F                       0x00000009
-#define TEXTURE_FORMAT_EXT_A32F                                        0x0000000a
-#define TEXTURE_FORMAT_EXT_A32L32F                             0x0000000b
+#define TEXTURE_FORMAT_EXT_R32F                                        0x0000000a
+#define TEXTURE_FORMAT_EXT_G32R32F                             0x0000000b
 #define TEXTURE_FORMAT_EXT_A2B10G10R10                         0x0000000c
 #define TEXTURE_FORMAT_EXT_SIGNED_R11_EAC                      0x0000000d
 #define TEXTURE_FORMAT_EXT_R8_SNORM                            0x0000000e
@@ -157,7 +157,9 @@ DEALINGS IN THE SOFTWARE.
 #define TEXTURE_FILTER_LINEAR                                  0x00000002
 #define TEXTURE_FILTER_ANISOTROPIC                             0x00000003
 #define TEXTURE_TYPE_NONE                                      0x00000000
+#define TEXTURE_TYPE_1D                                                0x00000001
 #define TEXTURE_TYPE_2D                                                0x00000002
+#define TEXTURE_TYPE_3D                                                0x00000003
 #define TEXTURE_TYPE_CUBE_MAP                                  0x00000005
 #define TEXTURE_WRAPMODE_REPEAT                                        0x00000000
 #define TEXTURE_WRAPMODE_MIRRORED_REPEAT                       0x00000001
@@ -410,8 +412,8 @@ DEALINGS IN THE SOFTWARE.
 #define VIVS_PA_POINT_SIZE                                     0x00000a1c
 
 #define VIVS_PA_SYSTEM_MODE                                    0x00000a28
-#define VIVS_PA_SYSTEM_MODE_UNK0                               0x00000001
-#define VIVS_PA_SYSTEM_MODE_UNK4                               0x00000010
+#define VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST              0x00000001
+#define VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER                  0x00000010
 
 #define VIVS_PA_W_CLIP_LIMIT                                   0x00000a2c
 
@@ -985,15 +987,13 @@ DEALINGS IN THE SOFTWARE.
 #define VIVS_RS_EXTRA_CONFIG_UNK20                             0x00100000
 #define VIVS_RS_EXTRA_CONFIG_UNK28                             0x10000000
 
-#define VIVS_RS_UNK016B0                                       0x000016b0
+#define VIVS_RS_KICKER_INPLACE                                 0x000016b0
 
 #define VIVS_RS_UNK016B4                                       0x000016b4
 
 #define VIVS_RS_SINGLE_BUFFER                                  0x000016b8
 #define VIVS_RS_SINGLE_BUFFER_ENABLE                           0x00000001
 
-#define VIVS_RS_UNK016BC                                       0x000016bc
-
 #define VIVS_RS_PIPE(i0)                                      (0x00000000 + 0x4*(i0))
 #define VIVS_RS_PIPE__ESIZE                                    0x00000004
 #define VIVS_RS_PIPE__LEN                                      0x00000008
@@ -1055,6 +1055,8 @@ DEALINGS IN THE SOFTWARE.
 
 #define VIVS_TS_HDEPTH_SIZE                                    0x000016ac
 
+#define VIVS_TS_COLOR_CLEAR_VALUE_EXT                          0x000016bc
+
 #define VIVS_TS_SAMPLER(i0)                                   (0x00000000 + 0x4*(i0))
 #define VIVS_TS_SAMPLER__ESIZE                                 0x00000004
 #define VIVS_TS_SAMPLER__LEN                                   0x00000008
@@ -1162,6 +1164,8 @@ DEALINGS IN THE SOFTWARE.
 #define VIVS_TE_SAMPLER_LOG_SIZE_HEIGHT__MASK                  0x000ffc00
 #define VIVS_TE_SAMPLER_LOG_SIZE_HEIGHT__SHIFT                 10
 #define VIVS_TE_SAMPLER_LOG_SIZE_HEIGHT(x)                     (((x) << VIVS_TE_SAMPLER_LOG_SIZE_HEIGHT__SHIFT) & VIVS_TE_SAMPLER_LOG_SIZE_HEIGHT__MASK)
+#define VIVS_TE_SAMPLER_LOG_SIZE_RGB                           0x20000000
+#define VIVS_TE_SAMPLER_LOG_SIZE_SRGB                          0x80000000
 
 #define VIVS_TE_SAMPLER_LOD_CONFIG(i0)                        (0x000020c0 + 0x4*(i0))
 #define VIVS_TE_SAMPLER_LOD_CONFIG_BIAS_ENABLE                 0x00000001
@@ -1179,7 +1183,16 @@ DEALINGS IN THE SOFTWARE.
 
 #define VIVS_TE_SAMPLER_UNK02140(i0)                          (0x00002140 + 0x4*(i0))
 
-#define VIVS_TE_SAMPLER_UNK02180(i0)                          (0x00002180 + 0x4*(i0))
+#define VIVS_TE_SAMPLER_3D_CONFIG(i0)                         (0x00002180 + 0x4*(i0))
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__MASK                  0x00003fff
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__SHIFT                 0
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH(x)                     (((x) << VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__MASK)
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK              0x03ff0000
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT             16
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH(x)                 (((x) << VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK)
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP__MASK                   0x30000000
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP__SHIFT                  28
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP(x)                      (((x) << VIVS_TE_SAMPLER_3D_CONFIG_WRAP__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_WRAP__MASK)
 
 #define VIVS_TE_SAMPLER_CONFIG1(i0)                           (0x000021c0 + 0x4*(i0))
 #define VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__MASK               0x0000001f
@@ -1210,6 +1223,10 @@ DEALINGS IN THE SOFTWARE.
 #define VIVS_TE_SAMPLER_LOD_ADDR__ESIZE                                0x00000040
 #define VIVS_TE_SAMPLER_LOD_ADDR__LEN                          0x0000000e
 
+#define VIVS_TE_SAMPLER_UNK02C00(i0, i1)                      (0x00002c00 + 0x4*(i0) + 0x40*(i1))
+#define VIVS_TE_SAMPLER_UNK02C00__ESIZE                                0x00000040
+#define VIVS_TE_SAMPLER_UNK02C00__LEN                          0x0000000e
+
 #define VIVS_NTE                                               0x00000000
 
 #define VIVS_NTE_SAMPLER(i0)                                  (0x00000000 + 0x4*(i0))
@@ -1261,6 +1278,8 @@ DEALINGS IN THE SOFTWARE.
 #define VIVS_NTE_SAMPLER_LOG_SIZE_HEIGHT__MASK                 0x000ffc00
 #define VIVS_NTE_SAMPLER_LOG_SIZE_HEIGHT__SHIFT                        10
 #define VIVS_NTE_SAMPLER_LOG_SIZE_HEIGHT(x)                    (((x) << VIVS_NTE_SAMPLER_LOG_SIZE_HEIGHT__SHIFT) & VIVS_NTE_SAMPLER_LOG_SIZE_HEIGHT__MASK)
+#define VIVS_NTE_SAMPLER_LOG_SIZE_RGB                          0x20000000
+#define VIVS_NTE_SAMPLER_LOG_SIZE_SRGB                         0x80000000
 
 #define VIVS_NTE_SAMPLER_LOD_CONFIG(i0)                               (0x00010180 + 0x4*(i0))
 #define VIVS_NTE_SAMPLER_LOD_CONFIG_BIAS_ENABLE                        0x00000001