summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/intel_context.h
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-12-12 10:25:19 -0800
committerEric Anholt <eric@anholt.net>2007-12-12 11:52:10 -0800
commit7c71ef3a3d0cf2620525f468960cdc76a0fb0d33 (patch)
tree7b7e071b5c854bc5b737401990b54e488febf650 /src/mesa/drivers/dri/i965/intel_context.h
parent00e10a1385bfd376f5f45ad94e3543ac87f15de8 (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.h25
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
*/