diff options
author | Chia-I Wu <olvaffe@gmail.com> | 2011-07-18 17:47:28 +0800 |
---|---|---|
committer | Chia-I Wu <olvaffe@gmail.com> | 2011-07-18 18:25:50 +0800 |
commit | fdf2a36636f7b405679e4cf9c7743a089bdf8ef8 (patch) | |
tree | 29ef341a4970e9402bf68f2b141f3f7ae93f83ae /gralloc_drm_radeon.c | |
parent | aba06d53c53afaa0fa28829af2ff679b0c123e91 (diff) | |
download | external_drm_gralloc-fdf2a36636f7b405679e4cf9c7743a089bdf8ef8.zip external_drm_gralloc-fdf2a36636f7b405679e4cf9c7743a089bdf8ef8.tar.gz external_drm_gralloc-fdf2a36636f7b405679e4cf9c7743a089bdf8ef8.tar.bz2 |
radeon: zero the newly allocated bo
Diffstat (limited to 'gralloc_drm_radeon.c')
-rw-r--r-- | gralloc_drm_radeon.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gralloc_drm_radeon.c b/gralloc_drm_radeon.c index ecb0f6e..ef5280d 100644 --- a/gralloc_drm_radeon.c +++ b/gralloc_drm_radeon.c @@ -245,6 +245,16 @@ static struct radeon_bo *radeon_alloc(struct radeon_info *info, return rbo; } +static void radeon_zero(struct radeon_info *info, + struct radeon_bo *rbo) +{ + /* should use HW clear... */ + if (!radeon_bo_map(rbo, 1)) { + memset(rbo->ptr, 0, rbo->size); + radeon_bo_unmap(rbo); + } +} + static struct gralloc_drm_bo_t * drm_gem_radeon_alloc(struct gralloc_drm_drv_t *drv, struct gralloc_drm_handle_t *handle) { @@ -271,6 +281,9 @@ drm_gem_radeon_alloc(struct gralloc_drm_drv_t *drv, struct gralloc_drm_handle_t free(rbuf); return NULL; } + + /* Android expects the buffer to be zeroed */ + radeon_zero(info, rbuf->rbo); } if (handle->usage & GRALLOC_USAGE_HW_FB) |