radeon_cs_setup_bo: Fix accounting if caller specified write and read domains.

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 <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
main
Michel Dänzer 2012-02-08 10:49:08 +01:00 committed by Michel Dänzer
parent 230ec7d7bb
commit 2cfac57d36
1 changed files with 9 additions and 6 deletions

View File

@ -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;