On 03/24/2019 09:41 PM, Dave Airlie wrote:
From: Dave Airlie <airl...@redhat.com>

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
---
  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);

Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to