2020-07-11 09:26:36 -04:00
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ConfigureCpu</class>
<widget class="QWidget" name="ConfigureCpu">
<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">
2020-07-11 11:25:49 -04:00
<property name="title">
<string>General</string>
</property>
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel">
<property name="text">
<string>Accuracy:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="accuracy">
<item>
<property name="text">
<string>Accurate</string>
</property>
</item>
<item>
<property name="text">
<string>Debugging Mode (Debugging ONLY)</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel">
<property name="wordWrap">
<bool>1</bool>
</property>
<property name="text">
<string>We recommend setting accuracy to "Accurate".</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout">
<item>
<widget class="QGroupBox" name="group_safe">
2020-07-11 09:26:36 -04:00
<property name="title">
<string>Safe CPU Optimizations</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QLabel">
<property name="wordWrap">
<bool>1</bool>
</property>
<property name="text">
2020-07-11 11:26:06 -04:00
<string>Keep all of these enabled. For debugging only.</string>
2020-07-11 09:26:36 -04:00
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_page_tables">
<property name="text">
<string>Enable inline page tables</string>
</property>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_block_linking">
<property name="text">
<string>Enable block linking</string>
</property>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_return_stack_buffer">
<property name="text">
<string>Enable return stack buffer</string>
</property>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_fast_dispatcher">
<property name="text">
<string>Enable fast dispatcher</string>
</property>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_context_elimination">
<property name="text">
<string>Enable context elimination</string>
</property>
2020-07-11 11:26:06 -04:00
<property name="toolTip">
<string>
<div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div>
</string>
</property>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_const_prop">
<property name="text">
<string>Enable constant propagation</string>
</property>
2020-07-11 11:26:06 -04:00
<property name="toolTip">
<string>
<div>Enables IR optimizations that involve constant propagation.</div>
</string>
</property>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_misc_ir">
<property name="text">
<string>Enable miscellaneous optimizations</string>
</property>
2020-07-11 11:26:06 -04:00
<property name="toolTip">
<string>
<div>Enables miscellaneous IR optimizations.</div>
</string>
</property>
2020-07-11 09:26:36 -04:00
</widget>
</item>
<item>
<widget class="QCheckBox" name="cpuopt_reduce_misalign_checks">
<property name="text">
<string>Enable misalignment check reduction</string>
</property>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</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>
2020-07-11 11:26:06 -04:00
<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>
2020-07-11 09:26:36 -04:00
</layout>
</widget>
<resources/>
<connections/>
</ui>