New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gl: Fix texture cache bugs #2490
Conversation
kd-11
commented
Mar 10, 2017
- Fix endianness bug
- Fix r/w when real pitch is <= 64
- Fix deadlock/crash where secondary thread has lower priority than rsx::thread
@kd-11, thanks for your PR! By analyzing the history of the files in this pull request, we identified @vlj, @Nekotekina and @raven02 to be potential reviewers. |
This should fix cases where write color buffers did not work, or colors were broken or black with it enabled. |
a52c7b9
to
e7d862a
Compare
Fix endianness bug Fix r/w when real pitch is <= 64
e7d862a
to
1fd33f6
Compare
bool received = false; | ||
gl::texture_cache::cached_rtt_section *section_to_flush = nullptr; | ||
|
||
volatile bool processed = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doesn't really make them atomic if it is the intent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They aren't atomic, since the thread that receives this is waiting on the condition variable. Its just to keep the compiler from doing any shady optimizations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, ok. If there won't be an issue with cache coherence and it's just for compiler optimizations it's fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I know x86 should not require explicit flushing so as long as the value is fetched from memory on consumer wake it should be fine. The values are just passed as a function result and the consumer does not actually use them.
Travis-ci is asleep it seems. |
Oh. Ok then. Thanks. |