diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-05-18 17:48:57 +0200 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-05-18 17:48:57 +0200 |
commit | 510cbd43cd4e34bd459e8f74ab2855714b4ca95d (patch) | |
tree | aab6ba5505b9d6ff97e5b32993fc5b5a43720ce4 /exa/exa.h | |
parent | 8331bde0adeccefb275c4d707e7b2cb1d95b1581 (diff) |
EXA: Defragment offscreen memory.
At most once per second, under the following circumstances:
* We can't satisfy an offscreen memory allocation, but there seems to be enough
offscreen memory available in total.
or
* The server has been idle for at least 100ms, and there is more than one
available offscreen area.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Diffstat (limited to 'exa/exa.h')
-rw-r--r-- | exa/exa.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -66,6 +66,9 @@ struct _ExaOffscreenArea { ExaOffscreenArea *next; unsigned eviction_cost; + + ExaOffscreenArea *prev; /* Double-linked list for defragmentation */ + int align; /* required alignment */ }; /** @@ -744,6 +747,16 @@ typedef struct _ExaDriver { */ #define EXA_SUPPORTS_PREPARE_AUX (1 << 4) +/** + * EXA_SUPPORTS_OFFSCREEN_OVERLAPS indicates to EXA that the driver Copy hooks + * can handle the source and destination occupying overlapping offscreen memory + * areas. This allows the offscreen memory defragmentation code to defragment + * areas where the defragmented position overlaps the fragmented position. + * + * Typically this is supported by traditional 2D engines but not by 3D engines. + */ +#define EXA_SUPPORTS_OFFSCREEN_OVERLAPS (1 << 5) + /** @} */ /* in exa.c */ |