http://bugs.winehq.org/show_bug.cgi?id=11674
--- Comment #145 from Aigars Mahinovs aigarius@gmail.com 2011-11-05 05:27:45 CDT --- (In reply to comment #144)
(In reply to comment #143)
I would have grave suspicions about timing and synchronization errors as the draw functions return much sooner that programs expect them to and also return before anything is actually drawn...
I don't quite agree with this.
I see. After looking at that. I does look like you are right.
In such case the biggest problem is passing data from primary thread to a rendering thread in a way that they can be on different processors or cores and not spend too much time on the synchronisation between processors. If both CPU would need to get the same lock to read or write data to a common location, then they would spend so much time waiting for the lock and flushing their CPU caches that any processing off-loading benefit would be easily destroyed by that.
And at the same time all this fancy lockless IPC mechansm needs to not hold on to the data for too long, so that the flushes, finishes and page swaps are not too delayed.