mesa/src/intel/vulkan_hasvk
Francisco Jerez 5ed23c14da intel/isl: Define ISL_AUX_STATE_COMPRESSED_HIER_DEPTH aux state.
This state is helpful to track when resolves are needed for HiZ-CCS
non-WT surfaces, since the ISL_AUX_STATE_COMPRESSED_* states that
currently exist don't distinguish between the CCS and the HiZ surfaces
being in a non-passthrough compression state, so we would have had to
pre-emptively issue a resolve before sampling from any
ISL_AUX_STATE_COMPRESSED_* HiZ-CCS surface just in case its HiZ
surface has non-trivial contents, even if its HiZ surface is in
pass-through state and the surface only has non-trivial CCS
compression.

This commit introduces a new ISL_AUX_STATE_COMPRESSED_HIER_DEPTH state
that indicates that the hierarchical depth surface has non-trivial
contents that have to be considered to get a complete representation
of the image.  While in this state the surface may also have
fast-cleared blocks.  The pre-existing ISL_AUX_STATE_COMPRESSED_*
states now unambiguously indicate that the HiZ surface is in an
identity state, so it's unnecessary to obtain a complete
representation of the image e.g. while sampling from a HiZ-CCS depth
surface.

v2: Use more abstract aux state name instead of
    ISL_AUX_STATE_COMPRESSED_HIZ, don't transition legacy HIZ surfaces
    to new aux state on write by using COMPRESS write behavior instead
    of COMPRESS_HIZ (Nanley).
v3: Comment clarifications (Nanley).
v4: Re-apply change to transition legacy HIZ surfaces to new aux state
    on write by using COMPRESS_HIZ for consistent semantics of the aux
    state irrespective of the aux usage, this is particularly
    important because the HIZ aux usage coexists with HIZ_CCS in some
    platforms, so pretending write_behavior is just "COMPRESS" for HIZ
    as on v2 would cause the ISL_AUX_STATE_COMPRESSED_CLEAR state to
    have different meaning and require different handling depending on
    the aux usage that was used with the surface before.
v5: Additional comment clarifications, express aux_state_possible()
    result and isl_aux_prepare_access() check in terms of
    aux_usage_info::write_behavior (Nanley).  Move changes in behavior
    for ISL_AUX_STATE_CLEAR from future ISL partial resolve commit
    into this commit since the change is already required for
    correctness as part of the split of hierarchical depth states.

Acked-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31139>
2026-01-27 08:52:12 +00:00
..
layers
tests hasvk/tests: Propagate failures to gtest 2023-08-25 12:08:29 -07:00
anv_allocator.c treewide: use UTIL_DYNARRAY_INIT 2025-11-04 13:39:48 +00:00
anv_android.c hasvk: Remove special CROS_GRALLOC path from format logic 2025-08-22 23:40:32 +00:00
anv_android.h hasvk: refactor to use DETECT_OS_ANDROID instead of ANDROID 2024-02-01 19:29:49 +00:00
anv_android_stubs.c
anv_batch_chain.c hasvk: Switch to util/cache_ops.h 2025-10-16 01:19:44 +00:00
anv_blorp.c anv, hasvk: allow using a 3D image as a resolve target 2025-08-21 20:53:42 +00:00
anv_cmd_buffer.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
anv_descriptor_set.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
anv_device.c hasvk: promote VK_EXT_robustness2 to VK_KHR_robustness2 2026-01-16 22:39:10 +00:00
anv_formats.c docs: update/fix vk spec urls 2025-10-22 09:23:34 +02:00
anv_gem.c intel: Move intel_define.h to i915/intel_define.h 2024-02-21 18:10:54 +00:00
anv_gem_stubs.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
anv_genX.h intel: move deref_block_size to intel_urb_config 2025-08-01 11:35:05 +00:00
anv_image.c intel/isl: Define ISL_AUX_STATE_COMPRESSED_HIER_DEPTH aux state. 2026-01-27 08:52:12 +00:00
anv_measure.c hasvk: move cmd_emit_timestamp initialization to genX 2024-07-03 21:10:13 +00:00
anv_measure.h
anv_nir.h anv: Remove NIR_PASS_V usage 2025-07-14 19:25:52 +00:00
anv_nir_apply_pipeline_layout.c nir: remove manual nir_load_global_constant 2025-10-21 12:39:53 +02:00
anv_nir_compute_push_layout.c hasvk: create a new intrinsic for push constant to uniform load lowering 2026-01-16 13:02:15 +00:00
anv_nir_lower_multiview.c treewide: add & use parent instr helpers 2025-11-12 21:22:13 +00:00
anv_nir_lower_ubo_loads.c treewide: use nir_load_global_constant alias of nir_build_load_global_constant 2025-10-21 12:39:53 +02:00
anv_nir_lower_ycbcr_textures.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
anv_perf.c anv/hasvk: Add intel_perf_get_configuration_id() and replace intel_perf_load_configuration() usage 2026-01-19 19:24:15 +00:00
anv_pipeline.c ALL: use SHA1_DIGEST_LENGTH etc. instead of hardcoding the numbers 2026-01-07 08:32:33 +00:00
anv_pipeline_cache.c anv: use SHA1_DIGEST_LENGTH 2026-01-07 08:32:33 +00:00
anv_private.h anv/hasvk: Nuke register_config from anv_performance_configuration_intel 2026-01-19 19:24:15 +00:00
anv_queue.c
anv_util.c
anv_utrace.c u_trace: pass tracepoint flags to the read_timestamp callback 2025-02-24 08:08:02 +00:00
anv_wsi.c hasvk: Switch to util/cache_ops.h 2025-10-16 01:19:44 +00:00
genX_blorp_exec.c intel: Use _brw suffix for genX headers that rely on brw 2024-02-24 00:24:32 +00:00
genX_cmd_buffer.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
genX_gpu_memcpy.c intel: move deref_block_size to intel_urb_config 2025-08-01 11:35:05 +00:00
genX_pipeline.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
genX_query.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
genX_state.c hasvk: don't report custom sample locations for sample count 1 2025-10-16 14:48:06 +00:00
gfx7_cmd_buffer.c vulkan: rename depth bias graphics states 2024-12-06 13:48:26 -05:00
gfx8_cmd_buffer.c hasvk: Pre-plumbing needed for VK_KHR_maintenance5 2025-03-31 16:56:13 +00:00
meson.build meson: Remove VK_ICD_FILENAMES totally from source tree. 2025-12-10 14:46:11 +00:00