early-access version 2892
This commit is contained in:
@@ -8,6 +8,10 @@
|
||||
#include "core/core.h"
|
||||
#include "core/core_timing.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
|
||||
using Callback = Dynarmic::A32::Coprocessor::Callback;
|
||||
using CallbackOrAccessOneWord = Dynarmic::A32::Coprocessor::CallbackOrAccessOneWord;
|
||||
using CallbackOrAccessTwoWords = Dynarmic::A32::Coprocessor::CallbackOrAccessTwoWords;
|
||||
@@ -47,12 +51,31 @@ CallbackOrAccessOneWord DynarmicCP15::CompileSendOneWord(bool two, unsigned opc1
|
||||
switch (opc2) {
|
||||
case 4:
|
||||
// CP15_DATA_SYNC_BARRIER
|
||||
// This is a dummy write, we ignore the value written here.
|
||||
return &dummy_value;
|
||||
return Callback{
|
||||
[](Dynarmic::A32::Jit*, void*, std::uint32_t, std::uint32_t) -> std::uint64_t {
|
||||
#ifdef _MSC_VER
|
||||
_mm_mfence();
|
||||
_mm_lfence();
|
||||
#else
|
||||
asm volatile("mfence\n\tlfence\n\t" : : : "memory");
|
||||
#endif
|
||||
return 0;
|
||||
},
|
||||
std::nullopt,
|
||||
};
|
||||
case 5:
|
||||
// CP15_DATA_MEMORY_BARRIER
|
||||
// This is a dummy write, we ignore the value written here.
|
||||
return &dummy_value;
|
||||
return Callback{
|
||||
[](Dynarmic::A32::Jit*, void*, std::uint32_t, std::uint32_t) -> std::uint64_t {
|
||||
#ifdef _MSC_VER
|
||||
_mm_mfence();
|
||||
#else
|
||||
asm volatile("mfence\n\t" : : : "memory");
|
||||
#endif
|
||||
return 0;
|
||||
},
|
||||
std::nullopt,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -35,6 +35,8 @@ public:
|
||||
ARM_Dynarmic_32& parent;
|
||||
u32 uprw = 0;
|
||||
u32 uro = 0;
|
||||
|
||||
friend class ARM_Dynarmic_32;
|
||||
};
|
||||
|
||||
} // namespace Core
|
||||
|
@@ -1089,8 +1089,8 @@ QStringList GRenderWindow::GetUnsupportedGLExtensions() const {
|
||||
}
|
||||
|
||||
if (!unsupported_ext.empty()) {
|
||||
LOG_ERROR(Frontend, "GPU does not support all required extensions: {}",
|
||||
glGetString(GL_RENDERER));
|
||||
const std::string gl_renderer{reinterpret_cast<const char*>(glGetString(GL_RENDERER))};
|
||||
LOG_ERROR(Frontend, "GPU does not support all required extensions: {}", gl_renderer);
|
||||
}
|
||||
for (const QString& ext : unsupported_ext) {
|
||||
LOG_ERROR(Frontend, "Unsupported GL extension: {}", ext.toStdString());
|
||||
|
@@ -3358,7 +3358,8 @@ void GMainWindow::MigrateConfigFiles() {
|
||||
}
|
||||
const auto origin = config_dir_fs_path / filename;
|
||||
const auto destination = config_dir_fs_path / "custom" / filename;
|
||||
LOG_INFO(Frontend, "Migrating config file from {} to {}", origin, destination);
|
||||
LOG_INFO(Frontend, "Migrating config file from {} to {}", origin.string(),
|
||||
destination.string());
|
||||
if (!Common::FS::RenameFile(origin, destination)) {
|
||||
// Delete the old config file if one already exists in the new location.
|
||||
Common::FS::RemoveFile(origin);
|
||||
|
Reference in New Issue
Block a user