Am Sonntag, 23. März 2008 00:59:48 schrieb Alexander Dorofeyev:
Native can handle zero primitive count both when using old interfaces (execute buffers etc) and when using d3d8 interface. Wine can crash in drawprim.c routines like drawStridedSlow and possibly others too, so filter it out in IWineD3DDeviceImpl_DrawIndexedPrimitiveUP. Fixes crash in Forsaken. --- dlls/wined3d/device.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
How will this work for other drawing functions? Shouldn't you filter it in the common drawPrimive() in drawprim.c?
Stefan Dösinger wrote:
Am Sonntag, 23. März 2008 00:59:48 schrieb Alexander Dorofeyev:
Native can handle zero primitive count both when using old interfaces (execute buffers etc) and when using d3d8 interface. Wine can crash in drawprim.c routines like drawStridedSlow and possibly others too, so filter it out in IWineD3DDeviceImpl_DrawIndexedPrimitiveUP. Fixes crash in Forsaken. --- dlls/wined3d/device.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
How will this work for other drawing functions? Shouldn't you filter it in the common drawPrimive() in drawprim.c?
You are right, drawPrimive() is a better place. I'll update the patch.