On 05/26/2011 10:33 AM, Michael Mc Donnell wrote:

I've added some more tests to see if I could make it fail. Microsoft's
UpdateSemantics is not very picky. I can't get it to return anything
but D3D_OK except for when I pass a null pointer. My implementation
follows this behavior except for two cases: it returns E_FAIL when
passing an undefined type and when the offset is not 4 byte aligned.
This is because the values are checked inside vertexdeclaration_init.
So Wine is stricter. I don't think that it is necessarily a problem
because applications that pass bogus declarations like those will
likely not work anyway. My own tests with a small interactive demo
show that in those cases the application will crash with an access
violation when it tries to re-draw the scene.
I don't know whether it applies here, but if I understand correctly,
 there have been cases before that Wine must not be stricter than Windows.
Tthe reason is that a program may 'depend' on a function crashing (it having an exception caught in that case).
In such a situation, Wine's version of the function not crashing would cause a code path being executed
 that normally never is (causing incorrect behavior even)

Again I don't know whether it is relevant in this cause.

HTH,
Joris