mesa/src/intel
Kenneth Graunke b6878d456f st/mesa, iris: Add optional CPU-based ASTC void extent denorm flushing
Intel Gen9 GPUs have hardware ASTC support, but have a bug where they
don't handle denormalized values in void extent blocks correctly.  This
isn't that hard to work around - on upload, we can detect such blocks,
and flush any denorms to zero.  Because we're altering the data behind
the application's back, and applications can theoretically ask to
download the original unaltered image data, we unfortunately need to
maintain shadow copies of the data.

To make sure that we don't accidentally skip the void-extent flushing
via any fast-upload paths, and support download correctly, we plug this
into the st/mesa compressed texture format fallback paths, which store
a CPU copy of the original image data, and upload altered data.

This is unfortunately common code for what's likely to be a single
driver's issue (on a single generation), but it beats replicating an
entire framework we already have inside the driver.

Fixes dEQP-GLES3.functional.texture.compressed.astc.void_extent_ldr.*
using iris on Intel Gen9 GPUs.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4167
Reviewed-by: Emma Anholt <emma@anholt.net>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21943>
2023-03-17 21:30:48 +00:00
..
blorp intel/blorp: Set array_len for 3D images properly 2023-03-04 06:12:46 +00:00
ci st/mesa, iris: Add optional CPU-based ASTC void extent denorm flushing 2023-03-17 21:30:48 +00:00
common intel/common: Implement the Xe functions for intel_gem 2023-03-07 15:41:36 +00:00
compiler intel/fs: Fix register coalesce in presence of force_writemask_all copy source writes. 2023-03-17 03:05:24 -07:00
dev intel/dev: Enable MTL PCI ids 2023-03-13 10:17:51 +00:00
ds iris: trace frames with u_trace 2023-03-10 00:36:41 +00:00
genxml anv/video: fix chroma qp to be a integer value. 2023-03-14 07:32:00 +00:00
isl meson: inline gtest_test_protocol now that it's always 'gtest' 2023-03-10 07:20:29 +00:00
nullhw-layer vulkan/layers: Use PUBLIC instead of VK_LAYER_EXPORT 2023-02-17 03:42:34 +00:00
perf intel/perf: Hide extended metrics by default 2023-03-11 05:05:06 +00:00
tools intel/dev: create a helper dependency for libintel_dev 2023-03-02 00:01:27 +00:00
vulkan intel/vk/grl: Do not use no_override_init_args for C++ 2023-03-17 16:08:33 +00:00
vulkan_hasvk intel: use generated workaround helpers for Wa_1409600907 2023-03-09 22:56:51 +00:00
meson.build blorp: add dependency on idep_intel_dev 2023-03-03 13:04:23 +00:00