http://bugs.winehq.org/show_bug.cgi?id=17194
Summary: [PATCH] simple WineD3D installer Product: Wine Version: unspecified Platform: Other OS/Version: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: rmh@aybabtu.com
Created an attachment (id=19095) --> (http://bugs.winehq.org/attachment.cgi?id=19095) patch
A simple installer for WineD3D on native Windows, when built as described in http://wiki.winehq.org/WineD3DOnWindows
It displays the wine license, installs the DLLs to system32 and removes the MS ones from dllcache.
Usage:
makensis -Dsrcdir=${srcdir} -Dobjdir=${objdir} ${srcdir}/dlls/wined3d/wined3d.nsi
http://bugs.winehq.org/show_bug.cgi?id=17194
Robert Millan rmh@aybabtu.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=17194
Jeremy Visser jeremy.visser@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremy.visser@gmail.com
--- Comment #1 from Jeremy Visser jeremy.visser@gmail.com 2009-02-01 05:57:39 --- There is a bug in this installer which prevents it from correctly installing the DLLs included.
I see that the install script deletes $SYSDIR\dllcache\d3d{8,9}.dll to stop Windows File Protection from overwriting the new DLLs. However, the dllcache DLLs are deleted _after_ the new DLLs are installed in $SYSDIR.
The dllcache DLLs should be deleted _first_ before overwriting the main DLLs.
When I ran the installer on a fresh XP system, it failed to install the WineD3D DLLs over the top of the Microsoft ones -- I had to delete them from dllcache manually first.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #2 from Rico kgbricola@web.de 2009-02-01 07:43:26 --- Also someone could add dxgi, d3d10 and d3d10core. At least the test succeed on XP with this dlls, but a real app wouldn't run with it, yet.
http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x... http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x... http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x...
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #3 from Robert Millan rmh@aybabtu.com 2009-02-01 18:27:31 --- (In reply to comment #2)
Also someone could add dxgi, d3d10 and d3d10core. At least the test succeed on XP with this dlls, but a real app wouldn't run with it, yet.
http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x... http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x... http://test.winehq.org/data/8e39646ac4d256b813ff69a23ba0c62ab4f08d33/xp_rs-x...
How do you build dxgi? I get undefined references:
i586-mingw32msvc-dllwrap -k --def dxgi.def -o dxgi.dll version.res.o adapter.o device.o dxgi_main.o factory.o utils.o surface.o swapchain.o -L../../dlls -L../../dlls/dxguid -L../../dlls/uuid -L../../dlls/wined3d -L../../dlls/kernel32 -ldxguid -luuid -lwined3d -lkernel32 -L../../libs/wine -lwine ../../libs/port/libwine_port.a adapter.o:adapter.c:(.text+0x1e5): undefined reference to `_IID_IDXGIObject' [...]
I haven't been able to figure out why. There's code that references that symbol but nothing implements it. I guess it has something to do with dxgi.idl but this interface generation magic is totally unknown to me.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #4 from Rico kgbricola@web.de 2009-02-02 11:22:33 --- I built it with crossbuild_tricks.sh from here http://wiki.winehq.org/JohnKlehm .
http://bugs.winehq.org/show_bug.cgi?id=17194
Tobias Ussing wh4533@mail.seriesdb.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wh4533@mail.seriesdb.com
--- Comment #5 from Tobias Ussing wh4533@mail.seriesdb.com 2009-02-02 12:29:37 --- Would it be possible to add a "Backup original files" option?
Or maybe just do it as standard. I think that would be the better option. So the changes can be undone...
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #6 from Robert Millan rmh@aybabtu.com 2009-02-02 12:52:06 --- (In reply to comment #4)
I built it with crossbuild_tricks.sh from here http://wiki.winehq.org/JohnKlehm
The crossbuild_tricks.sh script doesn't seem to be building d3d10, only d3d8 and d3d9.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #7 from Robert Millan rmh@aybabtu.com 2009-02-02 14:01:01 --- (In reply to comment #1)
There is a bug in this installer which prevents it from correctly installing the DLLs included.
I see that the install script deletes $SYSDIR\dllcache\d3d{8,9}.dll to stop Windows File Protection from overwriting the new DLLs. However, the dllcache DLLs are deleted _after_ the new DLLs are installed in $SYSDIR.
The dllcache DLLs should be deleted _first_ before overwriting the main DLLs.
When I ran the installer on a fresh XP system, it failed to install the WineD3D DLLs over the top of the Microsoft ones -- I had to delete them from dllcache manually first.
Actually, this doesn't always work either. It seems there's a race between NSIS deleting/overwriting the second file (no matter which it is) and Windows File Protection restoring the first one.
It seems the only safe bet is to reboot in safe mode before running the installer.
http://bugs.winehq.org/show_bug.cgi?id=17194
Robert Millan rmh@aybabtu.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #19095|0 |1 is obsolete| |
--- Comment #8 from Robert Millan rmh@aybabtu.com 2009-02-02 14:21:11 --- Created an attachment (id=19216) --> (http://bugs.winehq.org/attachment.cgi?id=19216) wined3d_nsis.diff
New patch. Makes a backup of files before overwriting them, as suggested by Tobias. The script is also a bit more factorised.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #9 from Tobias Ussing wh4533@mail.seriesdb.com 2009-02-02 14:27:24 --- Now that was fast.
Thanks a bunch :)
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #10 from Rico kgbricola@web.de 2009-02-02 14:52:50 ---
The crossbuild_tricks.sh script doesn't seem to be building d3d10, only d3d8
and d3d9.
It builds it when you specify alldlls or if you add something like "${MYMAKE[@]}" -C $WINE_PE/dlls/d3d10core "${MYMAKE[@]}" -C $WINE_PE/dlls/d3d10 "${MYMAKE[@]}" -C $WINE_PE/dlls/dxgi in the build_cross_d3d() function.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #11 from Rico kgbricola@web.de 2009-02-02 15:04:27 --- When you get this error:
adapter.o:adapter.c:(.text+0x1e5): undefined reference to `_IID_IDXGIObject'
you have to build dxguid before you could build dxgi: make -C dlls/dxguid/ make -C dlls/dxgi/
Also note that d3d10core have to be build before d3d10 make -C dlls/d3d10core/ make -C dlls/d3d10/
http://bugs.winehq.org/show_bug.cgi?id=17194
Tobias Ussing wh4533@mail.seriesdb.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|wh4533@mail.seriesdb.com |
http://bugs.winehq.org/show_bug.cgi?id=17194
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #12 from Juan Lang juan_lang@yahoo.com 2009-02-02 19:36:02 --- I'm not sure this qualifies as a bug in Wine. You may want to package the WineD3D libraries for use elsewhere, but you should start your own project page for that. Wine's bugzilla isn't the appropriate place to track it.
http://bugs.winehq.org/show_bug.cgi?id=17194
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED Component|directx-d3d |-unknown
--- Comment #13 from Dmitry Timoshkov dmitry@codeweavers.com 2009-02-02 23:34:58 --- Closing.
http://bugs.winehq.org/show_bug.cgi?id=17194
--- Comment #14 from Robert Millan rmh@aybabtu.com 2009-02-03 15:20:30 --- (In reply to comment #12)
I'm not sure this qualifies as a bug in Wine. You may want to package the WineD3D libraries for use elsewhere, but you should start your own project page for that. Wine's bugzilla isn't the appropriate place to track it.
Alright. In case someone's interested, I'll be providing those builds here:
http://aybabtu.com/rmh/wined3d/
starting with 1.1.14. You may want to list that URL in http://www.winehq.org/download/ in case someone will be interested.