iris: Enable ARB_shader_draw_parameters support
authorJose Maria Casanova Crespo <jmcasanova@igalia.com>
Tue, 26 Feb 2019 13:37:23 +0000 (14:37 +0100)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 26 Feb 2019 21:28:38 +0000 (13:28 -0800)
commit4122665dd90dc8997840194094bbd8cbefd7a4c3
treeb4697ecd08b1ab4840f24cfe665210fe2c488caa
parent1c9fdcefd4bf589128bce4ab3bbfdaa4f6faa600
iris: Enable ARB_shader_draw_parameters support

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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_draw.c
src/gallium/drivers/iris/iris_program.c
src/gallium/drivers/iris/iris_screen.c
src/gallium/drivers/iris/iris_state.c