summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/savage/savage_xmesa.c
diff options
context:
space:
mode:
authorFelix Kuehling <fxkuehl@gmx.de>2005-03-06 03:52:01 +0000
committerFelix Kuehling <fxkuehl@gmx.de>2005-03-06 03:52:01 +0000
commit9d05d3dd308c4655673a710d0c10f09cac9c0d83 (patch)
treefe5bf551e5f95dd5210bd2b2b455d84310a0dbdd /src/mesa/drivers/dri/savage/savage_xmesa.c
parente6aa21156ace5bea0a8bcc8c58aceacb748e2627 (diff)
Don't synchronize after each frame. Allow the GPU to be one frame
ahead of the CPU for more parallelism of CPU and GPU. Unfortunately there seems to be some broken hardware (like my ProSavageDDR) on which status register updates are delayed sometimes. This leads to very jerky animation if the hardware can buffer more than the current frame. A new option "sync_frames" can be used as a remedy on such broken hardware.
Diffstat (limited to 'src/mesa/drivers/dri/savage/savage_xmesa.c')
-rw-r--r--src/mesa/drivers/dri/savage/savage_xmesa.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c
index 8e11ef2499..522c6275c4 100644
--- a/src/mesa/drivers/dri/savage/savage_xmesa.c
+++ b/src/mesa/drivers/dri/savage/savage_xmesa.c
@@ -69,6 +69,11 @@ DRI_CONF_OPT_BEGIN(enable_fastpath,bool,def) \
DRI_CONF_DESC(en,"Use fast path for unclipped primitives") \
DRI_CONF_DESC(de,"Schneller Codepfad für ungeschnittene Polygone") \
DRI_CONF_OPT_END
+#define SAVAGE_SYNC_FRAMES(def) \
+DRI_CONF_OPT_BEGIN(sync_frames,bool,def) \
+ DRI_CONF_DESC(en,"Synchronize with graphics hardware after each frame") \
+ DRI_CONF_DESC(de,"Synchronisiere nach jedem Frame mit Grafikhardware") \
+DRI_CONF_OPT_END
/* Configuration
*/
@@ -80,16 +85,17 @@ DRI_CONF_BEGIN
DRI_CONF_FLOAT_DEPTH(false)
DRI_CONF_SECTION_END
DRI_CONF_SECTION_PERFORMANCE
- DRI_CONF_MAX_TEXTURE_UNITS(2,1,2)
SAVAGE_ENABLE_VDMA(true)
SAVAGE_ENABLE_FASTPATH(true)
+ SAVAGE_SYNC_FRAMES(false)
+ DRI_CONF_MAX_TEXTURE_UNITS(2,1,2)
DRI_CONF_TEXTURE_HEAPS(DRI_CONF_TEXTURE_HEAPS_ALL)
DRI_CONF_SECTION_END
DRI_CONF_SECTION_DEBUG
DRI_CONF_NO_RAST(false)
DRI_CONF_SECTION_END
DRI_CONF_END;
-static const GLuint __driNConfigOptions = 8;
+static const GLuint __driNConfigOptions = 9;
#ifdef USE_NEW_INTERFACE
static PFNGLXCREATECONTEXTMODES create_context_modes = NULL;
@@ -499,6 +505,8 @@ savageCreateContext( const __GLcontextModes *mesaVis,
else
imesa->enable_vdma = driQueryOptionb(&imesa->optionCache, "enable_vdma");
+ imesa->sync_frames = driQueryOptionb(&imesa->optionCache, "sync_frames");
+
/* Configure swrast to match hardware characteristics:
*/
_tnl_allow_pixel_fog( ctx, GL_FALSE );