gallium: add PIPE_CAP_MULTI_DRAW_INDIRECT_PARTIAL_STRIDE
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 13 Apr 2022 20:32:04 +0000 (16:32 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 21 Apr 2022 02:29:09 +0000 (02:29 +0000)
commit0f28da9cd4779f705ebe18061e98e9e53be5c1ff
tree6b3fd050663e18f2f579f1ce87af44ce0076d836
parentec124916206fbae63ee9e3c2c73de8255c807c98
gallium: add PIPE_CAP_MULTI_DRAW_INDIRECT_PARTIAL_STRIDE

GL spec states that the stride for indirect multidraws:
* cannot be negative
* can be zero
* must be a multiple of 4

some drivers can't support strides which are not a multiple of the
size of the indirect struct being used, however, so rewrite those to
direct draws

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15963>
docs/gallium/screen.rst
src/gallium/auxiliary/util/u_screen.c
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_draw.c