mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 13:08:09 +02:00
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>
|
||
|---|---|---|
| .. | ||
| layers | ||
| tests | ||
| anv_allocator.c | ||
| anv_android.c | ||
| anv_android.h | ||
| anv_android_stubs.c | ||
| anv_batch_chain.c | ||
| anv_blorp.c | ||
| anv_cmd_buffer.c | ||
| anv_descriptor_set.c | ||
| anv_device.c | ||
| anv_formats.c | ||
| anv_gem.c | ||
| anv_gem_stubs.c | ||
| anv_genX.h | ||
| anv_image.c | ||
| anv_measure.c | ||
| anv_measure.h | ||
| anv_nir.h | ||
| anv_nir_apply_pipeline_layout.c | ||
| anv_nir_compute_push_layout.c | ||
| anv_nir_lower_multiview.c | ||
| anv_nir_lower_ubo_loads.c | ||
| anv_nir_lower_ycbcr_textures.c | ||
| anv_perf.c | ||
| anv_pipeline.c | ||
| anv_pipeline_cache.c | ||
| anv_private.h | ||
| anv_queue.c | ||
| anv_util.c | ||
| anv_utrace.c | ||
| anv_wsi.c | ||
| genX_blorp_exec.c | ||
| genX_cmd_buffer.c | ||
| genX_gpu_memcpy.c | ||
| genX_pipeline.c | ||
| genX_query.c | ||
| genX_state.c | ||
| gfx7_cmd_buffer.c | ||
| gfx8_cmd_buffer.c | ||
| meson.build | ||