i915g: Implement KILP.
[mesa.git] / src / gallium / drivers / nvc0 / nvc0_resource.c
index a0289728ee99f332bf4b3171365cfc7fd9dafcce..e8d83ca5d93ebb2aef7e7729c7851c9f9ca9671e 100644 (file)
@@ -31,6 +31,16 @@ nvc0_resource_from_handle(struct pipe_screen * screen,
    }
 }
 
+static struct pipe_surface *
+nvc0_surface_create(struct pipe_context *pipe,
+                    struct pipe_resource *pres,
+                    const struct pipe_surface *templ)
+{
+   if (unlikely(pres->target == PIPE_BUFFER))
+      return nv50_surface_from_buffer(pipe, pres, templ);
+   return nvc0_miptree_surface_new(pipe, pres, templ);
+}
+
 void
 nvc0_init_resource_functions(struct pipe_context *pcontext)
 {
@@ -40,8 +50,8 @@ nvc0_init_resource_functions(struct pipe_context *pcontext)
    pcontext->transfer_unmap = u_transfer_unmap_vtbl;
    pcontext->transfer_destroy = u_transfer_destroy_vtbl;
    pcontext->transfer_inline_write = u_transfer_inline_write_vtbl;
-   pcontext->create_surface = nvc0_miptree_surface_new;
-   pcontext->surface_destroy = nv50_miptree_surface_del;
+   pcontext->create_surface = nvc0_surface_create;
+   pcontext->surface_destroy = nv50_surface_destroy;
 }
 
 void