diff options
author | Dave Airlie <airlied@redhat.com> | 2014-03-12 14:55:37 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-03-12 14:55:37 +1000 |
commit | a99e3ac1512211746f8246cce133cc603dbd01d2 (patch) | |
tree | 3f42390f49334acbfe413bc4af0ab934a38232ad | |
parent | 5a5fce49b1dcd1361495e5bbefc48f772d1a6806 (diff) |
renderer: send a scanout resource destroy when a scanout resource is removed
-rw-r--r-- | src/gallium/renderer/graw_renderer.c | 4 | ||||
-rw-r--r-- | src/gallium/renderer/graw_renderer.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/renderer/graw_renderer.c b/src/gallium/renderer/graw_renderer.c index b67fbdce0a7..50f92e8d9fd 100644 --- a/src/gallium/renderer/graw_renderer.c +++ b/src/gallium/renderer/graw_renderer.c @@ -2841,6 +2841,9 @@ void graw_renderer_resource_create(struct graw_renderer_resource_create_args *ar void graw_renderer_resource_destroy(struct grend_resource *res) { + if (res->scannedout) + (*clicbs->scanout_resource_info)(0, res->id, 0, 0, 0, 0, 0); + if (res->readback_fb_id) glDeleteFramebuffers(1, &res->readback_fb_id); @@ -3775,6 +3778,7 @@ int graw_renderer_set_scanout(uint32_t res_handle, uint32_t scanout_id, uint32_t uint32_t stride; stride = util_format_get_nblocksx(res->base.format, u_minify(res->base.width0, 0)) * elsize; (*clicbs->scanout_resource_info)(scanout_id, res->id, res->y_0_top ? 1 : 0, stride, res->base.width0, res->base.height0, res->base.format); + res->scannedout = 1; } (*clicbs->scanout_rect_info)(scanout_id, res->id, box->x, box->y, box->width, box->height); fprintf(stderr,"setting frontbuffer %d to %d\n", scanout_id, res_handle); diff --git a/src/gallium/renderer/graw_renderer.h b/src/gallium/renderer/graw_renderer.h index 66c592b7d0d..14f33675ef5 100644 --- a/src/gallium/renderer/graw_renderer.h +++ b/src/gallium/renderer/graw_renderer.h @@ -29,6 +29,8 @@ struct grend_resource { struct virgl_iovec *iov; uint32_t num_iovs; boolean y_0_top; + + boolean scannedout; }; /* assume every format is sampler friendly */ |