diff options
author | Eric Anholt <eric@anholt.net> | 2007-12-12 10:25:19 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2007-12-12 11:52:10 -0800 |
commit | 7c71ef3a3d0cf2620525f468960cdc76a0fb0d33 (patch) | |
tree | 7b7e071b5c854bc5b737401990b54e488febf650 /src/mesa/drivers/dri/i965/intel_context.h | |
parent | 00e10a1385bfd376f5f45ad94e3543ac87f15de8 (diff) |
[intel] Move bufmgr back to context instead of screen, fixing glthreads.
Putting the bufmgr in the screen is not thread-safe since the emit_reloc
changes. It also led to a significant performance hit from pthread usage
for the attempted thread-safety (up to 12% of a cpu spent on refcounting
protection in single-threaded 965). The motivation had been to allow
multi-context bufmgr sharing in classic mode, but it wasn't worth the cost.
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_context.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_context.h | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_context.h b/src/mesa/drivers/dri/i965/intel_context.h index 4aa9413bec..17612acdaf 100644 --- a/src/mesa/drivers/dri/i965/intel_context.h +++ b/src/mesa/drivers/dri/i965/intel_context.h @@ -157,13 +157,28 @@ struct intel_context GLint refcount; GLuint Fallback; GLuint NewGLState; - + + dri_bufmgr *bufmgr; + unsigned int maxBatchSize; + + struct intel_region *front_region; + struct intel_region *back_region; + struct intel_region *third_region; + struct intel_region *depth_region; + + /** + * This value indicates that the kernel memory manager is being used + * instead of the fake client-side memory manager. + */ + GLboolean ttm; + dri_fence *first_swap_fence; dri_fence *last_swap_fence; GLuint stats_wm; struct intel_batchbuffer *batch; + unsigned batch_id; GLubyte clear_chan[4]; GLuint ClearColor; @@ -205,12 +220,6 @@ struct intel_context drmLock *driHwLock; int driFd; - /* Cached values from the screen private. */ - dri_bufmgr *bufmgr; - struct intel_region *front_region; - struct intel_region *back_region; - struct intel_region *depth_region; - __DRIdrawablePrivate *driDrawable; __DRIdrawablePrivate *driReadDrawable; __DRIscreenPrivate *driScreen; @@ -219,6 +228,8 @@ struct intel_context GLuint lastStamp; + GLboolean no_hw; + /** * Configuration cache */ |