projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a5329d4
)
r600g: only add blocks once to the dirty/enabled lists.
author
Dave Airlie
<airlied@redhat.com>
Wed, 8 Jun 2011 04:02:00 +0000
(14:02 +1000)
committer
Dave Airlie
<airlied@redhat.com>
Wed, 8 Jun 2011 04:04:26 +0000
(14:04 +1000)
This caused a loop in some tests.
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/winsys/r600/drm/r600_hw_context.c
patch
|
blob
|
history
diff --git
a/src/gallium/winsys/r600/drm/r600_hw_context.c
b/src/gallium/winsys/r600/drm/r600_hw_context.c
index 50a6dec38ba21a5c89d7f53a53f37f36c4a88eab..42492997df91a51957fd327546ea61c7dc70da7f 100644
(file)
--- a/
src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/
src/gallium/winsys/r600/drm/r600_hw_context.c
@@
-110,9
+110,11
@@
static void r600_init_block(struct r600_context *ctx,
block->flags |= REG_FLAG_DIRTY_ALWAYS;
}
if (reg[i+j].flags & REG_FLAG_ENABLE_ALWAYS) {
- block->status |= R600_BLOCK_STATUS_ENABLED;
- LIST_ADDTAIL(&block->enable_list, &ctx->enable_list);
- LIST_ADDTAIL(&block->list,&ctx->dirty);
+ if (!(block->status & R600_BLOCK_STATUS_ENABLED)) {
+ block->status |= R600_BLOCK_STATUS_ENABLED;
+ LIST_ADDTAIL(&block->enable_list, &ctx->enable_list);
+ LIST_ADDTAIL(&block->list,&ctx->dirty);
+ }
}
if (reg[i+j].flags & REG_FLAG_NEED_BO) {