Squashed commit of the following:
[mesa.git] / src / gallium / state_trackers / dri / drm / dri1.c
index 9b5842ba2bf3d2e28d9fcc42e4c2eb39355a2c9f..3cac1557cad0d2c77c296a75aaedd880c3a048de 100644 (file)
@@ -172,7 +172,7 @@ dri1_swap_copy(struct pipe_context *pipe,
 
 static void
 dri1_present_texture_locked(__DRIdrawable * dPriv,
-                            struct pipe_texture *ptex,
+                            struct pipe_resource *ptex,
                             const struct drm_clip_rect *sub_box,
                             struct pipe_fence_handle **fence)
 {
@@ -216,7 +216,7 @@ dri1_present_texture_locked(__DRIdrawable * dPriv,
 
 static void
 dri1_copy_to_front(struct dri_context *ctx,
-                  struct pipe_texture *ptex,
+                  struct pipe_resource *ptex,
                   __DRIdrawable * dPriv,
                   const struct drm_clip_rect *sub_box,
                   struct pipe_fence_handle **fence)
@@ -254,7 +254,7 @@ dri1_flush_frontbuffer(struct dri_drawable *draw,
    struct dri_screen *screen = dri_screen(draw->sPriv);
    struct pipe_screen *pipe_screen = screen->pipe_screen;
    struct pipe_fence_handle *dummy_fence;
-   struct pipe_texture *ptex;
+   struct pipe_resource *ptex;
 
    if (!ctx)
       return;                         /* For now */
@@ -278,7 +278,7 @@ dri1_swap_buffers(__DRIdrawable * dPriv)
    struct dri_screen *screen = dri_screen(draw->sPriv);
    struct pipe_screen *pipe_screen = screen->pipe_screen;
    struct pipe_fence_handle *fence;
-   struct pipe_texture *ptex;
+   struct pipe_resource *ptex;
 
    assert(__dri1_api_hooks != NULL);
 
@@ -308,7 +308,7 @@ dri1_copy_sub_buffer(__DRIdrawable * dPriv, int x, int y, int w, int h)
    struct drm_clip_rect sub_bbox;
    struct dri_drawable *draw = dri_drawable(dPriv);
    struct pipe_fence_handle *dummy_fence;
-   struct pipe_texture *ptex;
+   struct pipe_resource *ptex;
 
    assert(__dri1_api_hooks != NULL);
 
@@ -340,7 +340,7 @@ dri1_allocate_textures(struct dri_drawable *drawable,
                        unsigned mask)
 {
    struct dri_screen *screen = dri_screen(drawable->sPriv);
-   struct pipe_texture templ;
+   struct pipe_resource templ;
    unsigned width, height;
    boolean resized;
    int i;
@@ -354,7 +354,7 @@ dri1_allocate_textures(struct dri_drawable *drawable,
    /* remove outdated textures */
    if (resized) {
       for (i = 0; i < ST_ATTACHMENT_COUNT; i++)
-         pipe_texture_reference(&drawable->textures[i], NULL);
+         pipe_resource_reference(&drawable->textures[i], NULL);
    }
 
    memset(&templ, 0, sizeof(templ));
@@ -379,12 +379,12 @@ dri1_allocate_textures(struct dri_drawable *drawable,
       case ST_ATTACHMENT_FRONT_RIGHT:
       case ST_ATTACHMENT_BACK_RIGHT:
          format = drawable->stvis.color_format;
-         tex_usage = PIPE_TEXTURE_USAGE_DISPLAY_TARGET |
-                     PIPE_TEXTURE_USAGE_RENDER_TARGET;
+         tex_usage = PIPE_BIND_DISPLAY_TARGET |
+                     PIPE_BIND_RENDER_TARGET;
          break;
       case ST_ATTACHMENT_DEPTH_STENCIL:
          format = drawable->stvis.depth_stencil_format;
-         tex_usage = PIPE_TEXTURE_USAGE_DEPTH_STENCIL;
+         tex_usage = PIPE_BIND_DEPTH_STENCIL;
          break;
       default:
          format = PIPE_FORMAT_NONE;
@@ -393,10 +393,10 @@ dri1_allocate_textures(struct dri_drawable *drawable,
 
       if (format != PIPE_FORMAT_NONE) {
          templ.format = format;
-         templ.tex_usage = tex_usage;
+         templ.bind = tex_usage;
 
          drawable->textures[i] =
-            screen->pipe_screen->texture_create(screen->pipe_screen, &templ);
+            screen->pipe_screen->resource_create(screen->pipe_screen, &templ);
       }
    }
 
@@ -514,6 +514,8 @@ dri1_init_screen(__DRIscreen * sPriv)
 
    return configs;
 fail:
+   if (configs)
+      FREE(configs);
    dri_destroy_screen_helper(screen);
    FREE(screen);
    return NULL;