nv50: emulate indirect draws

This is helpful for allowing ES 3.1 to work, as this is required.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10162>
This commit is contained in:
Ilia Mirkin 2021-04-03 01:10:14 -04:00 committed by Marge Bot
parent 1baefe4119
commit ea49c9dabc

View file

@ -770,6 +770,14 @@ nv50_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info,
if (!indirect && (!draws[0].count || !info->instance_count))
return;
/* We don't actually support indirect draws, so add a fallback for ES 3.1's
* benefit.
*/
if (indirect && indirect->buffer) {
util_draw_indirect(pipe, info, indirect);
return;
}
struct nv50_context *nv50 = nv50_context(pipe);
struct nouveau_pushbuf *push = nv50->base.pushbuf;
bool tex_dirty = false;