Revert "anv: Add driconf option to disable compression for 16bpp format"
This reverts commit bcfec61d1e.
The previous patch fixed the underlying issue that the above commit was
actually working around. It turns out that the previously observed
performance regression was due to invalid aux-map entries for
multi-layer HiZ+CCS buffers.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7046>
This commit is contained in:
@@ -54,7 +54,6 @@ static const driOptionDescription anv_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0)
|
||||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_DISABLE_D16UNORM_COMPRESSION(false)
|
||||
DRI_CONF_SECTION_END
|
||||
|
||||
DRI_CONF_SECTION_DEBUG
|
||||
@@ -766,8 +765,6 @@ VkResult anv_CreateInstance(
|
||||
VG(VALGRIND_CREATE_MEMPOOL(instance, 0, false));
|
||||
|
||||
anv_init_dri_options(instance);
|
||||
instance->disable_d16unorm_compression =
|
||||
driQueryOptionb(&instance->dri_options, "disable_d16unorm_compression");
|
||||
|
||||
*pInstance = anv_instance_to_handle(instance);
|
||||
|
||||
|
||||
@@ -420,20 +420,7 @@ add_aux_surface_if_supported(struct anv_device *device,
|
||||
* TODO: This is a heuristic trade-off; we haven't tuned it at all.
|
||||
*/
|
||||
assert(device->info.gen >= 12);
|
||||
/* The experiment showed that running the benchmark with HIZ performs
|
||||
* better than HIZ_CCS and HIZ_CCS_WT. Because the benchmark uses the
|
||||
* depth pass with D16_UNORM surfaces format which fills the L3 cache
|
||||
* and next pass doesn't make use of it where we end up clearing cache
|
||||
* which results in performance regression.
|
||||
*
|
||||
* In order to avoid perf regression, disable HIZ_CCS_WT compression
|
||||
* for D16_UNORM surface format on Fallout4 via driconf option.
|
||||
*/
|
||||
if (plane_format.isl_format == ISL_FORMAT_R16_UNORM &&
|
||||
device->physical->instance->disable_d16unorm_compression)
|
||||
image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ;
|
||||
else
|
||||
image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ_CCS_WT;
|
||||
image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ_CCS_WT;
|
||||
} else {
|
||||
assert(device->info.gen >= 12);
|
||||
image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ_CCS;
|
||||
|
||||
@@ -1171,7 +1171,6 @@ struct anv_instance {
|
||||
|
||||
struct driOptionCache dri_options;
|
||||
struct driOptionCache available_dri_options;
|
||||
bool disable_d16unorm_compression;
|
||||
};
|
||||
|
||||
VkResult anv_init_wsi(struct anv_physical_device *physical_device);
|
||||
|
||||
@@ -733,11 +733,6 @@ TODO: document the other workarounds.
|
||||
<option name="vs_position_always_invariant" value="true" />
|
||||
</application>
|
||||
</device>
|
||||
<device driver="anv">
|
||||
<application name="Fallout 4" executable="Fallout4.exe">
|
||||
<option name="disable_d16unorm_compression" value="true" />
|
||||
</application>
|
||||
</device>
|
||||
<device driver="radv">
|
||||
<application name="Shadow Of The Tomb Raider" executable="ShadowOfTheTombRaider">
|
||||
<option name="radv_report_llvm9_version_string" value="true" />
|
||||
|
||||
@@ -451,12 +451,4 @@
|
||||
DRI_CONF_OPT_I(radv_override_uniform_offset_alignment, def, 0, 128, \
|
||||
"Override the minUniformBufferOffsetAlignment exposed to the application. (0 = default)")
|
||||
|
||||
/**
|
||||
* \brief ANV specific configuration options
|
||||
*/
|
||||
|
||||
#define DRI_CONF_DISABLE_D16UNORM_COMPRESSION(def) \
|
||||
DRI_CONF_OPT_B(disable_d16unorm_compression, def, \
|
||||
"Disable HIZ_CCS_WT compression for D16_UNORM surface format")
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user