nv50/ir: add missing license headers
[mesa.git] / src / gallium / drivers / nvc0 / nvc0_resource.c
index 7e42cedd1631cc2b29d3b07cde248bc463dde303..a0289728ee99f332bf4b3171365cfc7fd9dafcce 100644 (file)
@@ -3,25 +3,6 @@
 #include "nvc0_resource.h"
 #include "nouveau/nouveau_screen.h"
 
-static unsigned
-nvc0_resource_is_referenced(struct pipe_context *pipe,
-                            struct pipe_resource *resource,
-                            unsigned face, int layer)
-{
-   struct nvc0_resource *res = nvc0_resource(resource);
-   unsigned flags = 0;
-
-#ifdef NOUVEAU_USERSPACE_MM
-   flags = res->status;
-#else
-   unsigned bo_flags = nouveau_bo_pending(res->bo);
-   if (bo_flags & NOUVEAU_BO_RD)
-      flags = PIPE_REFERENCED_FOR_READ;
-   if (bo_flags & NOUVEAU_BO_WR)
-      flags |= PIPE_REFERENCED_FOR_WRITE;
-#endif
-   return flags;
-}
 
 static struct pipe_resource *
 nvc0_resource_create(struct pipe_screen *screen,
@@ -29,7 +10,7 @@ nvc0_resource_create(struct pipe_screen *screen,
 {
    switch (templ->target) {
    case PIPE_BUFFER:
-      return nvc0_buffer_create(screen, templ);
+      return nouveau_buffer_create(screen, templ);
    default:
       return nvc0_miptree_create(screen, templ);
    }
@@ -40,10 +21,14 @@ nvc0_resource_from_handle(struct pipe_screen * screen,
                           const struct pipe_resource *templ,
                           struct winsys_handle *whandle)
 {
-   if (templ->target == PIPE_BUFFER)
+   if (templ->target == PIPE_BUFFER) {
       return NULL;
-   else
-      return nvc0_miptree_from_handle(screen, templ, whandle);
+   } else {
+      struct pipe_resource *res = nv50_miptree_from_handle(screen,
+                                                           templ, whandle);
+      nv04_resource(res)->vtbl = &nvc0_miptree_vtbl;
+      return res;
+   }
 }
 
 void
@@ -55,9 +40,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->is_resource_referenced = nvc0_resource_is_referenced;
    pcontext->create_surface = nvc0_miptree_surface_new;
-   pcontext->surface_destroy = nvc0_miptree_surface_del;
+   pcontext->surface_destroy = nv50_miptree_surface_del;
 }
 
 void
@@ -67,5 +51,5 @@ nvc0_screen_init_resource_functions(struct pipe_screen *pscreen)
    pscreen->resource_from_handle = nvc0_resource_from_handle;
    pscreen->resource_get_handle = u_resource_get_handle_vtbl;
    pscreen->resource_destroy = u_resource_destroy_vtbl;
-   pscreen->user_buffer_create = nvc0_user_buffer_create;
+   pscreen->user_buffer_create = nouveau_user_buffer_create;
 }