mesa/src/intel
Lionel Landwerlin add5a2ec92 anv: flush fast clear colors into compressed surfaces
In the following scenario :

   1. Create image format R8G8B8A8_UNORM
   2. Create image view format R8G8B8A8_SRGB
   3. Clear the view through a sub pass to a particular color
   4. Barrier on the image to from color attachment to source transfer
   5. Copy the image into a linear buffer to check the content

The step 4 resolving the clear color is unaware of the SRGB format of
the view, because the blorp resolve operations operate on images the
color associated with the resolve will not operate on SRGB format but
UNORM. Leading to the wrong color being written into surfaces.

This change forces a clear color resolve at the end of the render pass
so following resolves won't have to deal with the clear color with a
format that doesn't match the image's format.

On gfxbench vulkan_5_normal 1280x720, this appear to cost us ~0.5fps,
from 49.316 down to 48.949.

v2: Only fast clear resolve when image & view have different formats
    (Lionel)

v3: Update warning (Jason)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108911
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: mesa-stable@lists.freedesktop.org
2019-01-08 16:37:00 +00:00
..
blorp intel/blorp: Be more conservative about copying clear colors 2019-01-04 17:57:43 -06:00
common intel/icl: Set way_size_per_bank to 4 2018-11-26 15:11:36 -08:00
compiler nir: rename nir_link_constant_varyings() nir_link_opt_varyings() 2019-01-02 12:19:17 +11:00
dev intel: Introducing Whiskey Lake platform 2018-10-11 10:02:40 -07:00
genxml intel/genxml: Add register for object preemption. 2018-12-14 09:40:27 -08:00
isl genxml: Consistently use a numeric "MOCS" field 2018-12-14 00:44:54 -08:00
tools intel/aub_viewer: highlight true booleans 2018-12-28 16:48:46 +00:00
vulkan anv: flush fast clear colors into compressed surfaces 2019-01-08 16:37:00 +00:00
Android.blorp.mk intel: android: remove libdrm_intel requirement 2017-03-30 19:07:23 +01:00
Android.common.mk android: link libmesa_intel_common with zlib and expat 2017-08-02 10:30:50 +03:00
Android.compiler.mk android: fix build issues with brw_nir_trig_workarounds.c 2017-10-04 07:39:05 +03:00
Android.dev.mk android: Use local i915_drm.h rather than the system one. 2018-03-23 10:05:02 -07:00
Android.genxml.mk intel/genxml/icl: Generate packing headers 2018-02-15 16:14:55 -08:00
Android.isl.mk intel/isl/icl: Build and use gen11 surface state emit functions 2018-02-15 16:14:55 -08:00
Android.mk intel: Add missing includes for building on Android 2018-03-06 00:14:22 -08:00
Android.vulkan.mk anv/android: we need git_sha1.h in include paths 2018-10-12 07:29:03 +03:00
Makefile.am configure: allow building with python3 2018-10-31 19:15:50 +00:00
Makefile.blorp.am blorp: automake: add TODO to the tarball 2017-02-24 17:37:00 +00:00
Makefile.common.am automake: intel: correctly append to the LIBADD variable 2017-11-08 14:23:57 +00:00
Makefile.compiler.am i965/vec4/dce: Don't narrow the write mask if the flags are used 2018-12-17 13:47:06 -08:00
Makefile.dev.am intel: Split gen_device_info out into libintel_dev 2018-03-05 09:47:37 -08:00
Makefile.genxml.am intel: genxml: automake: include gen_bits_header.py in the tarball 2017-04-05 13:16:28 +01:00
Makefile.isl.am intel/isl: Add format conversion code 2018-05-09 11:16:33 -07:00
Makefile.sources intel/compiler: Lower SSBO and shared loads/stores in NIR 2018-11-15 19:59:49 -06:00
Makefile.tools.am intel/tools: new i965_disasm tool 2018-08-29 11:19:55 -07:00
Makefile.vulkan.am anv/autotools: make sure tests link with -msse2 2018-12-31 17:28:21 +01:00
meson.build intel: compiler option msse2 and mstackrealign 2018-09-07 13:45:46 +01:00