forked from etc/pineapple-src
early-access version 2062
This commit is contained in:
parent
8f24076aad
commit
5c707603d4
3 changed files with 34 additions and 10 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2060.
|
This is the source code for early-access 2062.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,14 @@ FileSys::StorageId GetStorageIdForFrontendSlot(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KProcessDeleter(Kernel::KProcess* process) {
|
||||||
|
if (process) {
|
||||||
|
process->Destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
using KProcessPtr = std::unique_ptr<Kernel::KProcess, decltype(&KProcessDeleter)>;
|
||||||
|
|
||||||
} // Anonymous namespace
|
} // Anonymous namespace
|
||||||
|
|
||||||
FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
|
FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
|
||||||
|
@ -233,8 +241,8 @@ struct System::Impl {
|
||||||
}
|
}
|
||||||
|
|
||||||
telemetry_session->AddInitialInfo(*app_loader, fs_controller, *content_provider);
|
telemetry_session->AddInitialInfo(*app_loader, fs_controller, *content_provider);
|
||||||
auto main_process = Kernel::KProcess::Create(system.Kernel());
|
main_process = KProcessPtr{Kernel::KProcess::Create(system.Kernel()), KProcessDeleter};
|
||||||
ASSERT(Kernel::KProcess::Initialize(main_process, system, "main",
|
ASSERT(Kernel::KProcess::Initialize(main_process.get(), system, "main",
|
||||||
Kernel::KProcess::ProcessType::Userland)
|
Kernel::KProcess::ProcessType::Userland)
|
||||||
.IsSuccess());
|
.IsSuccess());
|
||||||
main_process->Open();
|
main_process->Open();
|
||||||
|
@ -247,7 +255,7 @@ struct System::Impl {
|
||||||
static_cast<u32>(load_result));
|
static_cast<u32>(load_result));
|
||||||
}
|
}
|
||||||
AddGlueRegistrationForProcess(*app_loader, *main_process);
|
AddGlueRegistrationForProcess(*app_loader, *main_process);
|
||||||
kernel.MakeCurrentProcess(main_process);
|
kernel.MakeCurrentProcess(main_process.get());
|
||||||
kernel.InitializeCores();
|
kernel.InitializeCores();
|
||||||
|
|
||||||
// Initialize cheat engine
|
// Initialize cheat engine
|
||||||
|
@ -316,6 +324,7 @@ struct System::Impl {
|
||||||
kernel.Shutdown();
|
kernel.Shutdown();
|
||||||
memory.Reset();
|
memory.Reset();
|
||||||
applet_manager.ClearAll();
|
applet_manager.ClearAll();
|
||||||
|
main_process.reset();
|
||||||
|
|
||||||
LOG_DEBUG(Core, "Shutdown OK");
|
LOG_DEBUG(Core, "Shutdown OK");
|
||||||
}
|
}
|
||||||
|
@ -374,6 +383,7 @@ struct System::Impl {
|
||||||
std::unique_ptr<Tegra::GPU> gpu_core;
|
std::unique_ptr<Tegra::GPU> gpu_core;
|
||||||
std::unique_ptr<Hardware::InterruptManager> interrupt_manager;
|
std::unique_ptr<Hardware::InterruptManager> interrupt_manager;
|
||||||
std::unique_ptr<Core::DeviceMemory> device_memory;
|
std::unique_ptr<Core::DeviceMemory> device_memory;
|
||||||
|
KProcessPtr main_process{nullptr, KProcessDeleter};
|
||||||
Core::Memory::Memory memory;
|
Core::Memory::Memory memory;
|
||||||
CpuManager cpu_manager;
|
CpuManager cpu_manager;
|
||||||
std::atomic_bool is_powered_on{};
|
std::atomic_bool is_powered_on{};
|
||||||
|
|
|
@ -599,6 +599,26 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
ext_extended_dynamic_state = false;
|
ext_extended_dynamic_state = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sets_per_pool = 64;
|
||||||
|
if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) {
|
||||||
|
// AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2.
|
||||||
|
sets_per_pool = 96;
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool is_amd = driver_id == VK_DRIVER_ID_AMD_PROPRIETARY ||
|
||||||
|
driver_id == VK_DRIVER_ID_MESA_RADV ||
|
||||||
|
driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE;
|
||||||
|
if (ext_sampler_filter_minmax && is_amd) {
|
||||||
|
// Disable ext_sampler_filter_minmax on AMD GCN4 and lower as it is broken.
|
||||||
|
if (!is_float16_supported) {
|
||||||
|
LOG_WARNING(
|
||||||
|
Render_Vulkan,
|
||||||
|
"Blacklisting AMD GCN4 and lower for VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME");
|
||||||
|
ext_sampler_filter_minmax = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ext_vertex_input_dynamic_state && driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
|
if (ext_vertex_input_dynamic_state && driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
|
||||||
LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state");
|
LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state");
|
||||||
ext_vertex_input_dynamic_state = false;
|
ext_vertex_input_dynamic_state = false;
|
||||||
|
@ -611,12 +631,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
|
|
||||||
graphics_queue = logical.GetQueue(graphics_family);
|
graphics_queue = logical.GetQueue(graphics_family);
|
||||||
present_queue = logical.GetQueue(present_family);
|
present_queue = logical.GetQueue(present_family);
|
||||||
|
|
||||||
sets_per_pool = 64;
|
|
||||||
if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) {
|
|
||||||
// AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2.
|
|
||||||
sets_per_pool = 96;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::~Device() = default;
|
Device::~Device() = default;
|
||||||
|
|
Loading…
Reference in a new issue