gallium: Redefine the max texture 2d cap from _LEVELS to _SIZE.
[mesa.git] / src / gallium / drivers / i915 / i915_resource.c
index 314ebe9551e080b46f2d581689053ce205b0db30..8e5572b4cd4591df23fc77713ec5173e7cd044aa 100644 (file)
@@ -12,14 +12,19 @@ i915_resource_create(struct pipe_screen *screen,
    if (template->target == PIPE_BUFFER)
       return i915_buffer_create(screen, template);
    else
-      return i915_texture_create(screen, template, FALSE);
-
+   {
+      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;
@@ -34,7 +39,8 @@ i915_init_resource_functions(struct i915_context *i915 )
    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_inline_write = u_transfer_inline_write_vtbl;
+   i915->base.buffer_subdata = i915_buffer_subdata;
+   i915->base.texture_subdata = u_default_texture_subdata;
 }
 
 void