summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i915/intel_render.c
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@tungstengraphics.com>2008-12-08 14:29:50 +0000
committerAlan Hourihane <alanh@tungstengraphics.com>2008-12-08 14:29:50 +0000
commit33a1f495d4bb19288680b9812c6ec1235302d215 (patch)
treed47067fe24d530c660b75ee80cdcec72f10d9ed0 /src/mesa/drivers/dri/i915/intel_render.c
parentbcd5dda4358a5e47551278477bd00d2c63415c44 (diff)
parentbdc8ac4426f00eaafbe8ca0d356563efe390294d (diff)
downloadexternal_mesa3d-33a1f495d4bb19288680b9812c6ec1235302d215.zip
external_mesa3d-33a1f495d4bb19288680b9812c6ec1235302d215.tar.gz
external_mesa3d-33a1f495d4bb19288680b9812c6ec1235302d215.tar.bz2
Merge commit 'origin/master' into gallium-0.2
Conflicts: progs/glsl/Makefile
Diffstat (limited to 'src/mesa/drivers/dri/i915/intel_render.c')
-rw-r--r--src/mesa/drivers/dri/i915/intel_render.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i915/intel_render.c b/src/mesa/drivers/dri/i915/intel_render.c
index 467abe4..410052b 100644
--- a/src/mesa/drivers/dri/i915/intel_render.c
+++ b/src/mesa/drivers/dri/i915/intel_render.c
@@ -117,6 +117,26 @@ intelDmaPrimitive(struct intel_context *intel, GLenum prim)
intel_set_prim(intel, hw_prim[prim]);
}
+static inline GLuint intel_get_vb_max(struct intel_context *intel)
+{
+ GLuint ret;
+
+ if (intel->intelScreen->no_vbo)
+ ret = intel->batch->size - 1500;
+ else
+ ret = INTEL_VB_SIZE;
+ ret /= (intel->vertex_size * 4);
+ return ret;
+}
+
+static inline GLuint intel_get_current_max(struct intel_context *intel)
+{
+
+ if (intel->intelScreen->no_vbo)
+ return intel_get_vb_max(intel);
+ else
+ return (INTEL_VB_SIZE - intel->prim.current_offset) / (intel->vertex_size * 4);
+}
#define LOCAL_VARS struct intel_context *intel = intel_context(ctx)
#define INIT( prim ) \
@@ -126,9 +146,8 @@ do { \
#define FLUSH() INTEL_FIREVERTICES(intel)
-#define GET_SUBSEQUENT_VB_MAX_VERTS() (INTEL_VB_SIZE / (intel->vertex_size * 4))
-#define GET_CURRENT_VB_MAX_VERTS() \
- ((INTEL_VB_SIZE - intel->prim.current_offset) / (intel->vertex_size * 4))
+#define GET_SUBSEQUENT_VB_MAX_VERTS() intel_get_vb_max(intel)
+#define GET_CURRENT_VB_MAX_VERTS() intel_get_current_max(intel)
#define ALLOC_VERTS(nr) intel_get_prim_space(intel, nr)