浏览代码

llvmpipe: Allocate texture storage for whole quads.

tags/mesa_7_7_rc1
José Fonseca 16 年前
父节点
当前提交
838da1d4ae
共有 1 个文件被更改,包括 11 次插入3 次删除
  1. 11
    3
      src/gallium/drivers/llvmpipe/lp_texture.c

+ 11
- 3
src/gallium/drivers/llvmpipe/lp_texture.c 查看文件

pf_get_block(lpt->base.format, &lpt->base.block); pf_get_block(lpt->base.format, &lpt->base.block);


for (level = 0; level <= pt->last_level; level++) { for (level = 0; level <= pt->last_level; level++) {
unsigned nblocksx, nblocksy;

pt->width[level] = width; pt->width[level] = width;
pt->height[level] = height; pt->height[level] = height;
pt->depth[level] = depth; pt->depth[level] = depth;
pt->nblocksx[level] = pf_get_nblocksx(&pt->block, width); pt->nblocksx[level] = pf_get_nblocksx(&pt->block, width);
pt->nblocksy[level] = pf_get_nblocksy(&pt->block, height);
lpt->stride[level] = align(pt->nblocksx[level]*pt->block.size, 16);
pt->nblocksy[level] = pf_get_nblocksy(&pt->block, height);

/* Allocate storage for whole quads. This is particularly important
* for depth surfaces, which are currently stored in a swizzled format. */
nblocksx = pf_get_nblocksx(&pt->block, align(width, 2));
nblocksy = pf_get_nblocksy(&pt->block, align(height, 2));

lpt->stride[level] = align(nblocksx*pt->block.size, 16);


lpt->level_offset[level] = buffer_size; lpt->level_offset[level] = buffer_size;


buffer_size += (pt->nblocksy[level] *
buffer_size += (nblocksy *
((pt->target == PIPE_TEXTURE_CUBE) ? 6 : depth) * ((pt->target == PIPE_TEXTURE_CUBE) ? 6 : depth) *
lpt->stride[level]); lpt->stride[level]);



正在加载...
取消
保存