浏览代码

r600g: only add blocks once to the dirty/enabled lists.

This caused a loop in some tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
tags/mesa-7.11-rc1
Dave Airlie 14 年前
父节点
当前提交
f659cc46bc
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5
    3
      src/gallium/winsys/r600/drm/r600_hw_context.c

+ 5
- 3
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) {

正在加载...
取消
保存