[PATCH 3/5] wined3d: Disable strict draw ordering by default.

Henri Verbeet hverbeet at gmail.com
Wed Apr 14 05:16:57 CDT 2010


On 14 April 2010 11:52, Stefan Dösinger <stefandoesinger at 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.



More information about the wine-devel mailing list