<?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>400</width> <height>321</height> </rect> </property> <property name="windowTitle"> <string>Form</string> </property> <layout class="QVBoxLayout"> <item> <layout class="QVBoxLayout"> <item> <widget class="QGroupBox"> <property name="title"> <string>Toggle CPU Optimizations</string> </property> <layout class="QVBoxLayout"> <item> <widget class="QLabel"> <property name="wordWrap"> <bool>1</bool> </property> <property name="text"> <string> <div> <b>For debugging only.</b> <br> If you're not sure what these do, keep all of these enabled. <br> These settings only take effect when CPU Accuracy is "Debug Mode". </div> </string> </property> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_page_tables"> <property name="text"> <string>Enable inline page tables</string> </property> <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> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_block_linking"> <property name="text"> <string>Enable block linking</string> </property> <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> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_return_stack_buffer"> <property name="text"> <string>Enable return stack buffer</string> </property> <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> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_fast_dispatcher"> <property name="text"> <string>Enable fast dispatcher</string> </property> <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> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_context_elimination"> <property name="text"> <string>Enable context elimination</string> </property> <property name="toolTip"> <string> <div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div> </string> </property> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_const_prop"> <property name="text"> <string>Enable constant propagation</string> </property> <property name="toolTip"> <string> <div>Enables IR optimizations that involve constant propagation.</div> </string> </property> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_misc_ir"> <property name="text"> <string>Enable miscellaneous optimizations</string> </property> <property name="toolTip"> <string> <div>Enables miscellaneous IR optimizations.</div> </string> </property> </widget> </item> <item> <widget class="QCheckBox" name="cpuopt_reduce_misalign_checks"> <property name="text"> <string>Enable misalignment check reduction</string> </property> <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> </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>