Mesa (master): draw: bail instead of assert on instance count (v2)

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Mar 25 19:17:43 UTC 2019


Module: Mesa
Branch: master
Commit: d3836510d21baf427f84fbd11821f91c63d0ea18
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3836510d21baf427f84fbd11821f91c63d0ea18

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Mar 25 13:17:31 2019 +1000

draw: bail instead of assert on instance count (v2)

With indirect rendering it's fine to set the instance count
parameter to 0, and expect the rendering to be ignored.

Fixes assert in KHR-GLES31.core.compute_shader.pipeline-gen-draw-commands
on softpipe

v2: return earlier before changing fpstate

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/draw/draw_pt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c
index be76a30f97c..50286149cd4 100644
--- a/src/gallium/auxiliary/draw/draw_pt.c
+++ b/src/gallium/auxiliary/draw/draw_pt.c
@@ -464,6 +464,9 @@ draw_vbo(struct draw_context *draw,
    unsigned fpstate = util_fpstate_get();
    struct pipe_draw_info resolved_info;
 
+   if (info->instance_count == 0)
+      return;
+
    /* Make sure that denorms are treated like zeros. This is 
     * the behavior required by D3D10. OpenGL doesn't care.
     */
@@ -472,7 +475,6 @@ draw_vbo(struct draw_context *draw,
    resolve_draw_info(info, &resolved_info, &(draw->pt.vertex_buffer[0]));
    info = &resolved_info;
 
-   assert(info->instance_count > 0);
    if (info->index_size)
       assert(draw->pt.user.elts);
 




More information about the mesa-commit mailing list