[Mesa-dev] [PATCH] st/mesa: fix crash when a shader uses a TBO and it's not bound

Marek Olšák maraeo at gmail.com
Wed Feb 5 17:19:15 PST 2014


From: Marek Olšák <marek.olsak at amd.com>

This binds a NULL sampler view in that case.

Cc: "10.1" "10.0" <mesa-stable at lists.freedesktop.org>
---
 src/mesa/state_tracker/st_cb_texture.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 81a5d9b..824a13e 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -1483,6 +1483,12 @@ st_finalize_texture(struct gl_context *ctx,
    if (tObj->Target == GL_TEXTURE_BUFFER) {
       struct st_buffer_object *st_obj = st_buffer_object(tObj->BufferObject);
 
+      if (!st_obj) {
+         pipe_resource_reference(&stObj->pt, NULL);
+         pipe_sampler_view_reference(&stObj->sampler_view, NULL);
+         return GL_TRUE;
+      }
+
       if (st_obj->buffer != stObj->pt) {
          pipe_resource_reference(&stObj->pt, st_obj->buffer);
          pipe_sampler_view_release(st->pipe, &stObj->sampler_view);
-- 
1.8.3.2



More information about the mesa-dev mailing list