Am Dienstag, 28. Februar 2012, 13:05:16 schrieb Henri Verbeet:
I don't see why WRITEONLY should imply DYNAMIC.
For one, the documents from nvidia tell you to set D3DVBCAPS_WRITEONLY when you want to stream data[1]. Microsoft doesn't really document how dynamic buffers work in d3d7.
The other consideration is that DYNAMIC buffers that are not WRITEONLY are a bad idea in d3d8/9. Yes, we don't handle WINED3DUSAGE_WRITEONLY at the moment, but the consideration makes sense for d3d7 too.
Setting it for all ddraw buffers may make sense, but even then I'd like to hear a somewhat more convincing argument that now is the right time to change this.
To fix bug 30019. That's the one argument I have. I'm happy to defer this change until after Wine 1.4.
It's fairly obvious that we have to set DYNAMIC somewhere if we want DDLOCK_DISCARDCONTENTS and DDLOCK_NOOVERWRITE to work, but I think that's not your point of concern.
1: http://developer.download.nvidia.com/assets/gamedev/docs/top5perfkill.pdf