On 14 April 2010 11:52, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am 13.04.2010 um 23:51 schrieb Henri Verbeet:
I'm not sure I see how that's going to make things better.
Well, mostly to have the sync conditions and the way we sync in a single place. That'll make it easier to use more suited GL methods to order draws, e.g. sharing one context across multiple threads on OSX.
Maybe, although I'm not at all convinced we want to go there. However, making a function out of that line isn't going to work very well when you've got both
- if (wined3d_settings.strict_draw_ordering) wglFlush(); /* Flush to ensure ordering across
and
if (wined3d_settings.strict_draw_ordering || (dstSwapchain
&& ((IWineD3DSurface *)This == dstSwapchain->frontBuffer
|| dstSwapchain->num_contexts > 1)))
wglFlush(); /* Flush to ensure ordering across contexts. */
Perhaps those should be the same, but that's way past the goal of this patch, all it's trying to do is to ensure there are no regressions compared to before ce42470138a4805dce509a1fa806c8880530f324. I also don't think that e.g. the num_contexts check is very helpful, because at that point you've already got two contexts, but didn't flush for any potential previous draws. This patch simply isn't trying to fix those things.
Feel free to work on trying to fix that, but I think it's more useful to work on a more structural solution.