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

2019-03-25 Thread Brian Paul

On 03/24/2019 09:41 PM, Dave Airlie wrote:

From: Dave Airlie 

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, _info, &(draw->pt.vertex_buffer[0]));
 info = _info;
  
-   assert(info->instance_count > 0);

 if (info->index_size)
assert(draw->pt.user.elts);
  



Reviewed-by: Brian Paul 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

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

2019-03-24 Thread Dave Airlie
From: Dave Airlie 

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, _info, &(draw->pt.vertex_buffer[0]));
info = _info;
 
-   assert(info->instance_count > 0);
if (info->index_size)
   assert(draw->pt.user.elts);
 
-- 
2.20.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev