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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev