On Fri, 14 Dec 2012, Henri Verbeet wrote: [...]
How important is it to use mixed mode instead of software, at least for these tests?
I doubt it matters at all here.
Ok. I've sent the patch to wine-patches.
The other thing which is strange is that I only get trouble about mixed vertex processing on Windows. On Linux CreateDevice() succeeds in either mode.
In the general case though, we probably want D3DCREATE_HARDWARE_VERTEXPROCESSING if we can get it. (See also create_device() in e.g. dlls/d3d9/tests/device.c)
About that function, by the time we try software vertex processing we've changed AutoDepthStencilFormat. Shouldn't we try more something like this pseudo-code:
for processing in HARDWARE, SOFTWARE: for format in D3DFMT_D24S8, D3DFMT_D16: if SUCCEEDED(CreateDevice()): return device;
I.e. based on my very limited recent experience it seems to me that the sticking point is more likely to be the vertex processing mode than the depth stencil format (I have confirmed that on my GMA950 CreateDevice() succeeds for the D24S8+SOFTWARE combination).
(I ordered the loop so we pick HARDWARE if at all possible as it seems to be the goal)