hk: hide vertexPipelineStoresAndAtomics

This feature causes piles of vertex shader timeouts in the CTS which makes CTS
testing extremely unreliable on my min-spec M1. Since we only really have it as
a tickbox for Proton, hide it except for Proton - at least for now.

This eliminates our known flakes.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39111>
This commit is contained in:
Alyssa Rosenzweig 2025-12-30 12:28:48 -05:00
parent 56b90a70b3
commit 086dd1daa3
6 changed files with 17 additions and 27 deletions

View file

@ -1,25 +0,0 @@
dEQP-VK.spirv_assembly.type.vec4.i64.div_geom
dEQP-VK.spirv_assembly.type.vec4.u64.div_geom
dEQP-VK.spirv_assembly.type.vec4.i8.clamp_geom
dEQP-VK.spirv_assembly.type.vec4.u64.mod_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordgreaterthan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordgreaterthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordlessthan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordlessthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfunordgreaterthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfunordlessthan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfunordnotequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opisnan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfordgreaterthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfordlessthan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfordlessthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfordnotequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfunordgreaterthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfunordlessthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opisinf_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfordequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfunordlessthanequal_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opfunordgreaterthan_vector_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.logical_nan.opisnan_vector_geom

View file

@ -97,6 +97,7 @@ static const driOptionDescription hk_dri_options[] = {
DRI_CONF_HK_DISABLE_BORDER_EMULATION(false)
DRI_CONF_HK_FAKE_MINMAX(false)
DRI_CONF_HK_IMAGE_VIEW_MIN_LOD(false)
DRI_CONF_HK_ENABLE_VERTEX_PIPELINE_STORES_ATOMICS(false)
DRI_CONF_SECTION_END
};
/* clang-format on */
@ -122,6 +123,9 @@ hk_init_dri_options(struct hk_instance *instance)
instance->image_view_min_lod =
driQueryOptionb(&instance->dri_options, "hk_image_view_min_lod");
instance->vertex_stores = driQueryOptionb(
&instance->dri_options, "hk_enable_vertex_pipeline_stores_atomics");
}
VKAPI_ATTR VkResult VKAPI_CALL

View file

@ -8,7 +8,6 @@
#pragma once
#include "util/xmlconfig.h"
#include "hk_private.h"
#include "vk_instance.h"
struct hk_instance {
@ -23,6 +22,7 @@ struct hk_instance {
bool no_border;
bool fake_minmax;
bool image_view_min_lod;
bool vertex_stores;
};
VK_DEFINE_HANDLE_CASTS(hk_instance, vk.base, VkInstance,

View file

@ -253,7 +253,7 @@ hk_get_device_features(
.textureCompressionASTC_LDR = true,
.occlusionQueryPrecise = true,
.pipelineStatisticsQuery = true,
.vertexPipelineStoresAndAtomics = true,
.vertexPipelineStoresAndAtomics = instance->vertex_stores,
.fragmentStoresAndAtomics = true,
.shaderTessellationAndGeometryPointSize = true,
.shaderImageGatherExtended = true,

View file

@ -1434,6 +1434,13 @@ TODO: document the other workarounds.
I'm tired.
-->
<option name="hk_disable_border_emulation" value="true" />
<!--
Needed for FL11_1. While nominally conformant, CTS hits piles
of timeouts (== flakes & fails & other fun times), especially on
min-spec M1. Therefore the feature is hidden. I don't expect native
apps to use this.
-->
<option name="hk_enable_vertex_pipeline_stores_atomics" value="true" />
</engine>
<engine engine_name_match="vkd3d">

View file

@ -673,6 +673,10 @@
DRI_CONF_OPT_B(hk_image_view_min_lod, def, \
"Emulate VK_EXT_image_view_min_lod (conformant but slower)")
#define DRI_CONF_HK_ENABLE_VERTEX_PIPELINE_STORES_ATOMICS(def) \
DRI_CONF_OPT_B(hk_enable_vertex_pipeline_stores_atomics, def, \
"Enable vertexPipelineStoresAndAtomics")
/**
* \brief venus specific configuration options
*/