From 0193202964449ba7a6ae46d614a63bf5caa589a7 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 11 Jul 2020 14:26:36 +0100 Subject: configuration: Add settings to enable/disable specific CPU optimizations --- src/yuzu/configuration/configure_cpu.ui | 113 ++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/yuzu/configuration/configure_cpu.ui (limited to 'src/yuzu/configuration/configure_cpu.ui') diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui new file mode 100644 index 000000000..d04cfb2d5 --- /dev/null +++ b/src/yuzu/configuration/configure_cpu.ui @@ -0,0 +1,113 @@ + + + ConfigureCpu + + + + 0 + 0 + 400 + 321 + + + + Form + + + + + + + + Safe CPU Optimizations + + + + + + 1 + + + Keep these enabled. For debugging only. + + + + + + + Enable inline page tables + + + + + + + Enable block linking + + + + + + + Enable return stack buffer + + + + + + + Enable fast dispatcher + + + + + + + Enable context elimination + + + + + + + Enable constant propagation + + + + + + + Enable miscellaneous optimizations + + + + + + + Enable misalignment check reduction + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + -- cgit v1.2.3 From 505aa3a4c1eb2384ab5a46aecf6431db239b74e3 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 11 Jul 2020 16:25:49 +0100 Subject: configure_cpu: Show/Hide debugging options --- src/yuzu/configuration/configure_cpu.ui | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'src/yuzu/configuration/configure_cpu.ui') diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui index d04cfb2d5..27bd4aa42 100644 --- a/src/yuzu/configuration/configure_cpu.ui +++ b/src/yuzu/configuration/configure_cpu.ui @@ -18,6 +18,54 @@ + + General + + + + + + + + Accuracy: + + + + + + + + Accurate + + + + + Debugging Mode (Debugging ONLY) + + + + + + + + + + 1 + + + We recommend setting accuracy to "Accurate". + + + + + + + + + + + + Safe CPU Optimizations -- cgit v1.2.3 From da11a27f42f25a7f24c0b7cece8e499f34880fc8 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 11 Jul 2020 16:26:06 +0100 Subject: configure_cpu: Add tooltips --- src/yuzu/configuration/configure_cpu.ui | 55 ++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) (limited to 'src/yuzu/configuration/configure_cpu.ui') diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui index 27bd4aa42..308e70356 100644 --- a/src/yuzu/configuration/configure_cpu.ui +++ b/src/yuzu/configuration/configure_cpu.ui @@ -76,7 +76,7 @@ 1 - Keep these enabled. For debugging only. + Keep all of these enabled. For debugging only. @@ -85,6 +85,13 @@ Enable inline page tables + + + <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div> + <div style="white-space: nowrap">Enabling it inlines accesses to PageTable::pointers into emitted code.</div> + <div style="white-space: nowrap">Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.</div> + + @@ -92,6 +99,11 @@ Enable block linking + + + <div>This optimization avoids dispatcher lookups by allowing emitted basic blocks to jump directly to other basic blocks if the destination PC is static.</div> + + @@ -99,6 +111,11 @@ Enable return stack buffer + + + <div>This optimization avoids dispatcher lookups by keeping track potential return addresses of BL instructions. This approximates what happens with a return stack buffer on a real CPU.</div> + + @@ -106,6 +123,11 @@ Enable fast dispatcher + + + <div>Enable a two-tiered dispatch system. A faster dispatcher written in assembly has a small MRU cache of jump destinations is used first. If that fails, dispatch falls back to the slower C++ dispatcher.</div> + + @@ -113,6 +135,11 @@ Enable context elimination + + + <div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div> + + @@ -120,6 +147,11 @@ Enable constant propagation + + + <div>Enables IR optimizations that involve constant propagation.</div> + + @@ -127,6 +159,11 @@ Enable miscellaneous optimizations + + + <div>Enables miscellaneous IR optimizations.</div> + + @@ -134,6 +171,12 @@ Enable misalignment check reduction + + + <div style="white-space: nowrap">When enabled, a misalignment is only triggered when an access crosses a page boundary.</div> + <div style="white-space: nowrap">When disabled, a misalignment is triggered on all misaligned accesses.</div> + + @@ -154,6 +197,16 @@ + + + + CPU settings are available only when game is not running. + + + true + + + -- cgit v1.2.3 From a67d00ef31aba1c45dde956b48844f91427963a1 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sun, 12 Jul 2020 12:06:04 +0100 Subject: configure_cpu: Split optimization settings off into Debug tab --- src/yuzu/configuration/configure_cpu.ui | 124 +------------------------------- 1 file changed, 1 insertion(+), 123 deletions(-) (limited to 'src/yuzu/configuration/configure_cpu.ui') diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui index 308e70356..bf6ea79bb 100644 --- a/src/yuzu/configuration/configure_cpu.ui +++ b/src/yuzu/configuration/configure_cpu.ui @@ -40,7 +40,7 @@ - Debugging Mode (Debugging ONLY) + Enable Debug Mode @@ -62,128 +62,6 @@ - - - - - - Safe CPU Optimizations - - - - - - 1 - - - Keep all of these enabled. For debugging only. - - - - - - - Enable inline page tables - - - - <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div> - <div style="white-space: nowrap">Enabling it inlines accesses to PageTable::pointers into emitted code.</div> - <div style="white-space: nowrap">Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.</div> - - - - - - - - Enable block linking - - - - <div>This optimization avoids dispatcher lookups by allowing emitted basic blocks to jump directly to other basic blocks if the destination PC is static.</div> - - - - - - - - Enable return stack buffer - - - - <div>This optimization avoids dispatcher lookups by keeping track potential return addresses of BL instructions. This approximates what happens with a return stack buffer on a real CPU.</div> - - - - - - - - Enable fast dispatcher - - - - <div>Enable a two-tiered dispatch system. A faster dispatcher written in assembly has a small MRU cache of jump destinations is used first. If that fails, dispatch falls back to the slower C++ dispatcher.</div> - - - - - - - - Enable context elimination - - - - <div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div> - - - - - - - - Enable constant propagation - - - - <div>Enables IR optimizations that involve constant propagation.</div> - - - - - - - - Enable miscellaneous optimizations - - - - <div>Enables miscellaneous IR optimizations.</div> - - - - - - - - Enable misalignment check reduction - - - - <div style="white-space: nowrap">When enabled, a misalignment is only triggered when an access crosses a page boundary.</div> - <div style="white-space: nowrap">When disabled, a misalignment is triggered on all misaligned accesses.</div> - - - - - - - - - -- cgit v1.2.3