https://bugs.winehq.org/show_bug.cgi?id=44864
Bug ID: 44864 Summary: Incoming crashes after the intro video Product: Wine Version: 1.9.24 Hardware: x86 URL: https://archive.org/download/incoming_201401/incoming. exe OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com CC: stefan@codeweavers.com Regression SHA1: 0d91d86bbab13b42bd39f142548fe8e0280fe0cd Distribution: ---
Created attachment 60923 --> https://bugs.winehq.org/attachment.cgi?id=60923 terminal output
The game Incoming (released in 1998 by Rage Software) shows the developer logo after starting, then it throws an error message and quits. Can be reproduced with the demo version.
The game used to work prior to
commit 0d91d86bbab13b42bd39f142548fe8e0280fe0cd Author: Stefan Dösinger stefandoesinger@gmx.at Date: Sun Nov 13 15:12:44 2016 -0600
ddraw: Use wined3d_device_process_vertices for execute buffers.
incoming.exe (3.8M) md5sum: 5b1fff6863768eeff95167e510d09a2e
Wine 3.5 OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 730/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 390.48
https://bugs.winehq.org/show_bug.cgi?id=44864
--- Comment #1 from Stefan Dösinger stefan@codeweavers.com --- I can reproduce the problem, thanks for finding the demo!
The issue appears to be that the app creates a 65532 byte sized buffer, but then tells us that it wrote 64 MB worth of vertices into it. We try to copy the data into the d3d vertex buffer that will be used as the source for wined3d_process_vertices and crash.
Before this patch SetExecuteData would just store the values in the D3DEXECUTEBUFFERDESC structure for future reference and read data only as required by D3DOP_PROCESSVERTICES ops in IDirect3DExecuteBuffer::Execute. As long as the D3DOP_PROCESSVERTICES parameters were OK everything was fine.
I'll investigate if we're supposed to return an error in SetExecuteData. If that's not the case the correct solution may be to delay the data copy until D3DOP_PROCESSVERTICES is executed or clamp the copy to the size of the execute buffer.
https://bugs.winehq.org/show_bug.cgi?id=44864
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |02f7b097b42553a1886610be6aa | |84959d25e00b0
--- Comment #2 from Béla Gyebrószki gyebro69@gmail.com --- Both the demo and the GOG.com version of the game start properly in wine-3.5-130-gdd2624a24f. Thank you, Stefan for taking the time to fix this bug.
https://bugs.winehq.org/show_bug.cgi?id=44864
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.6.
https://bugs.winehq.org/show_bug.cgi?id=44864
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.0.x
https://bugs.winehq.org/show_bug.cgi?id=44864
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|3.0.x |---
--- Comment #4 from Michael Stefaniuc mstefani@winehq.org --- Removing the 3.0.x milestone from bugs included in 3.0.2.