diff options
author | Eric Anholt <[email protected]> | 2017-10-02 14:09:56 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2017-10-10 11:42:05 -0700 |
commit | f0ee7d6ba85c0695e276b61c8c8113552d8bde6c (patch) | |
tree | 8c1522c4842c400a37ac6152c681e40e7aa568a8 | |
parent | f4133865d191c6a5377d63a2384e5844b1e0e14d (diff) |
broadcom/vc5: Add support for GL_EXT_provoking_vertex.
The bit was missing from the spec, but it's there in the simulator. Fixes
the piglit clipflat test.
-rw-r--r-- | src/broadcom/cle/v3d_packet_v33.xml | 1 | ||||
-rw-r--r-- | src/gallium/drivers/vc5/vc5_emit.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/vc5/vc5_screen.c | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/broadcom/cle/v3d_packet_v33.xml b/src/broadcom/cle/v3d_packet_v33.xml index ba5ceb0d92e..1c8ffe480ea 100644 --- a/src/broadcom/cle/v3d_packet_v33.xml +++ b/src/broadcom/cle/v3d_packet_v33.xml @@ -308,6 +308,7 @@ </packet> <packet code="96" name="Configuration Bits"> + <field name="Direct3D Provoking Vertex" size="1" start="21" type="bool"/> <field name="Direct3D 'Point-fill' mode" size="1" start="20" type="bool"/> <field name="Blend enable" size="1" start="19" type="bool"/> <field name="Stencil enable" size="1" start="18" type="bool"/> diff --git a/src/gallium/drivers/vc5/vc5_emit.c b/src/gallium/drivers/vc5/vc5_emit.c index 7f78817bf91..475db7bc868 100644 --- a/src/gallium/drivers/vc5/vc5_emit.c +++ b/src/gallium/drivers/vc5/vc5_emit.c @@ -248,6 +248,9 @@ vc5_emit_state(struct pipe_context *pctx) config.rasterizer_oversample_mode = vc5->rasterizer->base.multisample; + config.direct3d_provoking_vertex = + vc5->rasterizer->base.flatshade_first; + config.blend_enable = vc5->blend->rt[0].blend_enable; config.early_z_updates_enable = true; diff --git a/src/gallium/drivers/vc5/vc5_screen.c b/src/gallium/drivers/vc5/vc5_screen.c index 792d430722b..66180d27ed5 100644 --- a/src/gallium/drivers/vc5/vc5_screen.c +++ b/src/gallium/drivers/vc5/vc5_screen.c @@ -111,6 +111,7 @@ vc5_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: case PIPE_CAP_COMPUTE: case PIPE_CAP_DRAW_INDIRECT: + case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: return 1; case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: @@ -156,7 +157,6 @@ vc5_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TEXTURE_MIRROR_CLAMP: case PIPE_CAP_MIXED_COLORBUFFER_FORMATS: case PIPE_CAP_SEAMLESS_CUBE_MAP: - case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY: case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY: case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: |