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

2014-02-06 Thread Brian Paul

On 02/05/2014 06:19 PM, Marek Olšák wrote:

From: Marek Olšák marek.ol...@amd.com

This binds a NULL sampler view in that case.

Cc: 10.1 10.0 mesa-sta...@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);



LGTM.  Reviewed-by: Brian Paul bri...@vmware.com

Wasn't there a bug report for this?  If so please ref it in the commit msg.

-Brian

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


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

2014-02-05 Thread Marek Olšák
From: Marek Olšák marek.ol...@amd.com

This binds a NULL sampler view in that case.

Cc: 10.1 10.0 mesa-sta...@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

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