GS: Merge assembly files in GS#3577
Conversation
|
Wait are we building GSdx in C++03 mode? That's the only way to make this error... https://gcc.godbolt.org/z/c8oj9W |
|
Never mind this is the issue https://gcc.godbolt.org/z/a4rvYz |
ffa574c to
0b73924
Compare
361b540 to
b1770ad
Compare
b1770ad to
358f468
Compare
|
Thank you. |
358f468 to
bf9b8ac
Compare
|
@rspretty please check and confirm that the issue is fixed |
|
Confirmed! |
|
Yup, this is working fine for me as well now. |
|
Checked through my game collection on 64 bit software AVX2 Windows and all seems good to me no issues present on any of the games I played. |
89045b6 to
7033937
Compare
|
I found out this doesn't build with GCC 11.1.0. |
|
Tested on Dragon Quest 8, Gran Turismo 4, Ratchet and Clank, NCAA 08, and Star Wars Battlefront 2. No issues, working on 64 bit. |
|
I tested Gran Turismo 3, Gran Turismo 4 Prologue, Midnight Club 3, Tekken 5, Sonic Heroes and NASCAR '09 and all of them are working as intended in x64 SW mode. |
|
Tested about 10 games of various graphical effects + BIOS, all looks good :) |
|
Tested 12 games including bass master fishing, looks good to me. |
76f4e34 to
a6ca0de
Compare
Try now |
Yup, works now. |
lightningterror
left a comment
There was a problem hiding this comment.
Copyright headers are outdated compared to the new ones we use in GS.
If codegen throws an exception, it ends up just crashing when you jump to the incompletely-generated code which is kind of useless
a6ca0de to
f4d0c2d
Compare
|
Copyright headers are still inconsistent, use these instead |
f4d0c2d to
295076d
Compare
|
I see some new warnings in gcc, maybe would be nice to take care of them. |
No point, and made it not a standard layout type
Fixed, but test and look for new memory leaks Hopefully no one was relying on |
lightningterror
left a comment
There was a problem hiding this comment.
Time for the testers to shine now.
|
Tested on 13 games and showed no issues in any of them. Memory behavior was the same as master and I have found no leaks in my time testing it. |

Replaces 6 copies of the same file ([x86, x64] * [SSE4, AVX, AVX2]) with one slightly more complicated one. I think it'll be easier to maintain this way, but I'm curious as to what other people think
Pros:
Cons:
Outstanding Issues:
_rip_local_dis supposed to refer to eitherm_local.d8orm_local.d4(depending on AVX register size), but after realizingm_localalso has adfield, that's clearly not a great name. I don't, however, have any clue what would be as I don't know why it's calleddin the first place.Windows x64 is still broken, having issues with the display of a bunch of the bios (e.g. the "Sony Computer Entertainment" comes up as a bunch of white squares). I tried a bunch of things to make win64 and macOS 64 closer (e.g. switching all the ifdefs and adding movs to transfer the inputs to the other platform's calling convention) but I both couldn't get Windows x64 to work or macOS x64 to break, so I'm thinking the issue might be somewhere else in GSdx (Windows x64 just crashes in the current version of GSdx so it's never been tested). If anyone has any ideas as to where this issue might be please let me knowFixedAlso, since this is a full rewrite of the SW renderer's assembly routines, lots of testing is needed