[PATCH libdrm] radeon_cs_setup_bo: Fix accounting if caller specified write and read domains.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Michel Dänzer <michel.daenzer@xxxxxxx>

Only account for the write domain in that case.

Should fix https://bugs.freedesktop.org/show_bug.cgi?id=43893 .

Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx>
---
 radeon/radeon_cs_space.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/radeon/radeon_cs_space.c b/radeon/radeon_cs_space.c
index 208e1bb..be047a7 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;
 
-- 
1.7.9

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux