mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 22:00:05 +00:00 
			
		
		
		
	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