On 14 April 2010 11:52, Stefan Dösinger <[email protected]> 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.


Reply via email to