rsx: Fix data written to RSX semaphores and the initial data of them #8235
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Turns out SEMAPHORE_RELEASE writes 16-byte of aligned data instead of 4-bytes, the rest of the bytes are filled with zeroes.
Similarly texture and backend labels write zeroes as well for the rest of the 12 bytes of data and not rsx timestamp as it used to thought of.
Also fix the initial data of the upper 8 bytes of semaphores, they are not initilaized to UINT64_MAX but special values as a "joke" of Sony. (if you look at the values you'll see...)
testcase : https://github.com/elad335/myps3tests/blob/master/rsx_tests/FIFO%20Semaphores%20data/expected.txt
The first buffer output is of the initial data of 6 semaphores, the second is of the first 3 semaphores used in the first output after SEMEPHORE_RELEASE, texture write label and backend write label.