Add a hack to disable shader subgroup shuffles

These are about 100x as expensive on adreno than nvidia due to the lack of a dedicated instruction, since some games work fine without them add a hack to disable them.
This commit is contained in:
Billy Laws
2023-01-23 21:26:04 +00:00
parent 568306195f
commit bb3baa888d
8 changed files with 18 additions and 2 deletions

View File

@ -4,6 +4,7 @@
#include <range/v3/algorithm.hpp>
#include <boost/functional/hash.hpp>
#include <gpu.h>
#include <common/settings.h>
#include <shader_compiler/common/settings.h>
#include <shader_compiler/common/log.h>
#include <shader_compiler/frontend/maxwell/translate_program.h>
@ -122,6 +123,7 @@ namespace skyline::gpu {
.has_broken_spirv_subgroup_mask_vector_extract_dynamic = traits.quirks.brokenSubgroupMaskExtractDynamic,
.has_broken_spirv_subgroup_shuffle = traits.quirks.brokenSubgroupShuffle,
.max_subgroup_size = traits.subgroupSize,
.disable_subgroup_shuffle = *state.settings->disableSubgroupShuffle
};
Shader::Settings::values = {