瀏覽代碼

i965: Consistently do depth resolves before blitting.

We were protected for a long time by the fact that depth was Y tiled and
you couldn't blit Y.  Now that we can blit Y, we were failing to resolve
depth in glCopyPixels().

Note in the comment about swrast, that the swrast map path does resolves
appropriately already.

Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Paul Berry <stereotype441@gmail.com>
undefined
Eric Anholt 12 年之前
父節點
當前提交
9720d436d1
共有 2 個檔案被更改,包括 6 行新增6 行删除
  1. 6
    0
      src/mesa/drivers/dri/intel/intel_blit.c
  2. 0
    6
      src/mesa/drivers/dri/intel/intel_mipmap_tree.c

+ 6
- 0
src/mesa/drivers/dri/intel/intel_blit.c 查看文件

@@ -140,6 +140,12 @@ intel_miptree_blit(struct intel_context *intel,
return false;
}

/* The blitter has no idea about HiZ, so we need to get the real depth
* data into the two miptrees before we do anything.
*/
intel_miptree_slice_resolve_depth(intel, src_mt, src_level, src_slice);
intel_miptree_slice_resolve_depth(intel, dst_mt, dst_level, dst_slice);

if (src_flip)
src_y = src_mt->level[src_level].height - src_y - height;


+ 0
- 6
src/mesa/drivers/dri/intel/intel_mipmap_tree.c 查看文件

@@ -919,12 +919,6 @@ intel_miptree_copy_slice(struct intel_context *intel,
dst_mt, dst_x, dst_y, dst_mt->region->pitch,
width, height);

/* Since we are about to copy depth data using either the blitter or swrast
* (neither of which respect HiZ), we need to do a depth resolve first.
*/
intel_miptree_slice_resolve_depth(intel, src_mt, level, slice);
intel_miptree_slice_resolve_depth(intel, dst_mt, level, slice);

if (!intel_miptree_blit(intel,
src_mt, level, slice, 0, 0, false,
dst_mt, level, slice, 0, 0, false,

Loading…
取消
儲存