summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r200/r200_context.h
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2004-09-30 00:08:05 +0000
committerEric Anholt <anholt@FreeBSD.org>2004-09-30 00:08:05 +0000
commit7a086dc05e665a78f7e9d069aa4fc70e844b8988 (patch)
treef7ef0c3e7354f494cea48f10ae86810dd442c63f /src/mesa/drivers/dri/r200/r200_context.h
parentfa569c0a73576d3cca7cd1d0363064be099a6a22 (diff)
OK, one more time. Simplify the state-backup system by just storing the full
state in a ready-to-emit cmdbuf, which avoids the issue Nicolai Haehnle reported where the check() could return differently during backup-and-emit than it should have if it were called at the right time. Move the lit emission before most of the TCL state emission on r200, which fixes neverball issues. Tested with: r100/r200 with neverball, tuxracer, chromium, quake3, ipers
Diffstat (limited to 'src/mesa/drivers/dri/r200/r200_context.h')
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_context.h b/src/mesa/drivers/dri/r200/r200_context.h
index 25faec955c..140902c356 100644
--- a/src/mesa/drivers/dri/r200/r200_context.h
+++ b/src/mesa/drivers/dri/r200/r200_context.h
@@ -191,7 +191,6 @@ struct r200_state_atom {
GLuint idx;
int *cmd; /* one or more cmd's */
int *lastcmd; /* one or more cmd's */
- int *savedcmd; /* one or more cmd's */
GLboolean dirty;
GLboolean (*check)( GLcontext *, int ); /* is this state active? */
};
@@ -825,8 +824,6 @@ struct r200_vbinfo {
};
-
-
struct r200_context {
GLcontext *glCtx; /* Mesa context */
@@ -854,6 +851,10 @@ struct r200_context {
struct r200_ioctl ioctl;
struct r200_dma dma;
struct r200_store store;
+ /* A full state emit as of the first state emit in the main store, in case
+ * the context is lost.
+ */
+ struct r200_store backup_store;
/* Page flipping
*/
@@ -876,7 +877,7 @@ struct r200_context {
drm_clip_rect_t *pClipRects;
unsigned int lastStamp;
GLboolean lost_context;
- GLboolean save_on_next_unlock;
+ GLboolean save_on_next_emit;
r200ScreenPtr r200Screen; /* Screen private DRI data */
drm_radeon_sarea_t *sarea; /* Private SAREA data */