summaryrefslogtreecommitdiff
path: root/src/sna/sna_accel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/sna_accel.c')
-rw-r--r--src/sna/sna_accel.c61
1 files changed, 7 insertions, 54 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index c427808c..fc44b471 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -523,8 +523,7 @@ _sna_pixmap_reset(PixmapPtr pixmap)
return _sna_pixmap_init(priv, pixmap);
}
-static struct sna_pixmap *__sna_pixmap_attach(struct sna *sna,
- PixmapPtr pixmap)
+static struct sna_pixmap *sna_pixmap_attach(struct sna *sna, PixmapPtr pixmap)
{
struct sna_pixmap *priv;
@@ -536,50 +535,6 @@ static struct sna_pixmap *__sna_pixmap_attach(struct sna *sna,
return _sna_pixmap_init(priv, pixmap);
}
-struct sna_pixmap *_sna_pixmap_attach(PixmapPtr pixmap)
-{
- struct sna *sna = to_sna_from_pixmap(pixmap);
- struct sna_pixmap *priv;
-
- DBG(("%s: serial=%ld, %dx%d, usage=%d\n",
- __FUNCTION__,
- pixmap->drawable.serialNumber,
- pixmap->drawable.width,
- pixmap->drawable.height,
- pixmap->usage_hint));
-
- switch (pixmap->usage_hint) {
- case CREATE_PIXMAP_USAGE_GLYPH_PICTURE:
- DBG(("%s: not attaching due to crazy usage: %d\n",
- __FUNCTION__, pixmap->usage_hint));
- return NULL;
-
- case SNA_CREATE_FB:
- /* We assume that the Screen pixmap will be pre-validated */
- break;
-
- default:
- if (!kgem_can_create_2d(&sna->kgem,
- pixmap->drawable.width,
- pixmap->drawable.height,
- pixmap->drawable.depth))
- return NULL;
- break;
- }
-
- priv = __sna_pixmap_attach(sna, pixmap);
- if (priv == NULL)
- return NULL;
-
- DBG(("%s: created priv and marking all cpu damaged\n", __FUNCTION__));
-
- sna_damage_all(&priv->cpu_damage,
- pixmap->drawable.width,
- pixmap->drawable.height);
-
- return priv;
-}
-
static inline PixmapPtr
create_pixmap(struct sna *sna, ScreenPtr screen,
int width, int height, int depth,
@@ -647,7 +602,7 @@ sna_pixmap_create_shm(ScreenPtr screen,
pixmap->drawable.depth = depth;
pixmap->drawable.bitsPerPixel = bpp;
- priv = __sna_pixmap_attach(sna, pixmap);
+ priv = sna_pixmap_attach(sna, pixmap);
if (!priv) {
fbDestroyPixmap(pixmap);
return NullPixmap;
@@ -729,7 +684,7 @@ sna_pixmap_create_scratch(ScreenPtr screen,
pixmap->drawable.depth = depth;
pixmap->drawable.bitsPerPixel = bpp;
- priv = __sna_pixmap_attach(sna, pixmap);
+ priv = sna_pixmap_attach(sna, pixmap);
if (!priv) {
fbDestroyPixmap(pixmap);
return NullPixmap;
@@ -770,9 +725,7 @@ static PixmapPtr sna_create_pixmap(ScreenPtr screen,
usage = -1;
goto fallback;
}
-
- if (!sna->have_render)
- goto fallback;
+ assert(width && height);
flags = kgem_can_create_2d(&sna->kgem, width, height, depth);
if (flags == 0) {
@@ -811,7 +764,7 @@ static PixmapPtr sna_create_pixmap(ScreenPtr screen,
if (pixmap == NullPixmap)
return NullPixmap;
- __sna_pixmap_attach(sna, pixmap);
+ sna_pixmap_attach(sna, pixmap);
} else {
struct sna_pixmap *priv;
@@ -827,7 +780,7 @@ static PixmapPtr sna_create_pixmap(ScreenPtr screen,
pixmap->devKind = pad;
pixmap->devPrivate.ptr = NULL;
- priv = __sna_pixmap_attach(sna, pixmap);
+ priv = sna_pixmap_attach(sna, pixmap);
if (priv == NULL) {
free(pixmap);
goto fallback;
@@ -2080,7 +2033,7 @@ sna_pixmap_force_to_gpu(PixmapPtr pixmap, unsigned flags)
DBG(("%s(pixmap=%p)\n", __FUNCTION__, pixmap));
- priv = sna_pixmap_attach(pixmap);
+ priv = sna_pixmap(pixmap);
if (priv == NULL)
return NULL;