gallium: Redefine the max texture 2d cap from _LEVELS to _SIZE.
[mesa.git] / src / gallium / drivers / i915 / i915_resource.c
index 499233ceb9be1d5f2e86c7299a2c68846e3d5574..8e5572b4cd4591df23fc77713ec5173e7cd044aa 100644 (file)
@@ -7,19 +7,24 @@
 
 static struct pipe_resource *
 i915_resource_create(struct pipe_screen *screen,
-                    const struct pipe_resource *template)
+                     const struct pipe_resource *template)
 {
    if (template->target == PIPE_BUFFER)
       return i915_buffer_create(screen, template);
    else
-      return i915_texture_create(screen, template);
-
+   {
+      if (!(template->bind & PIPE_BIND_LINEAR))
+         return i915_texture_create(screen, template, FALSE);
+      else
+         return i915_texture_create(screen, template, TRUE);
+   }
 }
 
 static struct pipe_resource *
 i915_resource_from_handle(struct pipe_screen * screen,
                         const struct pipe_resource *template,
-                        struct winsys_handle *whandle)
+                        struct winsys_handle *whandle,
+                          unsigned usage)
 {
    if (template->target == PIPE_BUFFER)
       return NULL;
@@ -31,13 +36,11 @@ i915_resource_from_handle(struct pipe_screen * screen,
 void
 i915_init_resource_functions(struct i915_context *i915 )
 {
-   i915->base.is_resource_referenced = u_default_is_resource_referenced;
-   i915->base.get_transfer = u_get_transfer_vtbl;
    i915->base.transfer_map = u_transfer_map_vtbl;
    i915->base.transfer_flush_region = u_transfer_flush_region_vtbl;
    i915->base.transfer_unmap = u_transfer_unmap_vtbl;
-   i915->base.transfer_destroy = u_transfer_destroy_vtbl;
-   i915->base.transfer_inline_write = u_transfer_inline_write_vtbl;
+   i915->base.buffer_subdata = i915_buffer_subdata;
+   i915->base.texture_subdata = u_default_texture_subdata;
 }
 
 void
@@ -47,5 +50,4 @@ i915_init_screen_resource_functions(struct i915_screen *is)
    is->base.resource_from_handle = i915_resource_from_handle;
    is->base.resource_get_handle = u_resource_get_handle_vtbl;
    is->base.resource_destroy = u_resource_destroy_vtbl;
-   is->base.user_buffer_create = i915_user_buffer_create;
 }