[Mesa-dev] [v2] Compression support for single-sampled

Topi Pohjolainen topi.pohjolainen at intel.com
Thu Feb 11 18:33:53 UTC 2016


This series enables compression for single sampled color surfaces,
also referred to as "lossless compression". This is yet only for
driver internal use easing pressure on memory bandwidth and caches
when writing, blending and sampling surfaces uing gpu.

As a side effect the need for color buffer resolves after fast
clears is also decreased. Current understanding is that sampling
engine doesn't understand meta data (auxiliary buffer) for single
sampled fast cleared surfaces. However, if the meta data is written
with lossless compression enabled, even sampling engine is capable
of reading both the color buffer and the auxiliary, and resolves
can be omitted in those case.

The final enabling patch is dependent on earlier two-patch series
fixing state restore mechanism in i965-meta operations.

v2 (Ben):  Use combination of msaa_layout and number of samples
           instead of introducing explicit type for lossless
           compression.

Topi Pohjolainen (19):
  i965: Isolate aligned dimensions for stencil only
  i965: Separate miptree creation from auxiliary buffer setup
  i965: Don't try to create aux buffer for non-msrt aux-buffer
  i965: Stop considering if msrt aux buffers need aux buffer
  i965: Add helper for detecting lossless compression
  i965: Allow fast clear to be used with lossless compression
  i965: Add resolve option for lossless compression
  i965: Refactor resolving of auxiliary mode
  i965: Resolve color buffer also in lossless compression case
  i965: Add means for limiting color resolves
  i965: Add a flag telling color resolve pass to ignore CCS_E
  i965: Add a few assertions on lossless compression
  i965: Set buffer cleared after actually clearing it
  i965/gen9: Prepare surface state setup for lossless compression
  i965/gen9: Refactor msrt mcs initialization
  i965: Expose logic telling if non-msrt mcs is supported
  i965/gen9: Setup MCS for compressed texture surfaces
  i965: Add helper for lossless compression support
  i965/gen9: Enable lossless compression

 src/mesa/drivers/dri/i965/brw_blorp_blit.cpp    |   7 +-
 src/mesa/drivers/dri/i965/brw_context.c         |  22 +-
 src/mesa/drivers/dri/i965/brw_defines.h         |   2 +
 src/mesa/drivers/dri/i965/brw_meta_fast_clear.c |  11 +-
 src/mesa/drivers/dri/i965/gen8_surface_state.c  |  84 ++++----
 src/mesa/drivers/dri/i965/intel_blit.c          |   4 +-
 src/mesa/drivers/dri/i965/intel_copy_image.c    |   4 +-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c   | 262 +++++++++++++++++-------
 src/mesa/drivers/dri/i965/intel_mipmap_tree.h   |  27 ++-
 src/mesa/drivers/dri/i965/intel_pixel_bitmap.c  |   2 +-
 src/mesa/drivers/dri/i965/intel_pixel_read.c    |   2 +-
 src/mesa/drivers/dri/i965/intel_tex_image.c     |   2 +-
 src/mesa/drivers/dri/i965/intel_tex_subimage.c  |   2 +-
 13 files changed, 302 insertions(+), 129 deletions(-)

-- 
2.5.0



More information about the mesa-dev mailing list