aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_cpu_debug.ui
blob: 6e635bb2f41b01538d6f6331f039e0b7eedd038c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>ConfigureCpuDebug</class>
 <widget class="QWidget" name="ConfigureCpuDebug">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>592</width>
    <height>503</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <property name="accessibleName">
   <string>CPU</string>
  </property>
  <layout class="QVBoxLayout">
   <item>
    <layout class="QVBoxLayout">
     <item>
      <widget class="QGroupBox" name="groupBox">
       <property name="title">
        <string>Toggle CPU Optimizations</string>
       </property>
       <layout class="QVBoxLayout">
        <item>
         <widget class="QLabel" name="label">
          <property name="text">
           <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>
          </property>
          <property name="wordWrap">
           <bool>false</bool>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_page_tables">
          <property name="toolTip">
           <string>
            &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
            &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it inlines accesses to PageTable::pointers into emitted code.&lt;/div&gt;
            &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;
           </string>
          </property>
          <property name="text">
           <string>Enable inline page tables</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_block_linking">
          <property name="toolTip">
           <string>
            &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;
           </string>
          </property>
          <property name="text">
           <string>Enable block linking</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_return_stack_buffer">
          <property name="toolTip">
           <string>
            &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;
           </string>
          </property>
          <property name="text">
           <string>Enable return stack buffer</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_fast_dispatcher">
          <property name="toolTip">
           <string>
            &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;
           </string>
          </property>
          <property name="text">
           <string>Enable fast dispatcher</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_context_elimination">
          <property name="toolTip">
           <string>
            &lt;div&gt;Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.&lt;/div&gt;
           </string>
          </property>
          <property name="text">
           <string>Enable context elimination</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_const_prop">
          <property name="toolTip">
           <string>
            &lt;div&gt;Enables IR optimizations that involve constant propagation.&lt;/div&gt;
           </string>
          </property>
          <property name="text">
           <string>Enable constant propagation</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_misc_ir">
          <property name="toolTip">
           <string>
            &lt;div&gt;Enables miscellaneous IR optimizations.&lt;/div&gt;
           </string>
          </property>
          <property name="text">
           <string>Enable miscellaneous optimizations</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_reduce_misalign_checks">
          <property name="toolTip">
           <string>
            &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;
            &lt;div style=&quot;white-space: nowrap&quot;&gt;When disabled, a misalignment is triggered on all misaligned accesses.&lt;/div&gt;
           </string>
          </property>
          <property name="text">
           <string>Enable misalignment check reduction</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QCheckBox" name="cpuopt_fastmem">
          <property name="toolTip">
           <string>
            &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
            &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;
            &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
           </string>
          </property>
          <property name="text">
           <string>Enable Host MMU Emulation</string>
          </property>
         </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>
   <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>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>