浏览代码

r600: adjust after radeon mipmap changes in 7118db8700

R600_OUT_BATCH_RELOC doesn't really use offset so set it
in TEX_RESOURCE2
+ typo fix
tags/mesa-7.7-1
Andre Maasikas 16 年前
父节点
当前提交
49653c01e8
共有 2 个文件被更改,包括 5 次插入6 次删除
  1. 4
    2
      src/mesa/drivers/dri/r600/r600_texstate.c
  2. 1
    4
      src/mesa/drivers/dri/r600/r700_chip.c

+ 4
- 2
src/mesa/drivers/dri/r600/r600_texstate.c 查看文件

SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED, SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED,
FORMAT_COMP_Y_shift, FORMAT_COMP_Y_mask); FORMAT_COMP_Y_shift, FORMAT_COMP_Y_mask);
SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED, SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED,
FORMAT_COMP_X_shift, FORMAT_COMP_Z_mask);
FORMAT_COMP_Z_shift, FORMAT_COMP_Z_mask);
SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED, SETfield(t->SQ_TEX_RESOURCE4, SQ_FORMAT_COMP_UNSIGNED,
FORMAT_COMP_W_shift, FORMAT_COMP_W_mask); FORMAT_COMP_W_shift, FORMAT_COMP_W_mask);


SETfield(t->SQ_TEX_RESOURCE1, firstImage->Height - 1, SETfield(t->SQ_TEX_RESOURCE1, firstImage->Height - 1,
TEX_HEIGHT_shift, TEX_HEIGHT_mask); TEX_HEIGHT_shift, TEX_HEIGHT_mask);


t->SQ_TEX_RESOURCE2 = get_base_teximage_offset(t) / 256;

if ((t->maxLod - t->minLod) > 0) { if ((t->maxLod - t->minLod) > 0) {
t->SQ_TEX_RESOURCE3 = t->mt->levels[t->minLod].size / 256;
t->SQ_TEX_RESOURCE3 = radeon_miptree_image_offset(t->mt, 0, t->minLod + 1) / 256;
SETfield(t->SQ_TEX_RESOURCE4, 0, BASE_LEVEL_shift, BASE_LEVEL_mask); SETfield(t->SQ_TEX_RESOURCE4, 0, BASE_LEVEL_shift, BASE_LEVEL_mask);
SETfield(t->SQ_TEX_RESOURCE5, t->maxLod - t->minLod, LAST_LEVEL_shift, LAST_LEVEL_mask); SETfield(t->SQ_TEX_RESOURCE5, t->maxLod - t->minLod, LAST_LEVEL_shift, LAST_LEVEL_mask);
} }

+ 1
- 4
src/mesa/drivers/dri/r600/r700_chip.c 查看文件

for (i = 0; i < R700_TEXTURE_NUMBERUNITS; i++) { for (i = 0; i < R700_TEXTURE_NUMBERUNITS; i++) {
if (ctx->Texture.Unit[i]._ReallyEnabled) { if (ctx->Texture.Unit[i]._ReallyEnabled) {
radeonTexObj *t = r700->textures[i]; radeonTexObj *t = r700->textures[i];
uint32_t offset;
if (t) { if (t) {
if (!t->image_override) { if (!t->image_override) {
bo = t->mt->bo; bo = t->mt->bo;
offset = get_base_teximage_offset(t);
} else { } else {
bo = t->bo; bo = t->bo;
offset = 0;
} }
if (bo) { if (bo) {


R600_OUT_BATCH(r700->textures[i]->SQ_TEX_RESOURCE6); R600_OUT_BATCH(r700->textures[i]->SQ_TEX_RESOURCE6);
R600_OUT_BATCH_RELOC(r700->textures[i]->SQ_TEX_RESOURCE2, R600_OUT_BATCH_RELOC(r700->textures[i]->SQ_TEX_RESOURCE2,
bo, bo,
offset,
r700->textures[i]->SQ_TEX_RESOURCE2,
RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0); RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
R600_OUT_BATCH_RELOC(r700->textures[i]->SQ_TEX_RESOURCE3, R600_OUT_BATCH_RELOC(r700->textures[i]->SQ_TEX_RESOURCE3,
bo, bo,

正在加载...
取消
保存