Merge branch 'mesa_7_7_branch'
[mesa.git] / src / gallium / state_trackers / xorg / xorg_crtc.c
index ddcaedde37e4dbbc920cf6440cd49fc814307df2..82dae194c4bd434f478849d036674895907605b2 100644 (file)
@@ -196,11 +196,10 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * image)
        templat.tex_usage |= PIPE_TEXTURE_USAGE_PRIMARY;
        templat.target = PIPE_TEXTURE_2D;
        templat.last_level = 0;
-       templat.depth[0] = 1;
+       templat.depth0 = 1;
        templat.format = PIPE_FORMAT_A8R8G8B8_UNORM;
-       templat.width[0] = 64;
-       templat.height[0] = 64;
-       pf_get_block(templat.format, &templat.block);
+       templat.width0 = 64;
+       templat.height0 = 64;
 
        crtcp->cursor_tex = ms->screen->texture_create(ms->screen,
                                                       &templat);
@@ -216,7 +215,7 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * image)
                                            PIPE_TRANSFER_WRITE,
                                            0, 0, 64, 64);
     ptr = ms->screen->transfer_map(ms->screen, transfer);
-    util_copy_rect(ptr, &crtcp->cursor_tex->block,
+    util_copy_rect(ptr, crtcp->cursor_tex->format,
                   transfer->stride, 0, 0,
                   64, 64, (void*)image, 64 * 4, 0, 0);
     ms->screen->transfer_unmap(ms->screen, transfer);
@@ -257,7 +256,7 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image)
     return;
 
 err_bo_destroy:
-    kms_bo_destroy(crtcp->cursor_bo);
+    kms_bo_destroy(&crtcp->cursor_bo);
 }
 #endif
 
@@ -305,10 +304,8 @@ xorg_crtc_cursor_destroy(xf86CrtcPtr crtc)
        pipe_texture_reference(&crtcp->cursor_tex, NULL);
 #ifdef HAVE_LIBKMS
     if (crtcp->cursor_bo)
-       kms_bo_destroy(crtcp->cursor_bo);
+       kms_bo_destroy(&crtcp->cursor_bo);
 #endif
-
-    xfree(crtcp);
 }
 
 /*
@@ -320,11 +317,12 @@ crtc_destroy(xf86CrtcPtr crtc)
 {
     struct crtc_private *crtcp = crtc->driver_private;
 
-    if (crtcp->cursor_tex)
-       pipe_texture_reference(&crtcp->cursor_tex, NULL);
+    xorg_crtc_cursor_destroy(crtc);
 
     drmModeFreeCrtc(crtcp->drm_crtc);
+
     xfree(crtcp);
+    crtc->driver_private = NULL;
 }
 
 static const xf86CrtcFuncsRec crtc_funcs = {