[PATCH 2/6] wined3d: Introduce WINED3DUSAGE_MANAGED.

Axel Davy davyaxel0 at gmail.com
Tue Nov 13 14:02:12 CST 2018


On 13/11/2018 20:41, Matteo Bruni wrote:
>
> If it's useful I can clean up those tests / hacks a bit and share
> them. Otherwise I'm probably going to make proper tests only for the
> DISCARD thing (i.e. what's not timing-related).
>
>

Hi,


For Gallium nine multithreading, we wanted to have a behaviour as close 
as possible to Windows.

We did tests on buffers with different flag configurations to figure out 
how it behaves with threading (on windows you can force the app to 
single core and thus disable windows d3d9 multithreading, and trigger 
different output). We did test on Nvidia, AMD and Intel Win10.


We also tested what happensĀ  if you:

. Write to the buffer after having unmapped it, before a draw. Same 
thing after a draw: Is the change taken into account for the next draw ?

. Map write draw write unmap. What is used ?

etc and what happens when you do the same thing without d3d9 
multithreading (app bound to one core)


We also teste behaviour with different flags combined together for lock 
(surprisingly D3DLOCK_DONOTWAIT is respected on nvidia and will return 
D3DERR_WASSTILLDRAWING except for DYNAMIC buffers for example. The spec 
says the flag is invalid.)


We found that for most flag configurations, the vendors do different 
things, except for a few.

Especially we found MANAGED buffer upload behaviour to be consistent.

We noticed indeed SYSTEMMEM doesn't DISCARD.


I can unearth the tests and some of the results if you are interested.



Yours,


Axel Davy




More information about the wine-devel mailing list