[Mesa-dev] [PATCH] draw: bail instead of assert on instance count (v2)

Brian Paul brianp at vmware.com
Mon Mar 25 14:19:24 UTC 2019


On 03/24/2019 09:41 PM, Dave Airlie wrote:
> From: Dave Airlie <airlied at 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 <brianp at vmware.com>


More information about the mesa-dev mailing list