mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-05 06:21:19 +12:00
add an option to disable framebuffer fetch
This commit is contained in:
parent
217e2edda3
commit
f4985c481e
5 changed files with 21 additions and 3 deletions
|
@ -87,7 +87,7 @@ MetalRenderer::MetalRenderer()
|
||||||
|
|
||||||
// Feature support
|
// Feature support
|
||||||
m_isAppleGPU = m_device->supportsFamily(MTL::GPUFamilyApple1);
|
m_isAppleGPU = m_device->supportsFamily(MTL::GPUFamilyApple1);
|
||||||
m_supportsFramebufferFetch = m_device->supportsFamily(MTL::GPUFamilyApple2);
|
m_supportsFramebufferFetch = GetConfig().framebuffer_fetch.GetValue() ? m_device->supportsFamily(MTL::GPUFamilyApple2) : false;
|
||||||
m_hasUnifiedMemory = m_device->hasUnifiedMemory();
|
m_hasUnifiedMemory = m_device->hasUnifiedMemory();
|
||||||
m_supportsMetal3 = m_device->supportsFamily(MTL::GPUFamilyMetal3);
|
m_supportsMetal3 = m_device->supportsFamily(MTL::GPUFamilyMetal3);
|
||||||
m_recommendedMaxVRAMUsage = m_device->recommendedMaxWorkingSetSize();
|
m_recommendedMaxVRAMUsage = m_device->recommendedMaxWorkingSetSize();
|
||||||
|
|
|
@ -338,6 +338,7 @@ void CemuConfig::Load(XMLConfigParser& parser)
|
||||||
#endif
|
#endif
|
||||||
gdb_port = debug.get("GDBPort", 1337);
|
gdb_port = debug.get("GDBPort", 1337);
|
||||||
gpu_capture_dir = debug.get("GPUCaptureDir", "");
|
gpu_capture_dir = debug.get("GPUCaptureDir", "");
|
||||||
|
framebuffer_fetch = debug.get("FramebufferFetch", true);
|
||||||
|
|
||||||
// input
|
// input
|
||||||
auto input = parser.get("Input");
|
auto input = parser.get("Input");
|
||||||
|
@ -540,7 +541,8 @@ void CemuConfig::Save(XMLConfigParser& parser)
|
||||||
debug.set("CrashDumpUnix", crash_dump.GetValue());
|
debug.set("CrashDumpUnix", crash_dump.GetValue());
|
||||||
#endif
|
#endif
|
||||||
debug.set("GDBPort", gdb_port);
|
debug.set("GDBPort", gdb_port);
|
||||||
debug.set("GPUCaptureDir", gpu_capture_dir.GetValue());
|
debug.set("GPUCaptureDir", gpu_capture_dir);
|
||||||
|
debug.set("FramebufferFetch", framebuffer_fetch);
|
||||||
|
|
||||||
// input
|
// input
|
||||||
auto input = config.set("Input");
|
auto input = config.set("Input");
|
||||||
|
|
|
@ -527,7 +527,8 @@ struct CemuConfig
|
||||||
// debug
|
// debug
|
||||||
ConfigValueBounds<CrashDump> crash_dump{ CrashDump::Disabled };
|
ConfigValueBounds<CrashDump> crash_dump{ CrashDump::Disabled };
|
||||||
ConfigValue<uint16> gdb_port{ 1337 };
|
ConfigValue<uint16> gdb_port{ 1337 };
|
||||||
ConfigValue<std::string> gpu_capture_dir{};
|
ConfigValue<std::string> gpu_capture_dir{ "" };
|
||||||
|
ConfigValue<bool> framebuffer_fetch{ true };
|
||||||
|
|
||||||
void Load(XMLConfigParser& parser);
|
void Load(XMLConfigParser& parser);
|
||||||
void Save(XMLConfigParser& parser);
|
void Save(XMLConfigParser& parser);
|
||||||
|
|
|
@ -910,6 +910,18 @@ wxPanel* GeneralSettings2::AddDebugPage(wxNotebook* notebook)
|
||||||
debug_panel_sizer->Add(debug_row, 0, wxALL | wxEXPAND, 5);
|
debug_panel_sizer->Add(debug_row, 0, wxALL | wxEXPAND, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto* debug_row = new wxFlexGridSizer(0, 2, 0, 0);
|
||||||
|
debug_row->SetFlexibleDirection(wxBOTH);
|
||||||
|
debug_row->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||||
|
|
||||||
|
m_framebuffer_fetch = new wxCheckBox(panel, wxID_ANY, _("Framebuffer fetch"));
|
||||||
|
m_framebuffer_fetch->SetToolTip(_("Enable framebuffer fetch for eligible textures on supported devices."));
|
||||||
|
|
||||||
|
debug_row->Add(m_framebuffer_fetch, 0, wxALL | wxEXPAND, 5);
|
||||||
|
debug_panel_sizer->Add(debug_row, 0, wxALL | wxEXPAND, 5);
|
||||||
|
}
|
||||||
|
|
||||||
panel->SetSizerAndFit(debug_panel_sizer);
|
panel->SetSizerAndFit(debug_panel_sizer);
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
|
@ -1121,6 +1133,7 @@ void GeneralSettings2::StoreConfig()
|
||||||
config.crash_dump = (CrashDump)m_crash_dump->GetSelection();
|
config.crash_dump = (CrashDump)m_crash_dump->GetSelection();
|
||||||
config.gdb_port = m_gdb_port->GetValue();
|
config.gdb_port = m_gdb_port->GetValue();
|
||||||
config.gpu_capture_dir = m_gpu_capture_dir->GetValue().utf8_string();
|
config.gpu_capture_dir = m_gpu_capture_dir->GetValue().utf8_string();
|
||||||
|
config.framebuffer_fetch = m_framebuffer_fetch->IsChecked();
|
||||||
|
|
||||||
g_config.Save();
|
g_config.Save();
|
||||||
}
|
}
|
||||||
|
@ -1816,6 +1829,7 @@ void GeneralSettings2::ApplyConfig()
|
||||||
m_crash_dump->SetSelection((int)config.crash_dump.GetValue());
|
m_crash_dump->SetSelection((int)config.crash_dump.GetValue());
|
||||||
m_gdb_port->SetValue(config.gdb_port.GetValue());
|
m_gdb_port->SetValue(config.gdb_port.GetValue());
|
||||||
m_gpu_capture_dir->SetValue(wxHelper::FromUtf8(config.gpu_capture_dir.GetValue()));
|
m_gpu_capture_dir->SetValue(wxHelper::FromUtf8(config.gpu_capture_dir.GetValue()));
|
||||||
|
m_framebuffer_fetch->SetValue(config.framebuffer_fetch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeneralSettings2::OnAudioAPISelected(wxCommandEvent& event)
|
void GeneralSettings2::OnAudioAPISelected(wxCommandEvent& event)
|
||||||
|
|
|
@ -80,6 +80,7 @@ private:
|
||||||
wxChoice* m_crash_dump;
|
wxChoice* m_crash_dump;
|
||||||
wxSpinCtrl* m_gdb_port;
|
wxSpinCtrl* m_gdb_port;
|
||||||
wxTextCtrl* m_gpu_capture_dir;
|
wxTextCtrl* m_gpu_capture_dir;
|
||||||
|
wxCheckBox* m_framebuffer_fetch;
|
||||||
|
|
||||||
void OnAccountCreate(wxCommandEvent& event);
|
void OnAccountCreate(wxCommandEvent& event);
|
||||||
void OnAccountDelete(wxCommandEvent& event);
|
void OnAccountDelete(wxCommandEvent& event);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue