anv/hasvk/drirc: change anv_assume_full_subgroups to have subgroup size
Cc: mesa-stable Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26385>
This commit is contained in:
parent
1cf1b9d741
commit
7ff8f79a88
8 changed files with 19 additions and 15 deletions
|
|
@ -77,7 +77,7 @@ static const driOptionDescription anv_dri_options[] = {
|
|||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(false)
|
||||
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(0)
|
||||
DRI_CONF_ANV_DISABLE_FCV(false)
|
||||
DRI_CONF_ANV_SAMPLE_MASK_OUT_OPENGL_BEHAVIOUR(false)
|
||||
DRI_CONF_ANV_FP64_WORKAROUND_ENABLED(false)
|
||||
|
|
@ -2454,7 +2454,7 @@ anv_init_dri_options(struct anv_instance *instance)
|
|||
instance->vk.app_info.engine_version);
|
||||
|
||||
instance->assume_full_subgroups =
|
||||
driQueryOptionb(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
driQueryOptioni(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
instance->limit_trig_input_range =
|
||||
driQueryOptionb(&instance->dri_options, "limit_trig_input_range");
|
||||
instance->sample_mask_out_opengl_behaviour =
|
||||
|
|
|
|||
|
|
@ -771,7 +771,7 @@ anv_pipeline_hash_graphics(struct anv_graphics_base_pipeline *pipeline,
|
|||
}
|
||||
|
||||
if (stages[MESA_SHADER_MESH].info || stages[MESA_SHADER_TASK].info) {
|
||||
const bool afs = device->physical->instance->assume_full_subgroups;
|
||||
const uint8_t afs = device->physical->instance->assume_full_subgroups;
|
||||
_mesa_sha1_update(&ctx, &afs, sizeof(afs));
|
||||
}
|
||||
|
||||
|
|
@ -789,7 +789,7 @@ anv_pipeline_hash_compute(struct anv_compute_pipeline *pipeline,
|
|||
|
||||
anv_pipeline_hash_common(&ctx, &pipeline->base);
|
||||
|
||||
const bool afs = device->physical->instance->assume_full_subgroups;
|
||||
const uint8_t afs = device->physical->instance->assume_full_subgroups;
|
||||
_mesa_sha1_update(&ctx, &afs, sizeof(afs));
|
||||
|
||||
_mesa_sha1_update(&ctx, stage->shader_sha1,
|
||||
|
|
@ -1992,7 +1992,9 @@ anv_fixup_subgroup_size(struct anv_device *device, struct shader_info *info)
|
|||
* a size.
|
||||
*/
|
||||
if (info->subgroup_size == SUBGROUP_SIZE_FULL_SUBGROUPS)
|
||||
info->subgroup_size = BRW_SUBGROUP_SIZE;
|
||||
info->subgroup_size =
|
||||
device->physical->instance->assume_full_subgroups != 0 ?
|
||||
device->physical->instance->assume_full_subgroups : BRW_SUBGROUP_SIZE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -1153,7 +1153,7 @@ struct anv_instance {
|
|||
/**
|
||||
* Workarounds for game bugs.
|
||||
*/
|
||||
bool assume_full_subgroups;
|
||||
uint8_t assume_full_subgroups;
|
||||
bool limit_trig_input_range;
|
||||
bool sample_mask_out_opengl_behaviour;
|
||||
bool fp64_workaround_enabled;
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ static const driOptionDescription anv_dri_options[] = {
|
|||
DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0)
|
||||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(false)
|
||||
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(0)
|
||||
DRI_CONF_ANV_SAMPLE_MASK_OUT_OPENGL_BEHAVIOUR(false)
|
||||
DRI_CONF_NO_16BIT(false)
|
||||
DRI_CONF_ANV_HASVK_OVERRIDE_API_VERSION(false)
|
||||
|
|
@ -1325,7 +1325,7 @@ anv_init_dri_options(struct anv_instance *instance)
|
|||
instance->vk.app_info.engine_version);
|
||||
|
||||
instance->assume_full_subgroups =
|
||||
driQueryOptionb(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
driQueryOptioni(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
instance->limit_trig_input_range =
|
||||
driQueryOptionb(&instance->dri_options, "limit_trig_input_range");
|
||||
instance->sample_mask_out_opengl_behaviour =
|
||||
|
|
|
|||
|
|
@ -472,7 +472,7 @@ anv_pipeline_hash_compute(struct anv_compute_pipeline *pipeline,
|
|||
const bool rba = device->vk.enabled_features.robustBufferAccess;
|
||||
_mesa_sha1_update(&ctx, &rba, sizeof(rba));
|
||||
|
||||
const bool afs = device->physical->instance->assume_full_subgroups;
|
||||
const uint8_t afs = device->physical->instance->assume_full_subgroups;
|
||||
_mesa_sha1_update(&ctx, &afs, sizeof(afs));
|
||||
|
||||
_mesa_sha1_update(&ctx, stage->shader_sha1,
|
||||
|
|
@ -1581,7 +1581,9 @@ anv_pipeline_compile_cs(struct anv_compute_pipeline *pipeline,
|
|||
* a size.
|
||||
*/
|
||||
if (stage.nir->info.subgroup_size == SUBGROUP_SIZE_FULL_SUBGROUPS)
|
||||
stage.nir->info.subgroup_size = BRW_SUBGROUP_SIZE;
|
||||
stage.nir->info.subgroup_size =
|
||||
device->physical->instance->assume_full_subgroups != 0 ?
|
||||
device->physical->instance->assume_full_subgroups : BRW_SUBGROUP_SIZE;
|
||||
|
||||
stage.num_stats = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -944,7 +944,7 @@ struct anv_instance {
|
|||
/**
|
||||
* Workarounds for game bugs.
|
||||
*/
|
||||
bool assume_full_subgroups;
|
||||
uint8_t assume_full_subgroups;
|
||||
bool limit_trig_input_range;
|
||||
bool sample_mask_out_opengl_behaviour;
|
||||
float lower_depth_range_rate;
|
||||
|
|
|
|||
|
|
@ -1126,13 +1126,13 @@ TODO: document the other workarounds.
|
|||
</device>
|
||||
<device driver="anv">
|
||||
<application name="Aperture Desk Job" executable="deskjob">
|
||||
<option name="anv_assume_full_subgroups" value="true" />
|
||||
<option name="anv_assume_full_subgroups" value="32" />
|
||||
</application>
|
||||
<application name="Brawlhalla" executable="BrawlhallaGame.exe">
|
||||
<option name="hasvk_report_vk_1_3_version" value="true" />
|
||||
</application>
|
||||
<application name="DOOMEternal" executable="DOOMEternalx64vk.exe">
|
||||
<option name="anv_assume_full_subgroups" value="true" />
|
||||
<option name="anv_assume_full_subgroups" value="32" />
|
||||
<option name="fp64_workaround_enabled" value="true" />
|
||||
</application>
|
||||
<application name="Wolfenstein: Youngblood(x64vk)" executable="Youngblood_x64vk.exe">
|
||||
|
|
|
|||
|
|
@ -718,8 +718,8 @@
|
|||
*/
|
||||
|
||||
#define DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(def) \
|
||||
DRI_CONF_OPT_B(anv_assume_full_subgroups, def, \
|
||||
"Allow assuming full subgroups requirement even when it's not specified explicitly")
|
||||
DRI_CONF_OPT_I(anv_assume_full_subgroups, def, 0, 32, \
|
||||
"Allow assuming full subgroups requirement even when it's not specified explicitly and set the given size")
|
||||
|
||||
#define DRI_CONF_ANV_SAMPLE_MASK_OUT_OPENGL_BEHAVIOUR(def) \
|
||||
DRI_CONF_OPT_B(anv_sample_mask_out_opengl_behaviour, def, \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue