if its on the list its on the list don't go readding it.
multitexturing from the same texture could cause this.
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;