Mesa (master): radeon: don't re-add BOs to validate list

Dave Airlie airlied at kemper.freedesktop.org
Thu Jun 18 03:16:04 UTC 2009


Module: Mesa
Branch: master
Commit: b165fa7d45e230f9e61fcf3a09babf0c61c67319
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b165fa7d45e230f9e61fcf3a09babf0c61c67319

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Jun 18 13:12:21 2009 +1000

radeon: don't re-add BOs to validate list

if its on the list its on the list don't go readding it.

multitexturing from the same texture could cause this.

---

 src/mesa/drivers/dri/radeon/radeon_common.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c
index 32fe4d5..7bd4a6f 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common.c
@@ -999,6 +999,13 @@ void radeon_validate_reset_bos(radeonContextPtr radeon)
 
 void radeon_validate_bo(radeonContextPtr radeon, struct radeon_bo *bo, uint32_t read_domains, uint32_t write_domain)
 {
+	int i;
+	for (i = 0; i < radeon->state.validated_bo_count; i++) {
+		if (radeon->state.bos[i].bo == bo &&
+		    radeon->state.bos[i].read_domains == read_domains &&
+		    radeon->state.bos[i].write_domain == write_domain)
+			return;
+	}
 	radeon_bo_ref(bo);
 	radeon->state.bos[radeon->state.validated_bo_count].bo = bo;
 	radeon->state.bos[radeon->state.validated_bo_count].read_domains = read_domains;




More information about the mesa-commit mailing list