| | <?xml version="1.0" encoding="UTF-8"?> |
| | <ui version="4.0"> |
| | <class>ConfigureCpuDebug</class> |
| | <widget class="QWidget" name="ConfigureCpuDebug"> |
| | <property name="geometry"> |
| | <rect> |
| | <x>0</x> |
| | <y>0</y> |
| | <width>592</width> |
| | <height>503</height> |
| | </rect> |
| | </property> |
| | <property name="windowTitle"> |
| | <string>Form</string> |
| | </property> |
| | <property name="accessibleName"> |
| | <string>CPU</string> |
| | </property> |
| | <layout class="QVBoxLayout"> |
| | <item> |
| | <layout class="QVBoxLayout"> |
| | <item> |
| | <widget class="QGroupBox" name="groupBox"> |
| | <property name="title"> |
| | <string>Toggle CPU Optimizations</string> |
| | </property> |
| | <layout class="QVBoxLayout"> |
| | <item> |
| | <widget class="QLabel" name="label"> |
| | <property name="text"> |
| | <string><html><head/><body><p><span style=" font-weight:600;">For debugging only.</span><br/>If you're not sure what these do, keep all of these enabled. <br/>These settings, when disabled, only take effect when CPU Debugging is enabled. </p></body></html></string> |
| | </property> |
| | <property name="wordWrap"> |
| | <bool>false</bool> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_page_tables"> |
| | <property name="toolTip"> |
| | <string> |
| | <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> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable inline page tables</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_block_linking"> |
| | <property name="toolTip"> |
| | <string> |
| | <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> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable block linking</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_return_stack_buffer"> |
| | <property name="toolTip"> |
| | <string> |
| | <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> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable return stack buffer</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_fast_dispatcher"> |
| | <property name="toolTip"> |
| | <string> |
| | <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> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable fast dispatcher</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_context_elimination"> |
| | <property name="toolTip"> |
| | <string> |
| | <div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable context elimination</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_const_prop"> |
| | <property name="toolTip"> |
| | <string> |
| | <div>Enables IR optimizations that involve constant propagation.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable constant propagation</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_misc_ir"> |
| | <property name="toolTip"> |
| | <string> |
| | <div>Enables miscellaneous IR optimizations.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable miscellaneous optimizations</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_reduce_misalign_checks"> |
| | <property name="toolTip"> |
| | <string> |
| | <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> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable misalignment check reduction</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_fastmem"> |
| | <property name="toolTip"> |
| | <string> |
| | <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div> |
| | <div style="white-space: nowrap">Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.</div> |
| | <div style="white-space: nowrap">Disabling this forces all memory accesses to use Software MMU Emulation.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable Host MMU Emulation (general memory instructions)</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_fastmem_exclusives"> |
| | <property name="toolTip"> |
| | <string> |
| | <div style="white-space: nowrap">This optimization speeds up exclusive memory accesses by the guest program.</div> |
| | <div style="white-space: nowrap">Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.</div> |
| | <div style="white-space: nowrap">Disabling this forces all exclusive memory accesses to use Software MMU Emulation.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable Host MMU Emulation (exclusive memory instructions)</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_recompile_exclusives"> |
| | <property name="toolTip"> |
| | <string> |
| | <div style="white-space: nowrap">This optimization speeds up exclusive memory accesses by the guest program.</div> |
| | <div style="white-space: nowrap">Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable recompilation of exclusive memory instructions</string> |
| | </property> |
| | </widget> |
| | </item> |
| | <item> |
| | <widget class="QCheckBox" name="cpuopt_ignore_memory_aborts"> |
| | <property name="toolTip"> |
| | <string> |
| | <div style="white-space: nowrap">This optimization speeds up memory accesses by allowing invalid memory accesses to succeed.</div> |
| | <div style="white-space: nowrap">Enabling it reduces the overhead of all memory accesses and has no impact on programs that don't access invalid memory.</div> |
| | </string> |
| | </property> |
| | <property name="text"> |
| | <string>Enable fallbacks for invalid memory accesses</string> |
| | </property> |
| | </widget> |
| | </item> |
| | </layout> |
| | </widget> |
| | </item> |
| | </layout> |
| | </item> |
| | <item> |
| | <spacer name="verticalSpacer"> |
| | <property name="orientation"> |
| | <enum>Qt::Vertical</enum> |
| | </property> |
| | <property name="sizeHint" stdset="0"> |
| | <size> |
| | <width>20</width> |
| | <height>40</height> |
| | </size> |
| | </property> |
| | </spacer> |
| | </item> |
| | <item> |
| | <widget class="QLabel" name="label_disable_info"> |
| | <property name="text"> |
| | <string>CPU settings are available only when game is not running.</string> |
| | </property> |
| | <property name="wordWrap"> |
| | <bool>true</bool> |
| | </property> |
| | </widget> |
| | </item> |
| | </layout> |
| | </widget> |
| | <resources/> |
| | <connections/> |
| | </ui> |
| |
|