From 2cfac57d364d0166ed9472b086c16aea376f495a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Wed, 8 Feb 2012 10:49:08 +0100 Subject: [PATCH] radeon_cs_setup_bo: Fix accounting if caller specified write and read domains. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only account for the write domain in that case. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=43893 . Signed-off-by: Michel Dänzer Reviewed-by: Alex Deucher --- radeon/radeon_cs_space.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/radeon/radeon_cs_space.c b/radeon/radeon_cs_space.c index 208e1bbf..be047a7b 100644 --- a/radeon/radeon_cs_space.c +++ b/radeon/radeon_cs_space.c @@ -65,13 +65,16 @@ static inline int radeon_cs_setup_bo(struct radeon_cs_space_check *sc, struct ra } if (bo->space_accounted == 0) { - if (write_domain == RADEON_GEM_DOMAIN_VRAM) - sizes->op_vram_write += bo->size; - else if (write_domain == RADEON_GEM_DOMAIN_GTT) - sizes->op_gart_write += bo->size; - else + if (write_domain) { + if (write_domain == RADEON_GEM_DOMAIN_VRAM) + sizes->op_vram_write += bo->size; + else if (write_domain == RADEON_GEM_DOMAIN_GTT) + sizes->op_gart_write += bo->size; + sc->new_accounted = write_domain; + } else { sizes->op_read += bo->size; - sc->new_accounted = (read_domains << 16) | write_domain; + sc->new_accounted = read_domains << 16; + } } else { uint16_t old_read, old_write;