GT4Recomp 1.3.0-rc9 (test build)
A test release candidate of 1.3.0 that fixes the CoreGS 2.0 picture bugs of rc8 and makes the game about a quarter lighter on
the processor, with the game itself unchanged. It adds no options: updating from rc8 keeps your settings, saves and replays.
Highlights
- About 26% less processor work per frame than rc8: 12.96 -> 9.57 ms per VBlank on the George V Paris lap.
- Five CoreGS 2.0 picture bugs of rc8 fixed: the see-through ghost, Tokyo R246's black blocks, the wrong frame at the start
and end of a race, green screens when a race returns to the menus, and the wheels' motion blur on v2.00. - The same game: the race clock and the whole simulation state stay identical to the previous build, byte for byte, over
three recorded laps.
CoreGS 2.0 picture fixes
Found on the owner's recorded drives and compared with GSdx:
- Time trial ghost: drawn in alternating lines again, as on a real PS2 and GSdx; it was solid.
- Tokyo R246: no more black blocks and broken asphalt. A texture memo skipped textures that a processor-drawn sprite had
changed. - Race start and the fade at the end: no more wrong frame with missing signs and white trees, and no more grey road on El
Capitan. GT4 clears its depth in an unusual way that was not applied. - Back to the 480i menus: no more green screens or stale menus.
- v2.00 wheels: they spin with their blur, as on GSdx.
- A dark rectangle over part of a track sign for one frame (George V Paris lap, VBlank 3750, 2 runs of 12 on rc8 and on the
first rc9 build): it did not appear in 12 runs of this build. Probably the same stale texture identities as Tokyo's blocks;
not proved.
Lighter on the processor
The owner's recorded lap on George V Paris, Spec II, CoreGS 2.0 at 1x, headless, in a player's session: no report on, and CoreGS
2.0's pipelines read from a shader cache, as the launcher keeps them. Milliseconds per VBlank, Ryzen 7 5700X and RX 9060 XT, three
interleaved rounds:
| Build | Process CPU | Wall per VBlank without pacing |
|---|---|---|
| 1.3.0-rc8 | 12.96 ms | 5.99 ms |
| 1.3.0-rc9 | 9.57 ms (-26%) | 5.15 ms (-14%) |
- El Capitan and Tokyo R246, against the build with the picture fixes before the last round of processor work (2 rounds):
7.76 -> 7.10 ms (-8.5%) and 7.43 -> 6.94 ms (-6.6%); wall about -10% on both. - i5-7200U and HD 620: the first part of this work (profile-guided build of the whole game, Spec II's VU0 programs compiled,
the VU0 macro operations over four lanes) measured 33.87 -> 27.64 ms (-18%), headless and without a shader cache. This build was
not measured there.
Where the time went:
- Profile-guided optimisation and ThinLTO of the whole game, where rc8 had them only on the GS libraries: VU AOT code, runtime,
VU1 worker, host loop, and the EE library rebuilt from the same translated units with one compiler and SSE4.1. Trained on full
races of each game. The game's translated code (ee_dispatch) takes 28% less time with it. - The VU programs, regenerated by a faster emitter, with the same results: the VU1 outer product as one vector operation, the
VU0 programs over four lanes at once, partial loads and stores written as whole qwords, and the VU1 CLIP flags compared over the
lanes at once. The VU1 vertex programs take 16% less time and the VU0 programs about a quarter less. - Spec II's VU0 microcode runs compiled: it ran in the exact interpreter on most calls (3.1 million in a lap), because only
v2.00 had its programs generated. - The exact PS2 FPU maths: the VU0 macro operations compute four lanes at once with SSE4.1, and
fp::addandfp::mullost
the branches a processor cannot predict. - CoreGS 2.0: work goes to the graphics card every 64 draw batches instead of 32 on a discrete card (an integrated one keeps
32), and the vertices of each primitive are written at once. - The measuring itself: with the performance report off, a session reads no clock for the F7/F8 scopes, the renderer's stage
times or the draw pass timestamps. With it on, the scopes read the processor's counter directly.
The same game
Against the build with the picture fixes before the last round of processor work:
- Physics: the race clock at every VBlank and the whole simulation state at VBlank 8000, byte for byte, on three recorded laps
(George V Paris, El Capitan, Tokyo R246); the same on the v2.00 night race with 5 AI cars, state at VBlank 10000. - Frames: 24, 35 and 35 of the three laps at 1x; 10 of 10 at 3x (v2.00 night race), 14 of 14 (v2.00 Arcade path), 12 of 12 at
6x (Spec II lap). - Checks while running, against the exact interpreter: 236,448 VU1 samples and 39,731 VU0 samples on Spec II, 355,388 and
56,156 on v2.00, and the MTVU check over 8,032 frames, all with 0 differences. - Exact maths, proved apart: the VU1 CLIP flags over every 32-bit value in each lane;
fp::addandfp::mulover every
combination of exponents and 400 million random pairs; the macro operations against their definition.
Install or update
- From rc8 or another 1.3.0 test build: the launcher offers rc9 on the Beta channel (Settings > General).
- Installer: run
GT4Recomp-Setup-1.3.0-rc9.exe. It keeps existing settings, saves and replays. - Portable: unpack
GT4Recomp-1.3.0-rc9-portable.zipanywhere. Settings, saves and data stay inside the folder. - After the update, Play may compile CoreGS 2.0's shaders once, as after every update.
- Disc images: you need your own: Gran Turismo 4 (USA, v2.00), and your own Spec II 1.10 image for the mod. GT4Recomp ships no
copyrighted game files.
Known issues and limitations in this test build
- The numbers above are automated headless runs on the desktop; the notebook was not measured with this build.
- Stage times without the report: the
[core2]lines ingame.logread 0 for the renderer's stage times, and the F7/F8
report needs Settings' performance report on, as before. - Everything else is unchanged from rc8, including its known issues (for example the showroom at about 30 FPS at 2x on a weak
graphics card).
Requirements
Windows 10 or 11, 64-bit, a processor with SSE4.1. CoreGS 2.0 needs a graphics card with Vulkan 1.2.
Credits and legal
Our code is MIT. GSdx is the PCSX2 GS (GPL-3.0-or-later), downloaded by the launcher and run in its own process; the game
executable contains no GPL code. FSR1 sharpening is written from AMD's published MIT design.