llvmpipe: also check render target textures in lp_setup_is_texture_referenced()
authorBrian Paul <brianp@vmware.com>
Wed, 13 Jan 2010 22:30:42 +0000 (15:30 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 13 Jan 2010 22:30:42 +0000 (15:30 -0700)
src/gallium/drivers/llvmpipe/lp_setup.c

index 11b1b5f319fd9c7302b2d330ca0cf9439e177136..ce006bf618e4406da2c6d086a739b190ddd846e5 100644 (file)
@@ -487,6 +487,15 @@ lp_setup_is_texture_referenced( const struct setup_context *setup,
          return PIPE_REFERENCED_FOR_READ;
       }
    }
+
+   /* check the render targets */
+   for (i = 0; i < setup->fb.nr_cbufs; i++) {
+      if (setup->fb.cbufs[i]->texture == texture)
+         return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE;
+   }
+   if (setup->fb.zsbuf && setup->fb.zsbuf->texture == texture)
+      return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE;
+
    return PIPE_UNREFERENCED;
 }