summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_tracker.h
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-08-26 13:18:37 +0200
committerMichel Dänzer <daenzer@vmware.com>2009-08-26 13:18:37 +0200
commitb2e1b258812167ce8d33f5978f877439e280a1e4 (patch)
tree03a7ea0b11fd9bc65072ca637690673bbc518495 /src/gallium/state_trackers/xorg/xorg_tracker.h
parentdadf138ddbaecd7fff239df7961aac25e74f14f6 (diff)
st/xorg: Add support for dirty framebuffer region reporting.
Add a BlockHandler which flushes the context and reports the dirty region gathered using the X server damage layer. In the interim, with dirty region reporting only allocate textures for the framebuffer and shared pixmaps (e.g. DRI2 buffers) and fall back to software for other pixmaps. This will be improved in the future.
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_tracker.h')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_tracker.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_tracker.h b/src/gallium/state_trackers/xorg/xorg_tracker.h
index 910782dbc4..da850bbf64 100644
--- a/src/gallium/state_trackers/xorg/xorg_tracker.h
+++ b/src/gallium/state_trackers/xorg/xorg_tracker.h
@@ -41,6 +41,10 @@
#include <xf86.h>
#include <exa.h>
+#ifdef DRM_MODE_FEATURE_DIRTYFB
+#include <damage.h>
+#endif
+
#include "pipe/p_screen.h"
#include "state_tracker/drm_api.h"
@@ -76,6 +80,7 @@ typedef struct _modesettingRec
unsigned int SaveGeneration;
+ void (*blockHandler)(int, pointer, pointer, pointer);
CreateScreenResourcesProcPtr createScreenResources;
/* gallium */
@@ -87,6 +92,9 @@ typedef struct _modesettingRec
void *exa;
Bool noEvict;
+#ifdef DRM_MODE_FEATURE_DIRTYFB
+ DamagePtr damage;
+#endif
} modesettingRec, *modesettingPtr;
#define modesettingPTR(p) ((modesettingPtr)((p)->driverPrivate))