[PATCH 4/5] wined3d: Use unsynchronized buffer updates only if there has been at least one buffer map.

Józef Kucia joseph.kucia at gmail.com
Tue Nov 8 07:19:01 CST 2016


On Mon, Nov 7, 2016 at 3:31 PM, Henri Verbeet <hverbeet at gmail.com> wrote:
> On 4 November 2016 at 13:43, Józef Kucia <jkucia at codeweavers.com> wrote:
>> Fixes bc019fcbbd7f0014280a292bc58ef618cfbe34c7. We cannot use
>> unsynchronized updates when the application haven't called map at all.
>>
> Mostly out of curiosity, how is this triggered in practice? Also,
> would it make sense to track synchronised/unsynchronised in
> buffer_invalidate_bo_range() instead?

It probably cannot be triggered in the current git. Before commit
6ced2a82930f11a80695ff0a3290e6125af52cd6 it could possibly be
triggered by wined3d_buffer_copy() followed by wined3d_buffer_load().
It was possible because wined3d_buffer_copy() was invalidating the
BUFFER location (the SYSMEM location was preferred four
double-buffered buffers). This isn't strictly the issue introduced by
commit bc019fcbbd7f0014280a292bc58ef618cfbe34c7.

I'm not sure if tracking synchronised/unsynchronised in
buffer_invalidate_bo_range() makes sense. I'll look into this, and
I'll send a patch if I've come up with something reasonable.



More information about the wine-devel mailing list