mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-12-27 11:52:31 -06:00
Merge pull request #9782 from arades79/fix-consexpr-value-declaration-usage
Fix consexpr value declaration usage
This commit is contained in:
commit
04d2d2ef5f
26 changed files with 54 additions and 60 deletions
|
@ -132,7 +132,7 @@ void AudioRenderer::CreateSinkStreams() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioRenderer::ThreadFunc() {
|
void AudioRenderer::ThreadFunc() {
|
||||||
constexpr char name[]{"AudioRenderer"};
|
static constexpr char name[]{"AudioRenderer"};
|
||||||
MicroProfileOnThreadCreate(name);
|
MicroProfileOnThreadCreate(name);
|
||||||
Common::SetCurrentThreadName(name);
|
Common::SetCurrentThreadName(name);
|
||||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
|
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
|
||||||
|
|
|
@ -244,16 +244,16 @@ template <size_t NumChannels>
|
||||||
static void ApplyI3dl2ReverbEffect(I3dl2ReverbInfo::State& state,
|
static void ApplyI3dl2ReverbEffect(I3dl2ReverbInfo::State& state,
|
||||||
std::span<std::span<const s32>> inputs,
|
std::span<std::span<const s32>> inputs,
|
||||||
std::span<std::span<s32>> outputs, const u32 sample_count) {
|
std::span<std::span<s32>> outputs, const u32 sample_count) {
|
||||||
constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes1Ch{
|
static constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes1Ch{
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes2Ch{
|
static constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes2Ch{
|
||||||
0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1,
|
0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes4Ch{
|
static constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes4Ch{
|
||||||
0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3,
|
0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes6Ch{
|
static constexpr std::array<u8, I3dl2ReverbInfo::MaxDelayTaps> OutTapIndexes6Ch{
|
||||||
2, 0, 0, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 0, 0, 0, 0, 5, 5, 5,
|
2, 0, 0, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 0, 0, 0, 0, 5, 5, 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -252,16 +252,16 @@ template <size_t NumChannels>
|
||||||
static void ApplyReverbEffect(const ReverbInfo::ParameterVersion2& params, ReverbInfo::State& state,
|
static void ApplyReverbEffect(const ReverbInfo::ParameterVersion2& params, ReverbInfo::State& state,
|
||||||
std::vector<std::span<const s32>>& inputs,
|
std::vector<std::span<const s32>>& inputs,
|
||||||
std::vector<std::span<s32>>& outputs, const u32 sample_count) {
|
std::vector<std::span<s32>>& outputs, const u32 sample_count) {
|
||||||
constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes1Ch{
|
static constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes1Ch{
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes2Ch{
|
static constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes2Ch{
|
||||||
0, 0, 1, 1, 0, 1, 0, 0, 1, 1,
|
0, 0, 1, 1, 0, 1, 0, 0, 1, 1,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes4Ch{
|
static constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes4Ch{
|
||||||
0, 0, 1, 1, 0, 1, 2, 2, 3, 3,
|
0, 0, 1, 1, 0, 1, 2, 2, 3, 3,
|
||||||
};
|
};
|
||||||
constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes6Ch{
|
static constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes6Ch{
|
||||||
0, 0, 1, 1, 2, 2, 4, 4, 5, 5,
|
0, 0, 1, 1, 2, 2, 4, 4, 5, 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -19,24 +19,24 @@ namespace AudioCore::AudioRenderer {
|
||||||
static void SrcProcessFrame(std::span<s32> output, std::span<const s32> input,
|
static void SrcProcessFrame(std::span<s32> output, std::span<const s32> input,
|
||||||
const u32 target_sample_count, const u32 source_sample_count,
|
const u32 target_sample_count, const u32 source_sample_count,
|
||||||
UpsamplerState* state) {
|
UpsamplerState* state) {
|
||||||
constexpr u32 WindowSize = 10;
|
static constexpr u32 WindowSize = 10;
|
||||||
constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc1{
|
static constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc1{
|
||||||
0.95376587f, -0.12872314f, 0.060028076f, -0.032470703f, 0.017669678f,
|
0.95376587f, -0.12872314f, 0.060028076f, -0.032470703f, 0.017669678f,
|
||||||
-0.009124756f, 0.004272461f, -0.001739502f, 0.000579834f, -0.000091552734f,
|
-0.009124756f, 0.004272461f, -0.001739502f, 0.000579834f, -0.000091552734f,
|
||||||
};
|
};
|
||||||
constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc2{
|
static constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc2{
|
||||||
0.8230896f, -0.19161987f, 0.093444824f, -0.05090332f, 0.027557373f,
|
0.8230896f, -0.19161987f, 0.093444824f, -0.05090332f, 0.027557373f,
|
||||||
-0.014038086f, 0.0064697266f, -0.002532959f, 0.00079345703f, -0.00012207031f,
|
-0.014038086f, 0.0064697266f, -0.002532959f, 0.00079345703f, -0.00012207031f,
|
||||||
};
|
};
|
||||||
constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc3{
|
static constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc3{
|
||||||
0.6298828f, -0.19274902f, 0.09725952f, -0.05319214f, 0.028625488f,
|
0.6298828f, -0.19274902f, 0.09725952f, -0.05319214f, 0.028625488f,
|
||||||
-0.014373779f, 0.006500244f, -0.0024719238f, 0.0007324219f, -0.000091552734f,
|
-0.014373779f, 0.006500244f, -0.0024719238f, 0.0007324219f, -0.000091552734f,
|
||||||
};
|
};
|
||||||
constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc4{
|
static constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc4{
|
||||||
0.4057312f, -0.1468811f, 0.07601929f, -0.041656494f, 0.022216797f,
|
0.4057312f, -0.1468811f, 0.07601929f, -0.041656494f, 0.022216797f,
|
||||||
-0.011016846f, 0.004852295f, -0.0017700195f, 0.00048828125f, -0.000030517578f,
|
-0.011016846f, 0.004852295f, -0.0017700195f, 0.00048828125f, -0.000030517578f,
|
||||||
};
|
};
|
||||||
constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc5{
|
static constexpr std::array<Common::FixedPoint<17, 15>, WindowSize> WindowedSinc5{
|
||||||
0.1854248f, -0.075164795f, 0.03967285f, -0.021728516f, 0.011474609f,
|
0.1854248f, -0.075164795f, 0.03967285f, -0.021728516f, 0.011474609f,
|
||||||
-0.005584717f, 0.0024108887f, -0.0008239746f, 0.00021362305f, 0.0f,
|
-0.005584717f, 0.0024108887f, -0.0008239746f, 0.00021362305f, 0.0f,
|
||||||
};
|
};
|
||||||
|
|
|
@ -94,7 +94,7 @@ bool SystemManager::Remove(System& system_) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SystemManager::ThreadFunc() {
|
void SystemManager::ThreadFunc() {
|
||||||
constexpr char name[]{"AudioRenderSystemManager"};
|
static constexpr char name[]{"AudioRenderSystemManager"};
|
||||||
MicroProfileOnThreadCreate(name);
|
MicroProfileOnThreadCreate(name);
|
||||||
Common::SetCurrentThreadName(name);
|
Common::SetCurrentThreadName(name);
|
||||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
|
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
|
||||||
|
|
|
@ -35,7 +35,7 @@ void SinkStream::AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples) {
|
||||||
|
|
||||||
if (system_channels == 6 && device_channels == 2) {
|
if (system_channels == 6 && device_channels == 2) {
|
||||||
// We're given 6 channels, but our device only outputs 2, so downmix.
|
// We're given 6 channels, but our device only outputs 2, so downmix.
|
||||||
constexpr std::array<f32, 4> down_mix_coeff{1.0f, 0.707f, 0.251f, 0.707f};
|
static constexpr std::array<f32, 4> down_mix_coeff{1.0f, 0.707f, 0.251f, 0.707f};
|
||||||
|
|
||||||
for (u32 read_index = 0, write_index = 0; read_index < samples.size();
|
for (u32 read_index = 0, write_index = 0; read_index < samples.size();
|
||||||
read_index += system_channels, write_index += device_channels) {
|
read_index += system_channels, write_index += device_channels) {
|
||||||
|
@ -202,7 +202,7 @@ void SinkStream::ProcessAudioOutAndRender(std::span<s16> output_buffer, std::siz
|
||||||
// If we're paused or going to shut down, we don't want to consume buffers as coretiming is
|
// If we're paused or going to shut down, we don't want to consume buffers as coretiming is
|
||||||
// paused and we'll desync, so just play silence.
|
// paused and we'll desync, so just play silence.
|
||||||
if (system.IsPaused() || system.IsShuttingDown()) {
|
if (system.IsPaused() || system.IsShuttingDown()) {
|
||||||
constexpr std::array<s16, 6> silence{};
|
static constexpr std::array<s16, 6> silence{};
|
||||||
for (size_t i = frames_written; i < num_frames; i++) {
|
for (size_t i = frames_written; i < num_frames; i++) {
|
||||||
std::memcpy(&output_buffer[i * frame_size], &silence[0], frame_size_bytes);
|
std::memcpy(&output_buffer[i * frame_size], &silence[0], frame_size_bytes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ CoreTiming::~CoreTiming() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreTiming::ThreadEntry(CoreTiming& instance) {
|
void CoreTiming::ThreadEntry(CoreTiming& instance) {
|
||||||
constexpr char name[] = "HostTiming";
|
static constexpr char name[] = "HostTiming";
|
||||||
MicroProfileOnThreadCreate(name);
|
MicroProfileOnThreadCreate(name);
|
||||||
Common::SetCurrentThreadName(name);
|
Common::SetCurrentThreadName(name);
|
||||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
|
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
|
||||||
|
|
|
@ -41,9 +41,8 @@ static void PutSIMDRegister(std::array<u32, 64>& simd_regs, size_t offset, const
|
||||||
|
|
||||||
// For sample XML files see the GDB source /gdb/features
|
// For sample XML files see the GDB source /gdb/features
|
||||||
// This XML defines what the registers are for this specific ARM device
|
// This XML defines what the registers are for this specific ARM device
|
||||||
std::string GDBStubA64::GetTargetXML() const {
|
std::string_view GDBStubA64::GetTargetXML() const {
|
||||||
constexpr const char* target_xml =
|
return R"(<?xml version="1.0"?>
|
||||||
R"(<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||||
<target version="1.0">
|
<target version="1.0">
|
||||||
<architecture>aarch64</architecture>
|
<architecture>aarch64</architecture>
|
||||||
|
@ -178,8 +177,6 @@ std::string GDBStubA64::GetTargetXML() const {
|
||||||
<reg name="fpcr" bitsize="32"/>
|
<reg name="fpcr" bitsize="32"/>
|
||||||
</feature>
|
</feature>
|
||||||
</target>)";
|
</target>)";
|
||||||
|
|
||||||
return target_xml;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GDBStubA64::RegRead(const Kernel::KThread* thread, size_t id) const {
|
std::string GDBStubA64::RegRead(const Kernel::KThread* thread, size_t id) const {
|
||||||
|
@ -270,9 +267,8 @@ u32 GDBStubA64::BreakpointInstruction() const {
|
||||||
return 0xd4200000;
|
return 0xd4200000;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GDBStubA32::GetTargetXML() const {
|
std::string_view GDBStubA32::GetTargetXML() const {
|
||||||
constexpr const char* target_xml =
|
return R"(<?xml version="1.0"?>
|
||||||
R"(<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||||
<target version="1.0">
|
<target version="1.0">
|
||||||
<architecture>arm</architecture>
|
<architecture>arm</architecture>
|
||||||
|
@ -378,8 +374,6 @@ std::string GDBStubA32::GetTargetXML() const {
|
||||||
<reg name="fpscr" bitsize="32" type="int" group="float" regnum="80"/>
|
<reg name="fpscr" bitsize="32" type="int" group="float" regnum="80"/>
|
||||||
</feature>
|
</feature>
|
||||||
</target>)";
|
</target>)";
|
||||||
|
|
||||||
return target_xml;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GDBStubA32::RegRead(const Kernel::KThread* thread, size_t id) const {
|
std::string GDBStubA32::RegRead(const Kernel::KThread* thread, size_t id) const {
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace Core {
|
||||||
class GDBStubArch {
|
class GDBStubArch {
|
||||||
public:
|
public:
|
||||||
virtual ~GDBStubArch() = default;
|
virtual ~GDBStubArch() = default;
|
||||||
virtual std::string GetTargetXML() const = 0;
|
virtual std::string_view GetTargetXML() const = 0;
|
||||||
virtual std::string RegRead(const Kernel::KThread* thread, size_t id) const = 0;
|
virtual std::string RegRead(const Kernel::KThread* thread, size_t id) const = 0;
|
||||||
virtual void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const = 0;
|
virtual void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const = 0;
|
||||||
virtual std::string ReadRegisters(const Kernel::KThread* thread) const = 0;
|
virtual std::string ReadRegisters(const Kernel::KThread* thread) const = 0;
|
||||||
|
@ -27,7 +27,7 @@ public:
|
||||||
|
|
||||||
class GDBStubA64 final : public GDBStubArch {
|
class GDBStubA64 final : public GDBStubArch {
|
||||||
public:
|
public:
|
||||||
std::string GetTargetXML() const override;
|
std::string_view GetTargetXML() const override;
|
||||||
std::string RegRead(const Kernel::KThread* thread, size_t id) const override;
|
std::string RegRead(const Kernel::KThread* thread, size_t id) const override;
|
||||||
void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const override;
|
void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const override;
|
||||||
std::string ReadRegisters(const Kernel::KThread* thread) const override;
|
std::string ReadRegisters(const Kernel::KThread* thread) const override;
|
||||||
|
@ -47,7 +47,7 @@ private:
|
||||||
|
|
||||||
class GDBStubA32 final : public GDBStubArch {
|
class GDBStubA32 final : public GDBStubArch {
|
||||||
public:
|
public:
|
||||||
std::string GetTargetXML() const override;
|
std::string_view GetTargetXML() const override;
|
||||||
std::string RegRead(const Kernel::KThread* thread, size_t id) const override;
|
std::string RegRead(const Kernel::KThread* thread, size_t id) const override;
|
||||||
void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const override;
|
void RegWrite(Kernel::KThread* thread, size_t id, std::string_view value) const override;
|
||||||
std::string ReadRegisters(const Kernel::KThread* thread) const override;
|
std::string ReadRegisters(const Kernel::KThread* thread) const override;
|
||||||
|
|
|
@ -41,12 +41,12 @@ static IPSFileType IdentifyMagic(const std::vector<u8>& magic) {
|
||||||
return IPSFileType::Error;
|
return IPSFileType::Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr std::array<u8, 5> patch_magic{{'P', 'A', 'T', 'C', 'H'}};
|
static constexpr std::array<u8, 5> patch_magic{{'P', 'A', 'T', 'C', 'H'}};
|
||||||
if (std::equal(magic.begin(), magic.end(), patch_magic.begin())) {
|
if (std::equal(magic.begin(), magic.end(), patch_magic.begin())) {
|
||||||
return IPSFileType::IPS;
|
return IPSFileType::IPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr std::array<u8, 5> ips32_magic{{'I', 'P', 'S', '3', '2'}};
|
static constexpr std::array<u8, 5> ips32_magic{{'I', 'P', 'S', '3', '2'}};
|
||||||
if (std::equal(magic.begin(), magic.end(), ips32_magic.begin())) {
|
if (std::equal(magic.begin(), magic.end(), ips32_magic.begin())) {
|
||||||
return IPSFileType::IPS32;
|
return IPSFileType::IPS32;
|
||||||
}
|
}
|
||||||
|
@ -55,12 +55,12 @@ static IPSFileType IdentifyMagic(const std::vector<u8>& magic) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool IsEOF(IPSFileType type, const std::vector<u8>& data) {
|
static bool IsEOF(IPSFileType type, const std::vector<u8>& data) {
|
||||||
constexpr std::array<u8, 3> eof{{'E', 'O', 'F'}};
|
static constexpr std::array<u8, 3> eof{{'E', 'O', 'F'}};
|
||||||
if (type == IPSFileType::IPS && std::equal(data.begin(), data.end(), eof.begin())) {
|
if (type == IPSFileType::IPS && std::equal(data.begin(), data.end(), eof.begin())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr std::array<u8, 4> eeof{{'E', 'E', 'O', 'F'}};
|
static constexpr std::array<u8, 4> eeof{{'E', 'E', 'O', 'F'}};
|
||||||
return type == IPSFileType::IPS32 && std::equal(data.begin(), data.end(), eeof.begin());
|
return type == IPSFileType::IPS32 && std::equal(data.begin(), data.end(), eeof.begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ static std::string GetRelativePathFromNcaID(const std::array<u8, 16>& nca_id, bo
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string GetCNMTName(TitleType type, u64 title_id) {
|
static std::string GetCNMTName(TitleType type, u64 title_id) {
|
||||||
constexpr std::array<const char*, 9> TITLE_TYPE_NAMES{
|
static constexpr std::array<const char*, 9> TITLE_TYPE_NAMES{
|
||||||
"SystemProgram",
|
"SystemProgram",
|
||||||
"SystemData",
|
"SystemData",
|
||||||
"SystemUpdate",
|
"SystemUpdate",
|
||||||
|
|
|
@ -16,7 +16,7 @@ Result SetThreadActivity(Core::System& system, Handle thread_handle,
|
||||||
thread_activity);
|
thread_activity);
|
||||||
|
|
||||||
// Validate the activity.
|
// Validate the activity.
|
||||||
constexpr auto IsValidThreadActivity = [](ThreadActivity activity) {
|
static constexpr auto IsValidThreadActivity = [](ThreadActivity activity) {
|
||||||
return activity == ThreadActivity::Runnable || activity == ThreadActivity::Paused;
|
return activity == ThreadActivity::Runnable || activity == ThreadActivity::Paused;
|
||||||
};
|
};
|
||||||
R_UNLESS(IsValidThreadActivity(thread_activity), ResultInvalidEnumValue);
|
R_UNLESS(IsValidThreadActivity(thread_activity), ResultInvalidEnumValue);
|
||||||
|
|
|
@ -1569,7 +1569,7 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) {
|
||||||
const auto& version = res.first->GetVersionString();
|
const auto& version = res.first->GetVersionString();
|
||||||
std::copy(version.begin(), version.end(), version_string.begin());
|
std::copy(version.begin(), version.end(), version_string.begin());
|
||||||
} else {
|
} else {
|
||||||
constexpr char default_version[]{"1.0.0"};
|
static constexpr char default_version[]{"1.0.0"};
|
||||||
std::memcpy(version_string.data(), default_version, sizeof(default_version));
|
std::memcpy(version_string.data(), default_version, sizeof(default_version));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ void Controller::SetPerformanceConfiguration(PerformanceMode mode,
|
||||||
}
|
}
|
||||||
|
|
||||||
void Controller::SetFromCpuBoostMode(CpuBoostMode mode) {
|
void Controller::SetFromCpuBoostMode(CpuBoostMode mode) {
|
||||||
constexpr std::array<PerformanceConfiguration, 3> BOOST_MODE_TO_CONFIG_MAP{{
|
static constexpr std::array<PerformanceConfiguration, 3> BOOST_MODE_TO_CONFIG_MAP{{
|
||||||
PerformanceConfiguration::Config7,
|
PerformanceConfiguration::Config7,
|
||||||
PerformanceConfiguration::Config13,
|
PerformanceConfiguration::Config13,
|
||||||
PerformanceConfiguration::Config15,
|
PerformanceConfiguration::Config15,
|
||||||
|
|
|
@ -124,7 +124,7 @@ private:
|
||||||
//!< value
|
//!< value
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr static std::size_t SyncpointCount{192};
|
static constexpr std::size_t SyncpointCount{192};
|
||||||
std::array<SyncpointInfo, SyncpointCount> syncpoints{};
|
std::array<SyncpointInfo, SyncpointCount> syncpoints{};
|
||||||
std::mutex reservation_lock;
|
std::mutex reservation_lock;
|
||||||
|
|
||||||
|
|
|
@ -286,7 +286,7 @@ static constexpr int TransitionTime(int year, Rule rule, int offset) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ParsePosixName(const char* name, TimeZoneRule& rule) {
|
static bool ParsePosixName(const char* name, TimeZoneRule& rule) {
|
||||||
constexpr char default_rule[]{",M4.1.0,M10.5.0"};
|
static constexpr char default_rule[]{",M4.1.0,M10.5.0"};
|
||||||
const char* std_name{name};
|
const char* std_name{name};
|
||||||
int std_len{};
|
int std_len{};
|
||||||
int offset{};
|
int offset{};
|
||||||
|
|
|
@ -34,7 +34,7 @@ static u64 GenerateTelemetryId() {
|
||||||
mbedtls_entropy_context entropy;
|
mbedtls_entropy_context entropy;
|
||||||
mbedtls_entropy_init(&entropy);
|
mbedtls_entropy_init(&entropy);
|
||||||
mbedtls_ctr_drbg_context ctr_drbg;
|
mbedtls_ctr_drbg_context ctr_drbg;
|
||||||
constexpr std::array<char, 18> personalization{{"yuzu Telemetry ID"}};
|
static constexpr std::array<char, 18> personalization{{"yuzu Telemetry ID"}};
|
||||||
|
|
||||||
mbedtls_ctr_drbg_init(&ctr_drbg);
|
mbedtls_ctr_drbg_init(&ctr_drbg);
|
||||||
ASSERT(mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
|
ASSERT(mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
|
||||||
|
|
|
@ -390,7 +390,7 @@ void Joycons::OnMotionUpdate(std::size_t port, Joycon::ControllerType type, int
|
||||||
void Joycons::OnRingConUpdate(f32 ring_data) {
|
void Joycons::OnRingConUpdate(f32 ring_data) {
|
||||||
// To simplify ring detection it will always be mapped to an empty identifier for all
|
// To simplify ring detection it will always be mapped to an empty identifier for all
|
||||||
// controllers
|
// controllers
|
||||||
constexpr PadIdentifier identifier = {
|
static constexpr PadIdentifier identifier = {
|
||||||
.guid = Common::UUID{},
|
.guid = Common::UUID{},
|
||||||
.port = 0,
|
.port = 0,
|
||||||
.pad = 0,
|
.pad = 0,
|
||||||
|
|
|
@ -616,7 +616,7 @@ bool SDLDriver::IsVibrationEnabled(const PadIdentifier& identifier) {
|
||||||
const auto joystick =
|
const auto joystick =
|
||||||
GetSDLJoystickByGUID(identifier.guid.RawString(), static_cast<int>(identifier.port));
|
GetSDLJoystickByGUID(identifier.guid.RawString(), static_cast<int>(identifier.port));
|
||||||
|
|
||||||
constexpr Common::Input::VibrationStatus test_vibration{
|
static constexpr Common::Input::VibrationStatus test_vibration{
|
||||||
.low_amplitude = 1,
|
.low_amplitude = 1,
|
||||||
.low_frequency = 160.0f,
|
.low_frequency = 160.0f,
|
||||||
.high_amplitude = 1,
|
.high_amplitude = 1,
|
||||||
|
@ -624,7 +624,7 @@ bool SDLDriver::IsVibrationEnabled(const PadIdentifier& identifier) {
|
||||||
.type = Common::Input::VibrationAmplificationType::Exponential,
|
.type = Common::Input::VibrationAmplificationType::Exponential,
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr Common::Input::VibrationStatus zero_vibration{
|
static constexpr Common::Input::VibrationStatus zero_vibration{
|
||||||
.low_amplitude = 0,
|
.low_amplitude = 0,
|
||||||
.low_frequency = 160.0f,
|
.low_frequency = 160.0f,
|
||||||
.high_amplitude = 0,
|
.high_amplitude = 0,
|
||||||
|
|
|
@ -258,7 +258,7 @@ u32 Maxwell3D::GetMaxCurrentVertices() {
|
||||||
size_t Maxwell3D::EstimateIndexBufferSize() {
|
size_t Maxwell3D::EstimateIndexBufferSize() {
|
||||||
GPUVAddr start_address = regs.index_buffer.StartAddress();
|
GPUVAddr start_address = regs.index_buffer.StartAddress();
|
||||||
GPUVAddr end_address = regs.index_buffer.EndAddress();
|
GPUVAddr end_address = regs.index_buffer.EndAddress();
|
||||||
constexpr std::array<size_t, 4> max_sizes = {
|
static constexpr std::array<size_t, 4> max_sizes = {
|
||||||
std::numeric_limits<u8>::max(), std::numeric_limits<u16>::max(),
|
std::numeric_limits<u8>::max(), std::numeric_limits<u16>::max(),
|
||||||
std::numeric_limits<u32>::max(), std::numeric_limits<u32>::max()};
|
std::numeric_limits<u32>::max(), std::numeric_limits<u32>::max()};
|
||||||
const size_t byte_size = regs.index_buffer.FormatSizeInBytes();
|
const size_t byte_size = regs.index_buffer.FormatSizeInBytes();
|
||||||
|
|
|
@ -216,7 +216,7 @@ private:
|
||||||
std::vector<u64> big_page_continous;
|
std::vector<u64> big_page_continous;
|
||||||
std::vector<std::pair<VAddr, std::size_t>> page_stash{};
|
std::vector<std::pair<VAddr, std::size_t>> page_stash{};
|
||||||
|
|
||||||
constexpr static size_t continous_bits = 64;
|
static constexpr size_t continous_bits = 64;
|
||||||
|
|
||||||
const size_t unique_identifier;
|
const size_t unique_identifier;
|
||||||
std::unique_ptr<VideoCommon::InvalidationAccumulator> accumulator;
|
std::unique_ptr<VideoCommon::InvalidationAccumulator> accumulator;
|
||||||
|
|
|
@ -468,7 +468,7 @@ VkWriteDescriptorSet CreateWriteDescriptorSet(std::vector<VkDescriptorImageInfo>
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearColorImage(vk::CommandBuffer& cmdbuf, VkImage image) {
|
void ClearColorImage(vk::CommandBuffer& cmdbuf, VkImage image) {
|
||||||
constexpr std::array<VkImageSubresourceRange, 1> subresources{{{
|
static constexpr std::array<VkImageSubresourceRange, 1> subresources{{{
|
||||||
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||||
.baseMipLevel = 0,
|
.baseMipLevel = 0,
|
||||||
.levelCount = 1,
|
.levelCount = 1,
|
||||||
|
@ -528,8 +528,8 @@ SMAA::SMAA(const Device& device, MemoryAllocator& allocator, size_t image_count,
|
||||||
}
|
}
|
||||||
|
|
||||||
void SMAA::CreateImages() {
|
void SMAA::CreateImages() {
|
||||||
constexpr VkExtent2D area_extent{AREATEX_WIDTH, AREATEX_HEIGHT};
|
static constexpr VkExtent2D area_extent{AREATEX_WIDTH, AREATEX_HEIGHT};
|
||||||
constexpr VkExtent2D search_extent{SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT};
|
static constexpr VkExtent2D search_extent{SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT};
|
||||||
|
|
||||||
std::tie(m_static_images[Area], m_static_buffer_commits[Area]) =
|
std::tie(m_static_images[Area], m_static_buffer_commits[Area]) =
|
||||||
CreateWrappedImage(m_device, m_allocator, area_extent, VK_FORMAT_R8G8_UNORM);
|
CreateWrappedImage(m_device, m_allocator, area_extent, VK_FORMAT_R8G8_UNORM);
|
||||||
|
@ -586,12 +586,12 @@ void SMAA::CreateSampler() {
|
||||||
|
|
||||||
void SMAA::CreateShaders() {
|
void SMAA::CreateShaders() {
|
||||||
// These match the order of the SMAAStage enum
|
// These match the order of the SMAAStage enum
|
||||||
constexpr std::array vert_shader_sources{
|
static constexpr std::array vert_shader_sources{
|
||||||
ARRAY_TO_SPAN(SMAA_EDGE_DETECTION_VERT_SPV),
|
ARRAY_TO_SPAN(SMAA_EDGE_DETECTION_VERT_SPV),
|
||||||
ARRAY_TO_SPAN(SMAA_BLENDING_WEIGHT_CALCULATION_VERT_SPV),
|
ARRAY_TO_SPAN(SMAA_BLENDING_WEIGHT_CALCULATION_VERT_SPV),
|
||||||
ARRAY_TO_SPAN(SMAA_NEIGHBORHOOD_BLENDING_VERT_SPV),
|
ARRAY_TO_SPAN(SMAA_NEIGHBORHOOD_BLENDING_VERT_SPV),
|
||||||
};
|
};
|
||||||
constexpr std::array frag_shader_sources{
|
static constexpr std::array frag_shader_sources{
|
||||||
ARRAY_TO_SPAN(SMAA_EDGE_DETECTION_FRAG_SPV),
|
ARRAY_TO_SPAN(SMAA_EDGE_DETECTION_FRAG_SPV),
|
||||||
ARRAY_TO_SPAN(SMAA_BLENDING_WEIGHT_CALCULATION_FRAG_SPV),
|
ARRAY_TO_SPAN(SMAA_BLENDING_WEIGHT_CALCULATION_FRAG_SPV),
|
||||||
ARRAY_TO_SPAN(SMAA_NEIGHBORHOOD_BLENDING_FRAG_SPV),
|
ARRAY_TO_SPAN(SMAA_NEIGHBORHOOD_BLENDING_FRAG_SPV),
|
||||||
|
@ -675,8 +675,8 @@ void SMAA::UploadImages(Scheduler& scheduler) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr VkExtent2D area_extent{AREATEX_WIDTH, AREATEX_HEIGHT};
|
static constexpr VkExtent2D area_extent{AREATEX_WIDTH, AREATEX_HEIGHT};
|
||||||
constexpr VkExtent2D search_extent{SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT};
|
static constexpr VkExtent2D search_extent{SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT};
|
||||||
|
|
||||||
UploadImage(m_device, m_allocator, scheduler, m_static_images[Area], area_extent,
|
UploadImage(m_device, m_allocator, scheduler, m_static_images[Area], area_extent,
|
||||||
VK_FORMAT_R8G8_UNORM, ARRAY_TO_SPAN(areaTexBytes));
|
VK_FORMAT_R8G8_UNORM, ARRAY_TO_SPAN(areaTexBytes));
|
||||||
|
|
|
@ -113,7 +113,7 @@ public:
|
||||||
std::optional<ASTCDecoderPass> astc_decoder_pass;
|
std::optional<ASTCDecoderPass> astc_decoder_pass;
|
||||||
const Settings::ResolutionScalingInfo& resolution;
|
const Settings::ResolutionScalingInfo& resolution;
|
||||||
|
|
||||||
constexpr static size_t indexing_slots = 8 * sizeof(size_t);
|
static constexpr size_t indexing_slots = 8 * sizeof(size_t);
|
||||||
std::array<vk::Buffer, indexing_slots> buffers{};
|
std::array<vk::Buffer, indexing_slots> buffers{};
|
||||||
std::array<std::unique_ptr<MemoryCommit>, indexing_slots> buffer_commits{};
|
std::array<std::unique_ptr<MemoryCommit>, indexing_slots> buffer_commits{};
|
||||||
};
|
};
|
||||||
|
|
|
@ -48,7 +48,7 @@ void TurboMode::Run(std::stop_token stop_token) {
|
||||||
auto commit = m_allocator.Commit(buffer, MemoryUsage::DeviceLocal);
|
auto commit = m_allocator.Commit(buffer, MemoryUsage::DeviceLocal);
|
||||||
|
|
||||||
// Create the descriptor pool to contain our descriptor.
|
// Create the descriptor pool to contain our descriptor.
|
||||||
constexpr VkDescriptorPoolSize pool_size{
|
static constexpr VkDescriptorPoolSize pool_size{
|
||||||
.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||||
.descriptorCount = 1,
|
.descriptorCount = 1,
|
||||||
};
|
};
|
||||||
|
@ -63,7 +63,7 @@ void TurboMode::Run(std::stop_token stop_token) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create the descriptor set layout from the pool.
|
// Create the descriptor set layout from the pool.
|
||||||
constexpr VkDescriptorSetLayoutBinding layout_binding{
|
static constexpr VkDescriptorSetLayoutBinding layout_binding{
|
||||||
.binding = 0,
|
.binding = 0,
|
||||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||||
.descriptorCount = 1,
|
.descriptorCount = 1,
|
||||||
|
|
|
@ -29,7 +29,7 @@ constexpr u32 pdep(u32 value) {
|
||||||
|
|
||||||
template <u32 mask, u32 incr_amount>
|
template <u32 mask, u32 incr_amount>
|
||||||
void incrpdep(u32& value) {
|
void incrpdep(u32& value) {
|
||||||
constexpr u32 swizzled_incr = pdep<mask>(incr_amount);
|
static constexpr u32 swizzled_incr = pdep<mask>(incr_amount);
|
||||||
value = ((value | ~mask) + swizzled_incr) & mask;
|
value = ((value | ~mask) + swizzled_incr) & mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ static void LogRuntimes() {
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
// It is possible that the name of the dll will change.
|
// It is possible that the name of the dll will change.
|
||||||
// vcruntime140.dll is for 2015 and onwards
|
// vcruntime140.dll is for 2015 and onwards
|
||||||
constexpr char runtime_dll_name[] = "vcruntime140.dll";
|
static constexpr char runtime_dll_name[] = "vcruntime140.dll";
|
||||||
UINT sz = GetFileVersionInfoSizeA(runtime_dll_name, nullptr);
|
UINT sz = GetFileVersionInfoSizeA(runtime_dll_name, nullptr);
|
||||||
bool runtime_version_inspection_worked = false;
|
bool runtime_version_inspection_worked = false;
|
||||||
if (sz > 0) {
|
if (sz > 0) {
|
||||||
|
|
Loading…
Reference in a new issue