aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBoris Brezillon <[email protected]>2019-08-28 16:52:37 +0200
committerBoris Brezillon <[email protected]>2019-08-28 17:50:44 +0200
commit8709b865ce122687d75af8e96cfbb9c851885899 (patch)
tree1e3b21c10a70e39200a991ed286408042d4b5edf /src
parent938c5b0148688f426235e81d6573f25e5021ceb7 (diff)
panfrost: Reset the damage area on imported resources
Reset the damage area in the resource_from_handle() path (as done in panfrost_resource_create()). Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/panfrost/pan_resource.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index 1f5b23145cf..57df61cb71c 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -47,6 +47,17 @@
#include "pan_util.h"
#include "pan_tiling.h"
+static void
+panfrost_resource_reset_damage(struct panfrost_resource *pres)
+{
+ /* We set the damage extent to the full resource size but keep the
+ * damage box empty so that the FB content is reloaded by default.
+ */
+ memset(&pres->damage, 0, sizeof(pres->damage));
+ pres->damage.extent.maxx = pres->base.width0;
+ pres->damage.extent.maxy = pres->base.height0;
+}
+
static struct pipe_resource *
panfrost_resource_from_handle(struct pipe_screen *pscreen,
const struct pipe_resource *templat,
@@ -73,6 +84,7 @@ panfrost_resource_from_handle(struct pipe_screen *pscreen,
rsc->bo = panfrost_drm_import_bo(screen, whandle->handle);
rsc->slices[0].stride = whandle->stride;
rsc->slices[0].initialized = true;
+ panfrost_resource_reset_damage(rsc);
if (screen->ro) {
rsc->scanout =
@@ -403,17 +415,6 @@ panfrost_resource_create_bo(struct panfrost_screen *screen, struct panfrost_reso
pres->bo = panfrost_drm_create_bo(screen, bo_size, PAN_ALLOCATE_DELAY_MMAP);
}
-static void
-panfrost_resource_reset_damage(struct panfrost_resource *pres)
-{
- /* We set the damage extent to the full resource size but keep the
- * damage box empty so that the FB content is reloaded by default.
- */
- memset(&pres->damage, 0, sizeof(pres->damage));
- pres->damage.extent.maxx = pres->base.width0;
- pres->damage.extent.maxy = pres->base.height0;
-}
-
void
panfrost_resource_set_damage_region(struct pipe_screen *screen,
struct pipe_resource *res,