diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-25 23:13:23 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-25 23:15:02 +0000 |
commit | aa045d80ec0d3366745d1671b9f667cec587d804 (patch) | |
tree | aefe5be212ac8424bb587283175c3ef6ad86307e /src/sna/sna.h | |
parent | 56fd91fc830d7a210e3a0e70ab41261a1f5baa83 (diff) |
sna: Detect available instruction sets at runtime
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna.h')
-rw-r--r-- | src/sna/sna.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/sna/sna.h b/src/sna/sna.h index f6e89ecd..77a52bdd 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -207,6 +207,18 @@ struct sna { #define SNA_TEAR_FREE 0x10 #define SNA_FORCE_SHADOW 0x20 + unsigned cpu_features; +#define MMX 0x1 +#define SSE 0x2 +#define SSE2 0x4 +#define SSE3 0x8 +#define SSSE3 0x10 +#define SSE4a 0x20 +#define SSE4_1 0x40 +#define SSE4_2 0x80 +#define AVX 0x100 +#define AVX2 0x200 + unsigned watch_flush; struct timeval timer_tv; @@ -855,6 +867,8 @@ inline static bool is_clipped(const RegionRec *r, r->extents.y2 - r->extents.y1 != d->height); } +unsigned sna_cpu_detect(void); + void sna_threads_init(void); int sna_use_threads (int width, int height, int threshold); void sna_threads_run(void (*func)(void *arg), void *arg); |