mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 02:32:36 +01:00
Emu: use vulkan as default renderer
This commit is contained in:
parent
046923d9f7
commit
5226076676
@ -203,6 +203,11 @@ namespace cfg
|
|||||||
return m_value;
|
return m_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set(T value)
|
||||||
|
{
|
||||||
|
m_value = value;
|
||||||
|
}
|
||||||
|
|
||||||
void from_default() override
|
void from_default() override
|
||||||
{
|
{
|
||||||
m_value = def;
|
m_value = def;
|
||||||
|
@ -126,6 +126,14 @@ void Emulator::Init()
|
|||||||
|
|
||||||
// Reset defaults, cache them
|
// Reset defaults, cache them
|
||||||
g_cfg.from_default();
|
g_cfg.from_default();
|
||||||
|
|
||||||
|
// Not all renderers are known at compile time, so set a provided default if possible
|
||||||
|
if (m_default_renderer == video_renderer::vulkan && !m_default_graphics_adapter.empty())
|
||||||
|
{
|
||||||
|
g_cfg.video.renderer.set(m_default_renderer);
|
||||||
|
g_cfg.video.vk.adapter.from_string(m_default_graphics_adapter);
|
||||||
|
}
|
||||||
|
|
||||||
g_cfg_defaults = g_cfg.to_string();
|
g_cfg_defaults = g_cfg.to_string();
|
||||||
|
|
||||||
// Reload override configuration set via command line
|
// Reload override configuration set via command line
|
||||||
|
@ -9,6 +9,7 @@ u64 get_system_time();
|
|||||||
u64 get_guest_system_time();
|
u64 get_guest_system_time();
|
||||||
|
|
||||||
enum class localized_string_id;
|
enum class localized_string_id;
|
||||||
|
enum class video_renderer;
|
||||||
|
|
||||||
enum class system_state
|
enum class system_state
|
||||||
{
|
{
|
||||||
@ -64,6 +65,9 @@ class Emulator final
|
|||||||
atomic_t<u64> m_pause_start_time{0}; // set when paused
|
atomic_t<u64> m_pause_start_time{0}; // set when paused
|
||||||
atomic_t<u64> m_pause_amend_time{0}; // increased when resumed
|
atomic_t<u64> m_pause_amend_time{0}; // increased when resumed
|
||||||
|
|
||||||
|
video_renderer m_default_renderer;
|
||||||
|
std::string m_default_graphics_adapter;
|
||||||
|
|
||||||
std::string m_config_override_path;
|
std::string m_config_override_path;
|
||||||
std::string m_path;
|
std::string m_path;
|
||||||
std::string m_path_old;
|
std::string m_path_old;
|
||||||
@ -218,6 +222,8 @@ public:
|
|||||||
bool HasGui() const { return m_has_gui; }
|
bool HasGui() const { return m_has_gui; }
|
||||||
void SetHasGui(bool has_gui) { m_has_gui = has_gui; }
|
void SetHasGui(bool has_gui) { m_has_gui = has_gui; }
|
||||||
|
|
||||||
|
void SetDefaultRenderer(video_renderer renderer) { m_default_renderer = renderer; }
|
||||||
|
void SetDefaultGraphicsAdapter(std::string adapter) { m_default_graphics_adapter = std::move(adapter); }
|
||||||
void SetConfigOverride(std::string path) { m_config_override_path = std::move(path); }
|
void SetConfigOverride(std::string path) { m_config_override_path = std::move(path); }
|
||||||
|
|
||||||
std::string GetFormattedTitle(double fps) const;
|
std::string GetFormattedTitle(double fps) const;
|
||||||
|
@ -21,7 +21,7 @@ inline std::string sstr(const QVariant& _in) { return sstr(_in.toString()); }
|
|||||||
// Emit sorted YAML
|
// Emit sorted YAML
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
static NEVER_INLINE void emitData(YAML::Emitter& out, const YAML::Node& node)
|
static NEVER_INLINE void emit_data(YAML::Emitter& out, const YAML::Node& node)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
out << node;
|
out << node;
|
||||||
@ -63,6 +63,19 @@ emu_settings::emu_settings()
|
|||||||
: QObject()
|
: QObject()
|
||||||
, m_render_creator(new render_creator(this))
|
, m_render_creator(new render_creator(this))
|
||||||
{
|
{
|
||||||
|
if (!m_render_creator)
|
||||||
|
{
|
||||||
|
fmt::throw_exception("emu_settings::emu_settings() render_creator is null");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make Vulkan default setting if it is supported
|
||||||
|
if (m_render_creator->Vulkan.supported && !m_render_creator->Vulkan.adapters.empty())
|
||||||
|
{
|
||||||
|
const std::string adapter = sstr(m_render_creator->Vulkan.adapters.at(0));
|
||||||
|
cfg_log.notice("Setting the default renderer to Vulkan. Default GPU: '%s')", adapter);
|
||||||
|
Emu.SetDefaultRenderer(video_renderer::vulkan);
|
||||||
|
Emu.SetDefaultGraphicsAdapter(adapter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_settings::~emu_settings()
|
emu_settings::~emu_settings()
|
||||||
@ -149,7 +162,7 @@ void emu_settings::LoadSettings(const std::string& title_id)
|
|||||||
void emu_settings::SaveSettings()
|
void emu_settings::SaveSettings()
|
||||||
{
|
{
|
||||||
YAML::Emitter out;
|
YAML::Emitter out;
|
||||||
emitData(out, m_currentSettings);
|
emit_data(out, m_currentSettings);
|
||||||
|
|
||||||
std::string config_name;
|
std::string config_name;
|
||||||
|
|
||||||
|
@ -289,8 +289,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
|||||||
|
|
||||||
if (!r_creator)
|
if (!r_creator)
|
||||||
{
|
{
|
||||||
cfg_log.error("settings_dialog::settings_dialog render_creator is null");
|
fmt::throw_exception("settings_dialog::settings_dialog() render_creator is null");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r_creator->update_names(
|
r_creator->update_names(
|
||||||
@ -538,15 +537,15 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
|||||||
ui->antiAliasing->setCurrentText(renderer.has_msaa ? qstr(m_emu_settings->GetSetting(emu_settings_type::MSAA)) : tr("Disabled", "MSAA"));
|
ui->antiAliasing->setCurrentText(renderer.has_msaa ? qstr(m_emu_settings->GetSetting(emu_settings_type::MSAA)) : tr("Disabled", "MSAA"));
|
||||||
ui->antiAliasing->blockSignals(false);
|
ui->antiAliasing->blockSignals(false);
|
||||||
|
|
||||||
|
ui->graphicsAdapterBox->clear();
|
||||||
|
|
||||||
// Fill combobox with placeholder if no adapters needed
|
// Fill combobox with placeholder if no adapters needed
|
||||||
if (!renderer.has_adapters)
|
if (!renderer.has_adapters)
|
||||||
{
|
{
|
||||||
ui->graphicsAdapterBox->clear();
|
|
||||||
ui->graphicsAdapterBox->addItem(tr("Not needed for %1 renderer", "Graphics adapter").arg(text));
|
ui->graphicsAdapterBox->addItem(tr("Not needed for %1 renderer", "Graphics adapter").arg(text));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Fill combobox
|
// Fill combobox
|
||||||
ui->graphicsAdapterBox->clear();
|
|
||||||
for (const auto& adapter : renderer.adapters)
|
for (const auto& adapter : renderer.adapters)
|
||||||
{
|
{
|
||||||
ui->graphicsAdapterBox->addItem(adapter);
|
ui->graphicsAdapterBox->addItem(adapter);
|
||||||
|
Loading…
Reference in New Issue
Block a user