r600g: Use the actual Evergreen functions to query format support on Evergreen.
[mesa.git] / src / gallium / auxiliary / util / u_surfaces.h
index da4fbbfc2541c47ab020ab34b7e21a7bb17bd87b..9581feda7c814f00e46477040f8c49f1eb2924ee 100644 (file)
@@ -45,21 +45,21 @@ struct util_surfaces
 /* Return value indicates if the pipe surface result is new */
 boolean
 util_surfaces_do_get(struct util_surfaces *us, unsigned surface_struct_size,
-                     struct pipe_screen *pscreen, struct pipe_resource *pt,
+                     struct pipe_context *ctx, struct pipe_resource *pt,
                      unsigned level, unsigned layer, unsigned flags,
                      struct pipe_surface **res);
 
 /* fast inline path for the very common case */
 static INLINE boolean
 util_surfaces_get(struct util_surfaces *us, unsigned surface_struct_size,
-                  struct pipe_screen *pscreen, struct pipe_resource *pt,
+                  struct pipe_context *ctx, struct pipe_resource *pt,
                   unsigned level, unsigned layer, unsigned flags,
                   struct pipe_surface **res)
 {
    if(likely((pt->target == PIPE_TEXTURE_2D || pt->target == PIPE_TEXTURE_RECT) && us->u.array))
    {
       struct pipe_surface *ps = us->u.array[level];
-      if(ps)
+      if(ps && ps->context == ctx)
       {
         p_atomic_inc(&ps->reference.count);
         *res = ps;
@@ -67,7 +67,7 @@ util_surfaces_get(struct util_surfaces *us, unsigned surface_struct_size,
       }
    }
 
-   return util_surfaces_do_get(us, surface_struct_size, pscreen, pt, level, layer, flags, res);
+   return util_surfaces_do_get(us, surface_struct_size, ctx, pt, level, layer, flags, res);
 }
 
 static INLINE struct pipe_surface *