2020-07-11 14:26:36 +01: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 16:25:49 +01: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 14:26:36 +01: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 16:26:06 +01:00
<string > Keep all of these enabled. For debugging only.</string>
2020-07-11 14:26:36 +01: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 16:26:06 +01: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 14:26:36 +01:00
</widget>
</item>
<item >
<widget class= "QCheckBox" name= "cpuopt_block_linking" >
<property name= "text" >
<string > Enable block linking</string>
</property>
2020-07-11 16:26:06 +01: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 14:26:36 +01: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 16:26:06 +01: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 14:26:36 +01:00
</widget>
</item>
<item >
<widget class= "QCheckBox" name= "cpuopt_fast_dispatcher" >
<property name= "text" >
<string > Enable fast dispatcher</string>
</property>
2020-07-11 16:26:06 +01: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 14:26:36 +01:00
</widget>
</item>
<item >
<widget class= "QCheckBox" name= "cpuopt_context_elimination" >
<property name= "text" >
<string > Enable context elimination</string>
</property>
2020-07-11 16:26:06 +01: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 14:26:36 +01:00
</widget>
</item>
<item >
<widget class= "QCheckBox" name= "cpuopt_const_prop" >
<property name= "text" >
<string > Enable constant propagation</string>
</property>
2020-07-11 16:26:06 +01:00
<property name= "toolTip" >
<string >
< div> Enables IR optimizations that involve constant propagation.< /div>
</string>
</property>
2020-07-11 14:26:36 +01:00
</widget>
</item>
<item >
<widget class= "QCheckBox" name= "cpuopt_misc_ir" >
<property name= "text" >
<string > Enable miscellaneous optimizations</string>
</property>
2020-07-11 16:26:06 +01:00
<property name= "toolTip" >
<string >
< div> Enables miscellaneous IR optimizations.< /div>
</string>
</property>
2020-07-11 14:26:36 +01: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 16:26:06 +01: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 14:26:36 +01: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 16:26:06 +01: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 14:26:36 +01:00
</layout>
</widget>
<resources />
<connections />
</ui>