summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-27 20:16:35 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-27 20:16:35 +0100
commitd6f543011bf3d03b9298b5ceeddfc1fc20fc534b (patch)
tree3d0467c302c04f2df8845bc72d986aa8817c3c64
parent14a065a267523f9a31be07daaab19b67e9f02290 (diff)
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 <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna.h1
-rw-r--r--src/sna/sna_accel.c5
-rw-r--r--src/sna/sna_dri.c2
-rw-r--r--src/sna/sna_glyphs.c4
-rw-r--r--src/sna/sna_render.c2
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;