configure_cpu_debug.ui 6.7 KB

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