Pass winsys as a parameter to intel_create_i915simple(), intel_create_softpipe()
authorBrian <brian.paul@tungstengraphics.com>
Wed, 7 Nov 2007 18:44:48 +0000 (11:44 -0700)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 7 Nov 2007 23:08:04 +0000 (16:08 -0700)
src/mesa/drivers/dri/intel_winsys/intel_context.c
src/mesa/drivers/dri/intel_winsys/intel_winsys.h
src/mesa/drivers/dri/intel_winsys/intel_winsys_i915.c
src/mesa/drivers/dri/intel_winsys/intel_winsys_softpipe.c

index f565e2ccf86b728b758861eb00fa9db5a2fa9a0c..31de96dc84f4920ae19de7478008f1879e496b4e 100644 (file)
@@ -144,6 +144,7 @@ intelCreateContext(const __GLcontextModes * visual,
    int fthrottle_mode;
    GLboolean havePools;
    struct pipe_context *pipe;
+   struct pipe_winsys *winsys;
    struct st_context *st_share = NULL;
 
    if (sharedContextPrivate) {
@@ -186,12 +187,13 @@ intelCreateContext(const __GLcontextModes * visual,
    __intel_debug = driParseDebugString(getenv("INTEL_DEBUG"), debug_control);
 #endif
 
+   winsys = intel_create_pipe_winsys( intel );
 
    /*
     * Pipe-related setup
     */
    if (!getenv("INTEL_HW")) {
-      pipe = intel_create_softpipe( intel );
+      pipe = intel_create_softpipe( intel, winsys );
    }
    else {
       switch (intel->intelScreen->deviceID) {
@@ -203,13 +205,13 @@ intelCreateContext(const __GLcontextModes * visual,
       case PCI_CHIP_Q35_G:
       case PCI_CHIP_I915_G:
       case PCI_CHIP_I915_GM:
-        pipe = intel_create_i915simple( intel );
+        pipe = intel_create_i915simple( intel, winsys );
         break;
       default:
         fprintf(stderr, "Unknown PCIID %x in %s, using software driver\n", 
                  intel->intelScreen->deviceID, __FUNCTION__);
 
-        pipe = intel_create_softpipe( intel );
+        pipe = intel_create_softpipe( intel, winsys );
         break;
       }
    }
index 78f5cb6519bde603cfe38e260fa0e62b7259ee28..d7de57227b49e8f74003f3240b270f8d9f0b310b 100644 (file)
@@ -38,10 +38,12 @@ struct pipe_winsys *
 intel_create_pipe_winsys( struct intel_context *intel );
 
 struct pipe_context *
-intel_create_softpipe( struct intel_context *intel );
+intel_create_softpipe( struct intel_context *intel,
+                       struct pipe_winsys *winsys );
 
 struct pipe_context *
-intel_create_i915simple( struct intel_context *intel );
+intel_create_i915simple( struct intel_context *intel,
+                       struct pipe_winsys *winsys );
 
 
 
index 4fb8f02daa242835d91b621ea2eb31034d07dff9..d6ba6024b25b14c0c988b4c9830513393d8ae6bd 100644 (file)
@@ -120,9 +120,12 @@ static void intel_i915_batch_flush( struct i915_winsys *sws )
 }
 
 
-
+/**
+ * Create i915 hardware rendering context.
+ */
 struct pipe_context *
-intel_create_i915simple( struct intel_context *intel )
+intel_create_i915simple( struct intel_context *intel,
+                         struct pipe_winsys *winsys )
 {
    struct intel_i915_winsys *iws = CALLOC_STRUCT( intel_i915_winsys );
    
@@ -137,7 +140,7 @@ intel_create_i915simple( struct intel_context *intel )
 
    /* Create the i915simple context:
     */
-   return i915_create( intel_create_pipe_winsys(intel),
-                      &iws->winsys, 
+   return i915_create( winsys,
+                      &iws->winsys,
                       intel->intelScreen->deviceID );
 }
index 5407973fba016f5c9a1b23ee399c61d77d4f0367..7a93546bc223fcf40b53c9d80695393919b1d10e 100644 (file)
@@ -58,8 +58,12 @@ intel_is_format_supported(struct softpipe_winsys *sws, uint format)
 }
 
 
+/**
+ * Create rendering context which uses software rendering.
+ */
 struct pipe_context *
-intel_create_softpipe( struct intel_context *intel )
+intel_create_softpipe( struct intel_context *intel,
+                       struct pipe_winsys *winsys )
 {
    struct intel_softpipe_winsys *isws = CALLOC_STRUCT( intel_softpipe_winsys );
    
@@ -71,6 +75,5 @@ intel_create_softpipe( struct intel_context *intel )
 
    /* Create the softpipe context:
     */
-   return softpipe_create( intel_create_pipe_winsys( intel ),
-                          &isws->sws );
+   return softpipe_create( winsys, &isws->sws );
 }