From d6f543011bf3d03b9298b5ceeddfc1fc20fc534b Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 27 Oct 2011 20:16:35 +0100 Subject: [PATCH] sna: Use private identifier for internal scratch pixmaps This was meant to be a part of the previous commit. These are the scratch pixmaps for which we truly do want to allocate GPU-only. Signed-off-by: Chris Wilson --- src/sna/sna.h | 1 + src/sna/sna_accel.c | 5 +++++ src/sna/sna_dri.c | 2 +- src/sna/sna_glyphs.c | 4 ++-- src/sna/sna_render.c | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sna/sna.h b/src/sna/sna.h index ec4429de..1bb81d03 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -624,5 +624,6 @@ memcpy_blt(const void *src, void *dst, int bpp, uint16_t width, uint16_t height); #define SNA_CREATE_FB 0x10 +#define SNA_CREATE_SCRATCH 0x11 #endif /* _SNA_H */ diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index f3a9251f..70bbad65 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -268,6 +268,11 @@ static PixmapPtr sna_create_pixmap(ScreenPtr screen, if (usage == CREATE_PIXMAP_USAGE_SCRATCH) return fbCreatePixmap(screen, width, height, depth, usage); + if (usage == SNA_CREATE_SCRATCH) + return sna_pixmap_create_scratch(screen, + width, height, depth, + I915_TILING_Y); + if (FORCE_GPU_ONLY && width && height) return sna_pixmap_create_scratch(screen, width, height, depth, diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c index 65fec47a..2fcc060f 100644 --- a/src/sna/sna_dri.c +++ b/src/sna/sna_dri.c @@ -198,7 +198,7 @@ sna_dri_create_buffer(DrawablePtr drawable, pixmap = NULL; bo = NULL; - usage = CREATE_PIXMAP_USAGE_SCRATCH; + usage = SNA_CREATE_SCRATCH; switch (attachment) { case DRI2BufferFrontLeft: pixmap = get_drawable_pixmap(drawable); diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c index 928c9fb2..7b98b0c8 100644 --- a/src/sna/sna_glyphs.c +++ b/src/sna/sna_glyphs.c @@ -177,7 +177,7 @@ static Bool realize_glyph_caches(struct sna *sna) CACHE_PICTURE_SIZE, CACHE_PICTURE_SIZE, depth, - CREATE_PIXMAP_USAGE_SCRATCH); + SNA_CREATE_SCRATCH); if (!pixmap) goto bail; @@ -726,7 +726,7 @@ glyphs_via_mask(struct sna *sna, pixmap = screen->CreatePixmap(screen, width, height, format->depth, - CREATE_PIXMAP_USAGE_SCRATCH); + SNA_CREATE_SCRATCH); if (!pixmap) return FALSE; diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c index 7ab0de1d..4017f919 100644 --- a/src/sna/sna_render.c +++ b/src/sna/sna_render.c @@ -559,7 +559,7 @@ static int sna_render_picture_downsample(struct sna *sna, tmp = screen->CreatePixmap(screen, w/2, h/2, pixmap->drawable.depth, - CREATE_PIXMAP_USAGE_SCRATCH); + SNA_CREATE_SCRATCH); if (!tmp) goto fixup;