rsx: Shader decompiler improvements#16501
Conversation
|
Are testers still needed? I could help if so, just lemme know what to do. |
@BrentPeterson2028 Just try out random games and check that they still work. |
|
I tested Far Cry 3 and I seem to be getting a bunch of fatal errors RPCS3-PR.log |
|
Thanks. |
|
I tested 4 Games on fedora. 1.Call of Duty Black Ops splitscreen- works the same as before with the black flickering on the textures, so no change. It is hard to do an RSX capture of this because it is so quick. |
|
I've reworked the way writes are tracked, it shouldn't crash anymore. Please retest. |
|
Same error, Far Cry 3 tested with a clean cache |
|
Remaining crashes should be fixed now. I'll fix the non-windows builds later. |
All good now I'll keep testing more stuff |
|
I tested Killzone 2, I played a skirmish match and everything was stable as on the current build. |
|
I also made some testing with my usual games (KZ2, KZ2, R1, R2, R3 etc.). With latest fixes it is ok |
|
@kd-11 Hi, sorry for offtopic, please write me an e-mail if necessary, I don't know how to open Discord at the moment. |
No problem. |
- Always collapse register writes when exporting FS outputs
- Fixes a crash when RSXVertexProgram is default-initialized. This probably also fixes a whole class of crashes that occur when shader interpreter is in use since that pipeline uses a default-initialized stub.
- Also use more robust hashing to avoid collisions
|
Final round of testing needed. The shader cache version has been upped, we're tracking some new variables that I need for some future optimization work. |
|
I retested call of duty, need for speed, goldeneye and tekken using the linux gcc build. All games work properly as before. My audio issues had to do with cubeb and the audio format settings in the emulator so should be good to go. |
|
I will retest this evening at home |
|
tested latest changes with no issues. I hoped that the commit fixing the crash due to invalid buffer could also be related to the device-lost issue but unfortunately this was not the case |
Gathers aliased registers when writing to output for ROP operations. This phenomenon was observed when messing around in real hardware a while ago. Technically you can do perfectly ok rendering without ever touching the output registers if the corresponding half-registers are written to (and vice-versa).
Closes #15651