https://bugs.winehq.org/show_bug.cgi?id=56465
Bug ID: 56465 Summary: d3dcompiler fails to compile shader functions that have optional arguments ("E5000: syntax error, unexpected '=', expecting ')'") Product: vkd3d Version: 1.11 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: hlsl Assignee: wine-bugs@winehq.org Reporter: alexhenrie24@gmail.com Distribution: ---
Minimal example (compile with `i686-w64-mingw32-cc *.c -ld3dx9_36`):
#include <windows.h> #include <d3dx9shader.h> #include <stdio.h>
int main() { static const char src[] = "float4 main(float4 color : COLOR = float4(0,0,0,0)) : COLOR { return color; }"; ID3DXBuffer *out = NULL; HRESULT res = D3DXCompileShader(src, sizeof(src), NULL, NULL, "main", "ps_2_0", 0, &out, NULL, NULL); printf("res=%x\n", res); return res; }
Output:
0024:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4. 0024:err:d3dcompiler:D3DCompile2 Shader log: 0024:err:d3dcompiler:D3DCompile2 <anonymous>:1:36: E5000: syntax error, unexpected '=', expecting ')' 0024:err:d3dcompiler:D3DCompile2 res=80004005
Output after `winetricks d3dcompiler_47`:
res=0