diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2017-08-29 16:46:33 +0900 |
---|---|---|
committer | Michel Dänzer <michel.daenzer@amd.com> | 2017-08-29 16:46:33 +0900 |
commit | 1afd4a526c97e77ec882988e35d4977880b9d16c (patch) | |
tree | 5493dd3114bfe655cfba565a8d8a56db4c497ff5 /src/amdgpu_bo_helper.c | |
parent | 0de05767adb79d417284dae83e9a77857633fd80 (diff) |
Create amdgpu_pixmap_clear helper
Preparatory, no functional change intended yet.
(Ported from radeon commit 3f6210ca2c8ef60d59efc8139151d3b9838bb875)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/amdgpu_bo_helper.c')
-rw-r--r-- | src/amdgpu_bo_helper.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/amdgpu_bo_helper.c b/src/amdgpu_bo_helper.c index 7acd005..ee52e0c 100644 --- a/src/amdgpu_bo_helper.c +++ b/src/amdgpu_bo_helper.c @@ -120,6 +120,26 @@ struct amdgpu_buffer *amdgpu_alloc_pixmap_bo(ScrnInfoPtr pScrn, int width, return pixmap_buffer; } +/* Clear the pixmap contents to black */ +void +amdgpu_pixmap_clear(PixmapPtr pixmap) +{ + ScreenPtr screen = pixmap->drawable.pScreen; + AMDGPUInfoPtr info = AMDGPUPTR(xf86ScreenToScrn(screen)); + GCPtr gc = GetScratchGC(pixmap->drawable.depth, screen); + xRectangle rect; + + ValidateGC(&pixmap->drawable, gc); + rect.x = 0; + rect.y = 0; + rect.width = pixmap->drawable.width; + rect.height = pixmap->drawable.height; + info->force_accel = TRUE; + gc->ops->PolyFillRect(&pixmap->drawable, gc, 1, &rect); + info->force_accel = FALSE; + FreeScratchGC(gc); +} + Bool amdgpu_bo_get_handle(struct amdgpu_buffer *bo, uint32_t *handle) { if (bo->flags & AMDGPU_BO_FLAGS_GBM) { |