summaryrefslogtreecommitdiff
path: root/src/intel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel.h')
-rw-r--r--src/intel.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/intel.h b/src/intel.h
index 9d64d30f..6135349f 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -260,7 +260,7 @@ typedef struct intel_screen_private {
unsigned int current_batch;
void *modes;
- drm_intel_bo *front_buffer;
+ drm_intel_bo *front_buffer, *back_buffer;
long front_pitch, front_tiling;
void *shadow_buffer;
int shadow_stride;
@@ -423,12 +423,15 @@ typedef struct intel_screen_private {
char *deviceName;
Bool use_pageflipping;
+ Bool use_triple_buffer;
Bool force_fallback;
Bool can_blt;
Bool has_kernel_flush;
Bool needs_flush;
Bool use_shadow;
+ struct _DRI2FrameEvent *pending_flip[2];
+
/* Broken-out options. */
OptionInfoPtr Options;
@@ -465,6 +468,7 @@ extern int intel_output_dpms_status(xf86OutputPtr output);
enum DRI2FrameEventType {
DRI2_SWAP,
+ DRI2_SWAP_CHAIN,
DRI2_FLIP,
DRI2_WAITMSC,
};
@@ -475,10 +479,13 @@ typedef void (*DRI2SwapEventPtr)(ClientPtr client, void *data, int type,
#endif
typedef struct _DRI2FrameEvent {
+ struct intel_screen_private *intel;
+
XID drawable_id;
ClientPtr client;
enum DRI2FrameEventType type;
int frame;
+ int pipe;
struct list drawable_resource, client_resource;
@@ -487,6 +494,8 @@ typedef struct _DRI2FrameEvent {
void *event_data;
DRI2BufferPtr front;
DRI2BufferPtr back;
+
+ struct _DRI2FrameEvent *chain;
} DRI2FrameEventRec, *DRI2FrameEventPtr;
extern Bool intel_do_pageflip(intel_screen_private *intel,