http://bugs.winehq.org/show_bug.cgi?id=33476
Bug #: 33476 Summary: fxc, the Microsoft Effect Compile, to work due to d3d Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: titan.costa@gmail.com Classification: Unclassified
Created attachment 44310 --> http://bugs.winehq.org/attachment.cgi?id=44310 fxc log
Hi,
I can't get the fxc, the Microsoft Effect Compile, to work. Something goes wrong with d3d.
The command line is: wine fxc.exe /T fx_2_0 BasicHLSL.fx
Both fxc.exe and BasicHLSL.fx come from the DXSDK.
d3dcompiler_43.dll must be set as native.
Here is the output:
NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead. fixme:win:EnumDisplayDevicesW ((null),0,0x32f6e8,0x00000000), stub! err:d3d:context_create Failed to set pixel format 1 on device context 0x80026. err:d3d:context_choose_pixel_format Can't find a suitable iPixelFormat err:d3d:context_create Failed to set pixel format 1 on device context 0x6002b. fixme:d3d:wined3d_get_format Can't find format WINED3DFMT_R24_UNORM_X8_TYPELESS (0x49) in the format lookup table fixme:d3d:getDepthStencilBits Unsupported depth/stencil format WINED3DFMT_UNKNOWN. err:d3d:context_create Failed to set pixel format 25 on device context 0x10033. err:d3d:context_create Failed to set pixel format 13 on device context 0x10035. err:d3d:context_choose_pixel_format Can't find a suitable iPixelFormat err:d3d:context_create Failed to set pixel format 1 on device context 0x10037. Failed to create D3D device Please check your SDK installation. disassembly failed; no disassembly produced
http://bugs.winehq.org/show_bug.cgi?id=33476
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |titan.costa@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=33476
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.5.29
http://bugs.winehq.org/show_bug.cgi?id=33476
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
http://bugs.winehq.org/show_bug.cgi?id=33476
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hverbeet@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=33476
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.microsoft.com/en | |-us/download/details.aspx?i | |d=6812
http://bugs.winehq.org/show_bug.cgi?id=33476
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|fxc, the Microsoft Effect |fxc, the Microsoft Effect |Compile, to work due to d3d |Compile, doesn't work due | |to d3d
http://bugs.winehq.org/show_bug.cgi?id=33476
--- Comment #1 from Rico kgbricola@web.de 2013-05-02 01:13:34 CDT --- If you only want to use it to compile an effect, you may try "/Fo <filename>", where filename is the output file.
What exactly should happen beside the device creation? Should it output the assembly code? (Because using "/Fc <filename>" fails the same way.)
http://bugs.winehq.org/show_bug.cgi?id=33476
--- Comment #2 from Christian Costa titan.costa@gmail.com 2013-05-02 03:35:32 CDT --- The assembly code is output to stdout. /Fo enable to output to a file. I don't know why fxc wants to create a device. Probably for shaders validation.
http://bugs.winehq.org/show_bug.cgi?id=33476
--- Comment #3 from Stefan Dösinger stefan@codeweavers.com 2013-05-02 08:27:26 CDT --- I can reproduce the problem.
It seems that fxc wants to create a device to disassemble the compiled shader. No idea why it needs a device for that, but it wants the assembler code to put it into the output file as a comment.
This produces some usable output file:
WINEDEBUG=-all wine fxc.exe /T fx_2_0 BasicHLSL.fx /Fh foo.h Microsoft (R) Direct3D Shader Compiler 9.29.952.3111 Copyright (C) Microsoft Corporation 2002-2009. All rights reserved.
Failed to create D3D device Please check your SDK installation. File will not contain disassembled shader as a comment compilation succeeded; see C:\dxsdk\dx9\Utilities\bin\x86\foo.h
The produced file contains the binary code, but no assembler code. I'm trying to find out why device creation fails.
http://bugs.winehq.org/show_bug.cgi?id=33476
--- Comment #4 from Stefan Dösinger stefan@codeweavers.com 2013-05-02 08:53:09 CDT --- Created attachment 44350 --> http://bugs.winehq.org/attachment.cgi?id=44350 Hack
fxc.exe tries to create a D3DDEVTYPE_REF device that renders to the desktop window (GetDesktopWindow()). winex11 rejects that.
As far as I know, it is not valid to create a HAL device that renders to NULL or GetDesktopWindow(), but you can do that with REF and NULLREF devices. The attached hack creates a dummy window, which makes fxc happy. This is broken in many ways. I don't even know what a correct fix would look like. We can't use opengl to render to the desktop window, and writing our own software renderer seems a bit out of proportion as well. Maybe we can use the BitBlt() present code we have for ddraw to render offscreen, then blit the results to the desktop.
And yeah, fxc doesn't actually render anything. But REF devices on Windows can render, they're just very slow...
http://bugs.winehq.org/show_bug.cgi?id=33476
--- Comment #5 from Christian Costa titan.costa@gmail.com 2013-05-04 04:56:10 CDT --- The patch works just fine. Thanks Stefan! I don't know about the correct fix either but for ref device rendering offscreen them blitting to desktop sounds good. But well, for fxc a proper patch just faking the window for ref device with a proper fixme would be fine in git. :)
https://bugs.winehq.org/show_bug.cgi?id=33476
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|stefan@codeweavers.com |stefandoesinger@gmx.at
https://bugs.winehq.org/show_bug.cgi?id=33476
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #6 from joaopa jeremielapuree@yahoo.fr --- Created attachment 66203 --> https://bugs.winehq.org/attachment.cgi?id=66203 compile effect output
Looks like the bug is fixed with wine-5.0-rc4. See the output in attached file. Can an administrator close this bug as FIXED?
https://bugs.winehq.org/show_bug.cgi?id=33476
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED
--- Comment #7 from Zebediah Figura z.figura12@gmail.com --- Marking duplicate based on comment 4.
*** This bug has been marked as a duplicate of bug 18490 ***
https://bugs.winehq.org/show_bug.cgi?id=33476
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing Duplicate.