configure_cpu_debug.ui 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ui version="4.0">
  3. <class>ConfigureCpuDebug</class>
  4. <widget class="QWidget" name="ConfigureCpuDebug">
  5. <property name="geometry">
  6. <rect>
  7. <x>0</x>
  8. <y>0</y>
  9. <width>592</width>
  10. <height>503</height>
  11. </rect>
  12. </property>
  13. <property name="windowTitle">
  14. <string>Form</string>
  15. </property>
  16. <layout class="QVBoxLayout">
  17. <item>
  18. <layout class="QVBoxLayout">
  19. <item>
  20. <widget class="QGroupBox" name="groupBox">
  21. <property name="title">
  22. <string>Toggle CPU Optimizations</string>
  23. </property>
  24. <layout class="QVBoxLayout">
  25. <item>
  26. <widget class="QLabel" name="label">
  27. <property name="text">
  28. <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;For debugging only.&lt;/span&gt;&lt;br/&gt;If you're not sure what these do, keep all of these enabled. &lt;br/&gt;These settings, when disabled, only take effect when CPU Debugging is enabled. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
  29. </property>
  30. <property name="wordWrap">
  31. <bool>false</bool>
  32. </property>
  33. </widget>
  34. </item>
  35. <item>
  36. <widget class="QCheckBox" name="cpuopt_page_tables">
  37. <property name="toolTip">
  38. <string>
  39. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
  40. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it inlines accesses to PageTable::pointers into emitted code.&lt;/div&gt;
  41. &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.&lt;/div&gt;
  42. </string>
  43. </property>
  44. <property name="text">
  45. <string>Enable inline page tables</string>
  46. </property>
  47. </widget>
  48. </item>
  49. <item>
  50. <widget class="QCheckBox" name="cpuopt_block_linking">
  51. <property name="toolTip">
  52. <string>
  53. &lt;div&gt;This optimization avoids dispatcher lookups by allowing emitted basic blocks to jump directly to other basic blocks if the destination PC is static.&lt;/div&gt;
  54. </string>
  55. </property>
  56. <property name="text">
  57. <string>Enable block linking</string>
  58. </property>
  59. </widget>
  60. </item>
  61. <item>
  62. <widget class="QCheckBox" name="cpuopt_return_stack_buffer">
  63. <property name="toolTip">
  64. <string>
  65. &lt;div&gt;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.&lt;/div&gt;
  66. </string>
  67. </property>
  68. <property name="text">
  69. <string>Enable return stack buffer</string>
  70. </property>
  71. </widget>
  72. </item>
  73. <item>
  74. <widget class="QCheckBox" name="cpuopt_fast_dispatcher">
  75. <property name="toolTip">
  76. <string>
  77. &lt;div&gt;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.&lt;/div&gt;
  78. </string>
  79. </property>
  80. <property name="text">
  81. <string>Enable fast dispatcher</string>
  82. </property>
  83. </widget>
  84. </item>
  85. <item>
  86. <widget class="QCheckBox" name="cpuopt_context_elimination">
  87. <property name="toolTip">
  88. <string>
  89. &lt;div&gt;Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.&lt;/div&gt;
  90. </string>
  91. </property>
  92. <property name="text">
  93. <string>Enable context elimination</string>
  94. </property>
  95. </widget>
  96. </item>
  97. <item>
  98. <widget class="QCheckBox" name="cpuopt_const_prop">
  99. <property name="toolTip">
  100. <string>
  101. &lt;div&gt;Enables IR optimizations that involve constant propagation.&lt;/div&gt;
  102. </string>
  103. </property>
  104. <property name="text">
  105. <string>Enable constant propagation</string>
  106. </property>
  107. </widget>
  108. </item>
  109. <item>
  110. <widget class="QCheckBox" name="cpuopt_misc_ir">
  111. <property name="toolTip">
  112. <string>
  113. &lt;div&gt;Enables miscellaneous IR optimizations.&lt;/div&gt;
  114. </string>
  115. </property>
  116. <property name="text">
  117. <string>Enable miscellaneous optimizations</string>
  118. </property>
  119. </widget>
  120. </item>
  121. <item>
  122. <widget class="QCheckBox" name="cpuopt_reduce_misalign_checks">
  123. <property name="toolTip">
  124. <string>
  125. &lt;div style=&quot;white-space: nowrap&quot;&gt;When enabled, a misalignment is only triggered when an access crosses a page boundary.&lt;/div&gt;
  126. &lt;div style=&quot;white-space: nowrap&quot;&gt;When disabled, a misalignment is triggered on all misaligned accesses.&lt;/div&gt;
  127. </string>
  128. </property>
  129. <property name="text">
  130. <string>Enable misalignment check reduction</string>
  131. </property>
  132. </widget>
  133. </item>
  134. <item>
  135. <widget class="QCheckBox" name="cpuopt_fastmem">
  136. <property name="toolTip">
  137. <string>
  138. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
  139. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
  140. &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
  141. </string>
  142. </property>
  143. <property name="text">
  144. <string>Enable Host MMU Emulation</string>
  145. </property>
  146. </widget>
  147. </item>
  148. </layout>
  149. </widget>
  150. </item>
  151. </layout>
  152. </item>
  153. <item>
  154. <spacer name="verticalSpacer">
  155. <property name="orientation">
  156. <enum>Qt::Vertical</enum>
  157. </property>
  158. <property name="sizeHint" stdset="0">
  159. <size>
  160. <width>20</width>
  161. <height>40</height>
  162. </size>
  163. </property>
  164. </spacer>
  165. </item>
  166. <item>
  167. <widget class="QLabel" name="label_disable_info">
  168. <property name="text">
  169. <string>CPU settings are available only when game is not running.</string>
  170. </property>
  171. <property name="wordWrap">
  172. <bool>true</bool>
  173. </property>
  174. </widget>
  175. </item>
  176. </layout>
  177. </widget>
  178. <resources/>
  179. <connections/>
  180. </ui>