Project

General

Profile

Actions

Emulator Issues #4844

closed

Testing/Review request for new-shadercache-uids

Added by NeoBrainX about 13 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
Category:
GFX
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Name of branch:
new-shadercache-uids

Purpose of code changes on this branch:
Reduce stuttering caused by redundant shader compilations and possibly fix some obscure graphical glitches.
The current pixel shader UID generator has two problems: a) It often assigns different UIDs to equivalent pipeline states (i.e. states which are emulated with the same shader code) b) In some cases, it assigned the same UID to different pipeline states (i.e. making us emulate the current state with a wrong shader).
This branch addresses both problems: It reduces the number of redundant shader compilations (case a) almost to a minimum (it's only one redundant compilations in the games I tested, compared to up to roughly 600 before). This should be very noticeable in games like F-Zero GX which supposedly have been very pixel shader intensive before. But it also reduced stuttering in many games perceptibly (only affects "loading scenes", for example the opening screen of Super Mario Sunshine or the menu/start of a race of Mario Kart Wii).
Additionally, this branches fixes case b. I'm not sure if any games where actually affected by this, it certainly is possible, though.

Another addition of this branch is the graphics setting "Enable Shader Debugging" (intentionally without a GUI option) which will make sure case b never gets hit with the new code (you never know ;)). I.e. if this branch causes any regressions, it's almost trivial to figure out what's broken.

When reviewing my code changes, please focus on:
I'm pretty confident that this doesn't break anything (and if it does, it's fairly trivial to debug with the EnableShaderDebugging setting mentioned above), so I don't really need any further testing for regressions.
Instead, I'd rather like people to test any games out there which show graphics glitches - i.e. all kinds of graphical issues apart from crashes or blackscreens. It's hard to describe, just take all those games with glitches which need less than 10 minutes to check ;)
For example, some Sonic game had various lighting issues IIRC, that would be an example.

Apart from that, I'd like to head about any differences in stuttering / game speed in particular about Red Steel 2, F-Zero GX, SSX Blur and any other games which suffer from heavy stuttering.

After the review, please merge to branch:
I'll just merge it myself to master once I've got enough feedback ;)
(still want to change a few little things before merging)

Actions

Also available in: Atom PDF