Skip to content

Commit

Permalink
qt: Add async shaders toggle to the UI
Browse files Browse the repository at this point in the history
  • Loading branch information
kd-11 committed Jul 14, 2018
1 parent 9fb7fba commit 7b95a43
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 30 deletions.
3 changes: 2 additions & 1 deletion rpcs3/Json/tooltips.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@
"forceCpuBlitEmulation": "Forces emulation of all blit and image manipulation operations on the CPU.\nRequires 'Write Color Buffers' option to also be enabled in most cases to avoid missing graphics.\nSignificantly degrades performance but is more accurate in some cases.\nThis setting overrides the 'GPU texture scaling' option.",
"disableOnDiskShaderCache": "Disables the loading and saving of shaders from and to the shader cache in the data directory.",
"disableVulkanMemAllocator": "Disables the custom Vulkan memory allocator and reverts to direct calls to VkAllocateMemory/VkFreeMemory.",
"disableFIFOReordering": "Disables RSX FIFO optimizations completely. Draws are processed as they are received by the DMA puller."
"disableFIFOReordering": "Disables RSX FIFO optimizations completely. Draws are processed as they are received by the DMA puller.",
"disableAsyncShaders": "Disables asynchronous shader compilation.\nFixes missing graphics while shaders are compiling but introduces stuttering.\nDisable if you do not want to deal with graphics pop-in, or for testing before filing any bug reports."
},
"emulator": {
"misc": {
Expand Down
58 changes: 30 additions & 28 deletions rpcs3/rpcs3qt/emu_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class emu_settings : public QObject
ForceCPUBlitEmulation,
DisableOnDiskShaderCache,
DisableVulkanMemAllocator,
DisableAsyncShaderCompiler,

// Performance Overlay
PerfOverlayEnabled,
Expand Down Expand Up @@ -222,34 +223,35 @@ public Q_SLOTS:
{ SPUVerification, { "Core", "SPU Verification"}},

// Graphics Tab
{ Renderer, { "Video", "Renderer"}},
{ Resolution, { "Video", "Resolution"}},
{ AspectRatio, { "Video", "Aspect ratio"}},
{ FrameLimit, { "Video", "Frame limit"}},
{ LogShaderPrograms, { "Video", "Log shader programs"}},
{ WriteDepthBuffer, { "Video", "Write Depth Buffer"}},
{ WriteColorBuffers, { "Video", "Write Color Buffers"}},
{ ReadColorBuffers, { "Video", "Read Color Buffers"}},
{ ReadDepthBuffer, { "Video", "Read Depth Buffer"}},
{ VSync, { "Video", "VSync"}},
{ DebugOutput, { "Video", "Debug output"}},
{ DebugOverlay, { "Video", "Debug overlay"}},
{ LegacyBuffers, { "Video", "Use Legacy OpenGL Buffers"}},
{ GPUTextureScaling, { "Video", "Use GPU texture scaling"}},
{ StretchToDisplayArea, { "Video", "Stretch To Display Area"}},
{ ForceHighpZ, { "Video", "Force High Precision Z buffer"}},
{ StrictRenderingMode, { "Video", "Strict Rendering Mode"}},
{ DisableVertexCache, { "Video", "Disable Vertex Cache"}},
{ DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries" }},
{ DisableFIFOReordering, { "Video", "Disable FIFO Reordering" }},
{ ForceCPUBlitEmulation, { "Video", "Force CPU Blit" }},
{ DisableOnDiskShaderCache, { "Video", "Disable On-Disk Shader Cache"}},
{ DisableVulkanMemAllocator,{ "Video", "Disable Vulkan Memory Allocator" }},
{ AnisotropicFilterOverride,{ "Video", "Anisotropic Filter Override" }},
{ ResolutionScale, { "Video", "Resolution Scale" }},
{ MinimumScalableDimension, { "Video", "Minimum Scalable Dimension" }},
{ D3D12Adapter, { "Video", "D3D12", "Adapter"}},
{ VulkanAdapter, { "Video", "Vulkan", "Adapter"}},
{ Renderer, { "Video", "Renderer"}},
{ Resolution, { "Video", "Resolution"}},
{ AspectRatio, { "Video", "Aspect ratio"}},
{ FrameLimit, { "Video", "Frame limit"}},
{ LogShaderPrograms, { "Video", "Log shader programs"}},
{ WriteDepthBuffer, { "Video", "Write Depth Buffer"}},
{ WriteColorBuffers, { "Video", "Write Color Buffers"}},
{ ReadColorBuffers, { "Video", "Read Color Buffers"}},
{ ReadDepthBuffer, { "Video", "Read Depth Buffer"}},
{ VSync, { "Video", "VSync"}},
{ DebugOutput, { "Video", "Debug output"}},
{ DebugOverlay, { "Video", "Debug overlay"}},
{ LegacyBuffers, { "Video", "Use Legacy OpenGL Buffers"}},
{ GPUTextureScaling, { "Video", "Use GPU texture scaling"}},
{ StretchToDisplayArea, { "Video", "Stretch To Display Area"}},
{ ForceHighpZ, { "Video", "Force High Precision Z buffer"}},
{ StrictRenderingMode, { "Video", "Strict Rendering Mode"}},
{ DisableVertexCache, { "Video", "Disable Vertex Cache"}},
{ DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries"}},
{ DisableFIFOReordering, { "Video", "Disable FIFO Reordering"}},
{ ForceCPUBlitEmulation, { "Video", "Force CPU Blit"}},
{ DisableOnDiskShaderCache, { "Video", "Disable On-Disk Shader Cache"}},
{ DisableVulkanMemAllocator, { "Video", "Disable Vulkan Memory Allocator"}},
{ DisableAsyncShaderCompiler, { "Video", "Disable Asynchronous Shader Compiler"}},
{ AnisotropicFilterOverride, { "Video", "Anisotropic Filter Override"}},
{ ResolutionScale, { "Video", "Resolution Scale"}},
{ MinimumScalableDimension, { "Video", "Minimum Scalable Dimension"}},
{ D3D12Adapter, { "Video", "D3D12", "Adapter"}},
{ VulkanAdapter, { "Video", "Vulkan", "Adapter"}},

// Performance Overlay
{ PerfOverlayEnabled, { "Video", "Performance Overlay", "Enabled" } },
Expand Down
3 changes: 3 additions & 0 deletions rpcs3/rpcs3qt/settings_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,9 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
xemu_settings->EnhanceCheckBox(ui->disableVertexCache, emu_settings::DisableVertexCache);
SubscribeTooltip(ui->disableVertexCache, json_gpu_main["disableVertexCache"].toString());

xemu_settings->EnhanceCheckBox(ui->disableAsyncShaders, emu_settings::DisableAsyncShaderCompiler);
SubscribeTooltip(ui->disableAsyncShaders, json_gpu_main["disableAsyncShaders"].toString());

xemu_settings->EnhanceCheckBox(ui->scrictModeRendering, emu_settings::StrictRenderingMode);
SubscribeTooltip(ui->scrictModeRendering, json_gpu_main["scrictModeRendering"].toString());
connect(ui->scrictModeRendering, &QCheckBox::clicked, [=](bool checked)
Expand Down
9 changes: 8 additions & 1 deletion rpcs3/rpcs3qt/settings_dialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="coreTab">
<attribute name="title">
Expand Down Expand Up @@ -698,6 +698,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="disableAsyncShaders">
<property name="text">
<string>Disable Async Shader Compiler</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_12">
<property name="orientation">
Expand Down

0 comments on commit 7b95a43

Please sign in to comment.