Mesa (master): st/mesa: set the vbuffer to NULL if we are skipping it

Dave Airlie airlied at kemper.freedesktop.org
Fri Sep 11 02:07:37 UTC 2015


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Sep  4 01:24:39 2015 +0100

st/mesa: set the vbuffer to NULL if we are skipping it

If we skip a vbuffer we need to make sure we NULL out
the contents, otherwise when it gets passed to the driver
it will get confused.

This was hit by:
GL41-CTS.gpu_shader_fp64.varyings

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/state_tracker/st_atom_array.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_atom_array.c b/src/mesa/state_tracker/st_atom_array.c
index 56b8019..0847184 100644
--- a/src/mesa/state_tracker/st_atom_array.c
+++ b/src/mesa/state_tracker/st_atom_array.c
@@ -567,8 +567,12 @@ setup_non_interleaved_attribs(struct st_context *st,
       unsigned src_format;
 
       array = get_client_array(vp, arrays, attr);
-      if (!array)
+      if (!array) {
+         vbuffer[attr].buffer = NULL;
+         vbuffer[attr].user_buffer = NULL;
+         vbuffer[attr].buffer_offset = 0;
          continue;
+      }
 
       stride = array->StrideB;
       bufobj = array->BufferObj;




More information about the mesa-commit mailing list