i965: Initialize the intel_context::bufmgr pointer earlier.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 1 Aug 2013 22:11:39 +0000 (15:11 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 6 Aug 2013 21:41:37 +0000 (14:41 -0700)
This prevents a crash in a future patch.

_mesa_initialize_context() creates a default transform feedback object
by calling the NewTransformFeedbackObject() driver hook.  Eventually,
we'll want to subclass that and allocate a buffer object.  This means
passing brw->bufmgr to drm_intel_alloc_bo(), and crashing if it isn't
initialized yet.

The buffer manager is actually already initialized; we just hadn't
copied the pointer from intel_screen to intel_context quite early
enough.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/intel_context.c

index 7860e1fc0368fedadfed1a30bde85f99fb95df97..461d4931c410c100e0bb3b1a93b9354f14fe6104 100644 (file)
@@ -481,6 +481,7 @@ intelInitContext(struct brw_context *brw,
    }
 
    brw->intelScreen = intelScreen;
+   brw->bufmgr = intelScreen->bufmgr;
 
    if (!_mesa_initialize_context(&brw->ctx, api, mesaVis, shareCtx,
                                  functions)) {
@@ -540,8 +541,6 @@ intelInitContext(struct brw_context *brw,
     */
    brw->max_gtt_map_object_size = gtt_size / 4;
 
-   brw->bufmgr = intelScreen->bufmgr;
-
    bo_reuse_mode = driQueryOptioni(&brw->optionCache, "bo_reuse");
    switch (bo_reuse_mode) {
    case DRI_CONF_BO_REUSE_DISABLED: