[PATCH v2] etnaviv: Allow clearing constant buffer using buffer==NULL user_buffer==NULL
Lucas Stach
l.stach at pengutronix.de
Mon Oct 30 13:21:07 UTC 2017
Am Samstag, den 28.10.2017, 16:16 +0200 schrieb Wladimir J. van der Laan:
> Prevents an assertion when using GALLIUM_HUD with ioquake3,
> when cso_restore_constant_buffer_slot0 restores an empty
> constant buffer in slot 0.
>
> > Signed-off-by: Wladimir J. van der Laan <laanwj at gmail.com>
> ---
> src/gallium/drivers/etnaviv/etnaviv_state.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Oops - needed to pull the rest of the expression into unlikely(...) too
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_state.c b/src/gallium/drivers/etnaviv/etnaviv_state.c
> index 34bcb19..91f12f3 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_state.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_state.c
> @@ -89,7 +89,7 @@ etna_set_constant_buffer(struct pipe_context *pctx,
>
> /* Note that the state tracker can unbind constant buffers by
> * passing NULL here. */
> - if (unlikely(!cb))
> + if (unlikely(!cb || (cb->buffer == NULL && cb->user_buffer == NULL)))
I would prefer the shorter expression (!cb->buffer && !cb->user_buffer)
here, which seems more consistent with the rest of the codebase.
Regards,
Lucas
> return;
>
> /* there is no support for ARB_uniform_buffer_object */
More information about the etnaviv
mailing list