From 76f94940cd44e99ef2f8daa4674ae05ac619e712 Mon Sep 17 00:00:00 2001 From: msuih Date: Mon, 10 Dec 2018 00:10:09 +0000 Subject: [PATCH] Add strict texture flushing to debug options --- rpcs3/Json/tooltips.json | 3 ++- rpcs3/rpcs3qt/emu_settings.h | 2 ++ rpcs3/rpcs3qt/settings_dialog.cpp | 3 +++ rpcs3/rpcs3qt/settings_dialog.ui | 7 +++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index c874915192..c502dffae8 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -58,7 +58,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.", + "strictTextureFlushing": "Forces texture flushing even in situations where it is not necessary/correct. Known to cause visual artifacts, but useful for debugging certain texture cache issues." }, "emulator": { "misc": { diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index 9f4722e145..0b35dd24b1 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -70,6 +70,7 @@ public: DisableVertexCache, DisableOcclusionQueries, DisableFIFOReordering, + StrictTextureFlushing, AnisotropicFilterOverride, ResolutionScale, MinimumScalableDimension, @@ -269,6 +270,7 @@ private: { DisableVertexCache, { "Video", "Disable Vertex Cache"}}, { DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries"}}, { DisableFIFOReordering, { "Video", "Disable FIFO Reordering"}}, + { StrictTextureFlushing, { "Video", "Strict Texture Flushing"}}, { ForceCPUBlitEmulation, { "Video", "Force CPU Blit"}}, { DisableOnDiskShaderCache, { "Video", "Disable On-Disk Shader Cache"}}, { DisableVulkanMemAllocator, { "Video", "Disable Vulkan Memory Allocator"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index a4d9a7fe11..adf9ed758e 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1205,6 +1205,9 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: xemu_settings->EnhanceCheckBox(ui->disableFIFOReordering, emu_settings::DisableFIFOReordering); SubscribeTooltip(ui->disableFIFOReordering, json_debug["disableFIFOReordering"].toString()); + xemu_settings->EnhanceCheckBox(ui->strictTextureFlushing, emu_settings::StrictTextureFlushing); + SubscribeTooltip(ui->strictTextureFlushing, json_debug["strictTextureFlushing"].toString()); + // Checkboxes: core debug options xemu_settings->EnhanceCheckBox(ui->ppuDebug, emu_settings::PPUDebug); SubscribeTooltip(ui->ppuDebug, json_debug["ppuDebug"].toString()); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 97b387c143..76ddbd522f 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2088,6 +2088,13 @@ + + + + Strict Texture Flushing + + +