iris: Enable ARB_shader_draw_parameters support

Graphics / Mesa 3D Graphics Library / Mesa - Jose Maria Casanova Crespo [igalia.com] - 26 February 2019 21:28 EST

Additional VERTEX_ELEMENT_STATE are used to store basevertex and baseinstance and drawid updating the DWordLength of the 3DSTATE_VERTEX_ELEMENTS command.

This passes all piglit tests for spec.*draw_parameters.* tests and VK-GL-CTS KHR-GL45.shader_draw_parameters_tests.* tests.

Now we only mark a dirty_update when parameters are changed or when we have an indirect draw.

We enable PIPE_CAP_DRAW_PARAMETERS on Iris.

There is no edge flag support in the Vertex Elements setup.

4122665dd90 iris: Enable ARB_shader_draw_parameters support
src/gallium/drivers/iris/iris_context.h | 48 +++++++++++++
src/gallium/drivers/iris/iris_draw.c | 34 ++++++++++
src/gallium/drivers/iris/iris_program.c | 18 +++++
src/gallium/drivers/iris/iris_screen.c | 1 +
src/gallium/drivers/iris/iris_state.c | 115 ++++++++++++++++++++++++++++++--
5 files changed, 212 insertions(+), 4 deletions(-)

Upstream: cgit.freedesktop.org


  • Share