diff options
author | Rob Clark <robdclark@gmail.com> | 2013-03-06 22:19:50 -0500 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2013-03-25 16:01:22 -0400 |
commit | 29f1a057b48089ddbea4aa022dc04fca5467ca0a (patch) | |
tree | acd7f1daafe1a9976ec815c7088fe6faa0aa0c68 | |
parent | b3b7feca46a6e8de93e6bf7b0b7bd5fce2fd247f (diff) |
dri2: allocate DRI2 buffers in SMI
Attempt to use the fast stacked-memory for render target buffers.
-rw-r--r-- | src/msm-dri2.c | 3 | ||||
-rw-r--r-- | src/msm-exa.c | 13 | ||||
-rw-r--r-- | src/msm.h | 2 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/msm-dri2.c b/src/msm-dri2.c index 4bb081f..c58efdf 100644 --- a/src/msm-dri2.c +++ b/src/msm-dri2.c @@ -76,7 +76,8 @@ createpix(DrawablePtr pDraw) { ScreenPtr pScreen = pDraw->pScreen; return pScreen->CreatePixmap(pScreen, - pDraw->width, pDraw->height, pDraw->depth, 0); + pDraw->width, pDraw->height, pDraw->depth, + CREATE_PIXMAP_USAGE_DRI2); } /** diff --git a/src/msm-exa.c b/src/msm-exa.c index 2e156d3..4b7e358 100644 --- a/src/msm-exa.c +++ b/src/msm-exa.c @@ -907,8 +907,17 @@ MSMCreatePixmap2(ScreenPtr pScreen, int width, int height, if (!size) return priv; - priv->bo = fd_bo_new(pMsm->dev, size, - DRM_FREEDRENO_GEM_TYPE_KMEM); + if (usage_hint & CREATE_PIXMAP_USAGE_DRI2) { + priv->bo = fd_bo_new(pMsm->dev, size, + DRM_FREEDRENO_GEM_TYPE_KMEM | + DRM_FREEDRENO_GEM_TYPE_SMI); + ErrorF("bo=%p\n", priv->bo); + } + + if (!priv->bo) { + priv->bo = fd_bo_new(pMsm->dev, size, + DRM_FREEDRENO_GEM_TYPE_KMEM); + } if (priv->bo) return priv; @@ -41,6 +41,8 @@ #include <freedreno_drmif.h> #include <freedreno_ringbuffer.h> +#define CREATE_PIXMAP_USAGE_DRI2 0x10000000 + #ifndef ARRAY_SIZE # define ARRAY_SIZE(a) (sizeof((a)) / (sizeof(*(a)))) #endif |