diff options
author | Eric Anholt <eric@anholt.net> | 2006-10-26 15:47:49 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2006-10-26 15:47:49 -0700 |
commit | 25e6e497824a23eb231fc6fd6e483f601d612cee (patch) | |
tree | 85f317aff96c3ac817932fc70313c1c8ac01f4ce /src/i830.h | |
parent | 0bdcce2e4541c6e441c44aad49254ad3093cedb2 (diff) |
Major cleanup of 3D invariant state, fixing hangs with rotation and render.exa
Now, the generic invariant state is always set while the X Server is active,
and happens automatically when the X Server grabs the DRI lock. More 3D state
is moved to the generic code.
Then, the 3D consumers (video, rotation, render) set last_3d to their enum
entry, and can update their own invariant state when another consumer was
active.
Diffstat (limited to 'src/i830.h')
-rw-r--r-- | src/i830.h | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -192,6 +192,13 @@ typedef struct _region { int x0,x1,y0,y1; } region; +/** enumeration of 3d consumers so some can maintain invariant state. */ +enum last_3d { + LAST_3D_OTHER, + LAST_3D_VIDEO, + LAST_3D_RENDER, + LAST_3D_ROTATION +}; typedef struct _I830Rec { unsigned char *MMIOBase; @@ -453,6 +460,8 @@ typedef struct _I830Rec { CARD32 savedAsurf; CARD32 savedBsurf; + + enum last_3d last_3d; } I830Rec; #define I830PTR(p) ((I830Ptr)((p)->driverPrivate)) |