PCSX2 Documentation/GSdx Debug: Difference between revisions

m
(→‎Advance debug capabilities: copy/past older quick note)
Line 12: Line 12:
You can represent the emotion engine (CPU) and the graphics synthesiser (GPU) as 2 separates black-boxed blocks linked together with an unique channel. GSdump is a recording of all communications + an initial GS reset state (AKA GS save state).
You can represent the emotion engine (CPU) and the graphics synthesiser (GPU) as 2 separates black-boxed blocks linked together with an unique channel. GSdump is a recording of all communications + an initial GS reset state (AKA GS save state).


Note: edit wiki to see correct format (TODO nice picture)
[[File:GSdump debug.png]]
<pre>
Round 1: recording
------        ------
| EE |  <=>  | GS |
------    v  ------
          |
          v
        GSdump record
 
Round 2: replaying
        ------
    >  | GS |
    ^  ------
    |
    ^
GSdump data</pre>
 


The EE/GS state depends on the user input (from the keyboard/pad). It is quite difficult to replay the same scene, angle of the 3d scene could be different. Some lighting effects could be also different. The GSdump saves a couple of frames to allow constant replay. This way you can compare renderer precisely. For example you can check that pixel (32, 456) of draw call 45 is exactly the same colour. If the value is slightly different it is likely a rounding bug. If the value is completely different, it is a bug.
The EE/GS state depends on the user input (from the keyboard/pad). It is quite difficult to replay the same scene, angle of the 3d scene could be different. Some lighting effects could be also different. The GSdump saves a couple of frames to allow constant replay. This way you can compare renderer precisely. For example you can check that pixel (32, 456) of draw call 45 is exactly the same colour. If the value is slightly different it is likely a rounding bug. If the value is completely different, it is a bug.
ninja
1,229

edits