<?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</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>