[Mesa-dev] i965/gen6+: Yet another blorp path - tex_(sub)image2d

Topi Pohjolainen topi.pohjolainen at gmail.com
Tue Dec 20 14:45:28 UTC 2016

This series introduces new use of brw_blorp_blit_miptrees()/
brw_blorp_copy_miptrees(). Initial intention was to enable compression
on SKL already at the time of upload. That, however, didn't help
benchmarks but quite contrary regressed performance in some of
them (Synmark OglDrvRer for one).
Therefore blorp based upload only replaces the current gpu based
upload path - _mesa_meta_pbo_TexSubImage(). This is limited to cases
where the source is already gpu accessible (buffer object) or where the
target is busy (currently being written bu gpu).

Implementation comes with user space pixel source option which can
be used to handle all cases y-tiled memcpy as well. It is also capable
of handling some of the cases y-tiled leaves to the slow
_mesa_store_texsubimage(). This isn't, however, enabled due to
performance regressions. Uploading with gpu means the incoming pixel
data needs to be gpu accessible which requires first a copy to a
buffer object. This copy hurts if it isn't followed by sufficient
amount of sampling.

Finally there is more RFC type of patch simply dropping the meta
patch for gen < 6. I don't know which real world cases get hurt
without the meta path but at least there aren't any jenkins

Topi Pohjolainen (9):
  i965: Refactor surface resolves prior to draw call
  i965: Consider surface resolves just before draw
  intel/blorp/dbg: Name blit shaders for easy recognition in dumps
  i965: Estimate batch space per shader stage
  meta: Refactor texture format translation
  i965: Add support for tex upload using gpu
  i965/gen6+: Use blorp for tex_image_2d
  i965/gen6+: Use for tex_subimage_2d
  i965: Drop _mesa_meta_pbo_TexSubImage() even for gen < 6

 src/intel/blorp/blorp_blit.c                   |   2 +
 src/mesa/drivers/common/meta_tex_subimage.c    |   9 +-
 src/mesa/drivers/dri/i965/brw_compute.c        |   1 +
 src/mesa/drivers/dri/i965/brw_context.c        | 176 -------------------
 src/mesa/drivers/dri/i965/brw_draw.c           | 232 ++++++++++++++++++++++++-
 src/mesa/drivers/dri/i965/brw_draw.h           |   2 +
 src/mesa/drivers/dri/i965/intel_tex.h          |   8 +
 src/mesa/drivers/dri/i965/intel_tex_image.c    |  29 ++--
 src/mesa/drivers/dri/i965/intel_tex_subimage.c | 218 +++++++++++++++++++++--
 src/mesa/main/glformats.c                      |  15 ++
 src/mesa/main/glformats.h                      |   4 +
 11 files changed, 484 insertions(+), 212 deletions(-)


More information about the mesa-dev mailing list