summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/r600/drm/r600_priv.h
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2010-10-05 21:01:43 +0200
committerJerome Glisse <jglisse@redhat.com>2010-10-05 15:16:06 -0400
commitac8a1ebe55b08180945ffaebcff6b3bed336c9ec (patch)
tree0bb40da7557177e66100ceadcf8275cc9837a4f9 /src/gallium/winsys/r600/drm/r600_priv.h
parentb2e52cdf83662e5d81de2a476a7d53dc82271eb4 (diff)
r600g: use dirty list to track dirty blocks
Got a speed up by tracking the dirty blocks in a seperate list instead of looping through all blocks. This version should work with block that get their dirty state disabled again and I added a dirty check during the flush as some blocks were already dirty.
Diffstat (limited to 'src/gallium/winsys/r600/drm/r600_priv.h')
-rw-r--r--src/gallium/winsys/r600/drm/r600_priv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/winsys/r600/drm/r600_priv.h b/src/gallium/winsys/r600/drm/r600_priv.h
index f6ceb0adc3..9a38cc51f7 100644
--- a/src/gallium/winsys/r600/drm/r600_priv.h
+++ b/src/gallium/winsys/r600/drm/r600_priv.h
@@ -137,6 +137,7 @@ static void inline r600_context_reg(struct r600_context *ctx,
ctx->pm4_dirty_cdwords += block->pm4_ndwords;
block->status |= R600_BLOCK_STATUS_ENABLED;
block->status |= R600_BLOCK_STATUS_DIRTY;
+ LIST_ADDTAIL(&block->list,&ctx->dirty);
}
}