Merge branch 'i915-unification' of git+ssh://people.freedesktop.org/~anholt/mesa...
[mesa.git] / src / mesa / drivers / dri / i915tex / intel_screen.c
index 0005cfad9d27e5f16c7e52b8bda975a3d3263bc7..89cf3ea91393f2d86dda383ae780f236efd9e6d4 100644 (file)
@@ -123,8 +123,6 @@ intelMapScreenRegions(__DRIscreenPrivate * sPriv)
    if (0)
       _mesa_printf("TEX 0x%08x ", intelScreen->tex.handle);
    if (intelScreen->tex.size != 0) {
-      intelScreen->ttm = GL_FALSE;
-
       if (drmMap(sPriv->fd,
                 intelScreen->tex.handle,
                 intelScreen->tex.size,
@@ -132,8 +130,6 @@ intelMapScreenRegions(__DRIscreenPrivate * sPriv)
         intelUnmapScreenRegions(intelScreen);
         return GL_FALSE;
       }
-   } else {
-      intelScreen->ttm = GL_TRUE;
    }
 
    if (0)
@@ -530,12 +526,16 @@ intelInitDriver(__DRIscreenPrivate * sPriv)
       (*glx_enable_extension) (psc, "GLX_SGI_make_current_read");
    }
 
-   if (intelScreen->ttm) {
-      intelScreen->bufmgr = dri_bufmgr_ttm_init(sPriv->fd,
-                                               DRM_FENCE_TYPE_EXE,
-                                               DRM_FENCE_TYPE_EXE |
-                                               DRM_I915_FENCE_TYPE_RW);
-   } else {
+   intelScreen->bufmgr = dri_bufmgr_ttm_init(sPriv->fd,
+                                            DRM_FENCE_TYPE_EXE,
+                                            DRM_FENCE_TYPE_EXE |
+                                            DRM_I915_FENCE_TYPE_RW);
+   if (intelScreen->bufmgr == NULL) {
+      if (intelScreen->tex.size == 0) {
+        fprintf(stderr, "[%s:%u] Error initializing buffer manager.\n",
+                __func__, __LINE__);
+        return GL_FALSE;
+      }
       intelScreen->bufmgr = dri_bufmgr_fake_init(intelScreen->tex.offset,
                                                 intelScreen->tex.map,
                                                 intelScreen->tex.size,
@@ -557,7 +557,7 @@ intelDestroyScreen(__DRIscreenPrivate * sPriv)
 
    intelUnmapScreenRegions(intelScreen);
 
-   /* XXX: bufmgr teardown */
+   dri_bufmgr_destroy(intelScreen->bufmgr);
    FREE(intelScreen);
    sPriv->private = NULL;
 }
@@ -740,6 +740,10 @@ intelCreateContext(const __GLcontextModes * mesaVis,
    case PCI_CHIP_I915_GM:
    case PCI_CHIP_I945_G:
    case PCI_CHIP_I945_GM:
+   case PCI_CHIP_I945_GME:
+   case PCI_CHIP_G33_G:
+   case PCI_CHIP_Q35_G:
+   case PCI_CHIP_Q33_G:
       return i915CreateContext(mesaVis, driContextPriv, sharedContextPrivate);
 
    default:
@@ -764,7 +768,8 @@ static const struct __DriverAPIRec intelAPI = {
    .WaitForMSC = driWaitForMSC32,
    .WaitForSBC = NULL,
    .SwapBuffersMSC = NULL,
-   .CopySubBuffer = intelCopySubBuffer
+   .CopySubBuffer = intelCopySubBuffer,
+   .setTexOffset = intelSetTexOffset,
 };