configure_cpu_debug.ui 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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. <property name="accessibleName">
  17. <string>CPU</string>
  18. </property>
  19. <layout class="QVBoxLayout">
  20. <item>
  21. <layout class="QVBoxLayout">
  22. <item>
  23. <widget class="QGroupBox" name="groupBox">
  24. <property name="title">
  25. <string>Toggle CPU Optimizations</string>
  26. </property>
  27. <layout class="QVBoxLayout">
  28. <item>
  29. <widget class="QLabel" name="label">
  30. <property name="text">
  31. <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>
  32. </property>
  33. <property name="wordWrap">
  34. <bool>false</bool>
  35. </property>
  36. </widget>
  37. </item>
  38. <item>
  39. <widget class="QCheckBox" name="cpuopt_page_tables">
  40. <property name="toolTip">
  41. <string>
  42. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
  43. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it inlines accesses to PageTable::pointers into emitted code.&lt;/div&gt;
  44. &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;
  45. </string>
  46. </property>
  47. <property name="text">
  48. <string>Enable inline page tables</string>
  49. </property>
  50. </widget>
  51. </item>
  52. <item>
  53. <widget class="QCheckBox" name="cpuopt_block_linking">
  54. <property name="toolTip">
  55. <string>
  56. &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;
  57. </string>
  58. </property>
  59. <property name="text">
  60. <string>Enable block linking</string>
  61. </property>
  62. </widget>
  63. </item>
  64. <item>
  65. <widget class="QCheckBox" name="cpuopt_return_stack_buffer">
  66. <property name="toolTip">
  67. <string>
  68. &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;
  69. </string>
  70. </property>
  71. <property name="text">
  72. <string>Enable return stack buffer</string>
  73. </property>
  74. </widget>
  75. </item>
  76. <item>
  77. <widget class="QCheckBox" name="cpuopt_fast_dispatcher">
  78. <property name="toolTip">
  79. <string>
  80. &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;
  81. </string>
  82. </property>
  83. <property name="text">
  84. <string>Enable fast dispatcher</string>
  85. </property>
  86. </widget>
  87. </item>
  88. <item>
  89. <widget class="QCheckBox" name="cpuopt_context_elimination">
  90. <property name="toolTip">
  91. <string>
  92. &lt;div&gt;Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.&lt;/div&gt;
  93. </string>
  94. </property>
  95. <property name="text">
  96. <string>Enable context elimination</string>
  97. </property>
  98. </widget>
  99. </item>
  100. <item>
  101. <widget class="QCheckBox" name="cpuopt_const_prop">
  102. <property name="toolTip">
  103. <string>
  104. &lt;div&gt;Enables IR optimizations that involve constant propagation.&lt;/div&gt;
  105. </string>
  106. </property>
  107. <property name="text">
  108. <string>Enable constant propagation</string>
  109. </property>
  110. </widget>
  111. </item>
  112. <item>
  113. <widget class="QCheckBox" name="cpuopt_misc_ir">
  114. <property name="toolTip">
  115. <string>
  116. &lt;div&gt;Enables miscellaneous IR optimizations.&lt;/div&gt;
  117. </string>
  118. </property>
  119. <property name="text">
  120. <string>Enable miscellaneous optimizations</string>
  121. </property>
  122. </widget>
  123. </item>
  124. <item>
  125. <widget class="QCheckBox" name="cpuopt_reduce_misalign_checks">
  126. <property name="toolTip">
  127. <string>
  128. &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;
  129. &lt;div style=&quot;white-space: nowrap&quot;&gt;When disabled, a misalignment is triggered on all misaligned accesses.&lt;/div&gt;
  130. </string>
  131. </property>
  132. <property name="text">
  133. <string>Enable misalignment check reduction</string>
  134. </property>
  135. </widget>
  136. </item>
  137. <item>
  138. <widget class="QCheckBox" name="cpuopt_fastmem">
  139. <property name="toolTip">
  140. <string>
  141. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
  142. &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;
  143. &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
  144. </string>
  145. </property>
  146. <property name="text">
  147. <string>Enable Host MMU Emulation (general memory instructions)</string>
  148. </property>
  149. </widget>
  150. </item>
  151. <item>
  152. <widget class="QCheckBox" name="cpuopt_fastmem_exclusives">
  153. <property name="toolTip">
  154. <string>
  155. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
  156. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
  157. &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
  158. </string>
  159. </property>
  160. <property name="text">
  161. <string>Enable Host MMU Emulation (exclusive memory instructions)</string>
  162. </property>
  163. </widget>
  164. </item>
  165. <item>
  166. <widget class="QCheckBox" name="cpuopt_recompile_exclusives">
  167. <property name="toolTip">
  168. <string>
  169. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
  170. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
  171. </string>
  172. </property>
  173. <property name="text">
  174. <string>Enable recompilation of exclusive memory instructions</string>
  175. </property>
  176. </widget>
  177. </item>
  178. <item>
  179. <widget class="QCheckBox" name="cpuopt_ignore_memory_aborts">
  180. <property name="toolTip">
  181. <string>
  182. &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by allowing invalid memory accesses to succeed.&lt;/div&gt;
  183. &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of all memory accesses and has no impact on programs that don't access invalid memory.&lt;/div&gt;
  184. </string>
  185. </property>
  186. <property name="text">
  187. <string>Enable fallbacks for invalid memory accesses</string>
  188. </property>
  189. </widget>
  190. </item>
  191. </layout>
  192. </widget>
  193. </item>
  194. </layout>
  195. </item>
  196. <item>
  197. <spacer name="verticalSpacer">
  198. <property name="orientation">
  199. <enum>Qt::Vertical</enum>
  200. </property>
  201. <property name="sizeHint" stdset="0">
  202. <size>
  203. <width>20</width>
  204. <height>40</height>
  205. </size>
  206. </property>
  207. </spacer>
  208. </item>
  209. <item>
  210. <widget class="QLabel" name="label_disable_info">
  211. <property name="text">
  212. <string>CPU settings are available only when game is not running.</string>
  213. </property>
  214. <property name="wordWrap">
  215. <bool>true</bool>
  216. </property>
  217. </widget>
  218. </item>
  219. </layout>
  220. </widget>
  221. <resources/>
  222. <connections/>
  223. </ui>