Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.
This commit is contained in:
parent
d67e2f78b7
commit
094ae6fadb
19 changed files with 968 additions and 4 deletions
|
@ -44,6 +44,7 @@ void Config::ReadValues() {
|
|||
|
||||
qt_config->beginGroup("Renderer");
|
||||
Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", false).toBool();
|
||||
Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool();
|
||||
|
||||
Settings::values.bg_red = qt_config->value("bg_red", 1.0).toFloat();
|
||||
Settings::values.bg_green = qt_config->value("bg_green", 1.0).toFloat();
|
||||
|
@ -77,6 +78,7 @@ void Config::SaveValues() {
|
|||
|
||||
qt_config->beginGroup("Renderer");
|
||||
qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer);
|
||||
qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit);
|
||||
|
||||
// Cast to double because Qt's written float values are not human-readable
|
||||
qt_config->setValue("bg_red", (double)Settings::values.bg_red);
|
||||
|
|
|
@ -131,6 +131,9 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
|
|||
ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer);
|
||||
SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked());
|
||||
|
||||
ui.action_Use_Shader_JIT->setChecked(Settings::values.use_shader_jit);
|
||||
SetShaderJITEnabled(ui.action_Use_Shader_JIT->isChecked());
|
||||
|
||||
ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", true).toBool());
|
||||
ToggleWindowMode();
|
||||
|
||||
|
@ -144,6 +147,7 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
|
|||
connect(ui.action_Pause, SIGNAL(triggered()), this, SLOT(OnPauseGame()));
|
||||
connect(ui.action_Stop, SIGNAL(triggered()), this, SLOT(OnStopGame()));
|
||||
connect(ui.action_Use_Hardware_Renderer, SIGNAL(triggered(bool)), this, SLOT(SetHardwareRendererEnabled(bool)));
|
||||
connect(ui.action_Use_Shader_JIT, SIGNAL(triggered(bool)), this, SLOT(SetShaderJITEnabled(bool)));
|
||||
connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(ToggleWindowMode()));
|
||||
connect(ui.action_Hotkeys, SIGNAL(triggered()), this, SLOT(OnOpenHotkeysDialog()));
|
||||
|
||||
|
@ -331,6 +335,10 @@ void GMainWindow::SetHardwareRendererEnabled(bool enabled) {
|
|||
VideoCore::g_hw_renderer_enabled = enabled;
|
||||
}
|
||||
|
||||
void GMainWindow::SetShaderJITEnabled(bool enabled) {
|
||||
VideoCore::g_shader_jit_enabled = enabled;
|
||||
}
|
||||
|
||||
void GMainWindow::ToggleWindowMode() {
|
||||
if (ui.action_Single_Window_Mode->isChecked()) {
|
||||
// Render in the main window...
|
||||
|
|
|
@ -70,6 +70,7 @@ private slots:
|
|||
void OnConfigure();
|
||||
void OnDisplayTitleBars(bool);
|
||||
void SetHardwareRendererEnabled(bool);
|
||||
void SetShaderJITEnabled(bool);
|
||||
void ToggleWindowMode();
|
||||
|
||||
private:
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
<addaction name="action_Stop"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_Use_Hardware_Renderer"/>
|
||||
<addaction name="action_Use_Shader_JIT"/>
|
||||
<addaction name="action_Configure"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menu_View">
|
||||
|
@ -153,6 +154,14 @@
|
|||
<string>Use Hardware Renderer</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_Use_Shader_JIT">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use Shader JIT</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_Configure">
|
||||
<property name="text">
|
||||
<string>Configure ...</string>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue