ok, so this doesnt solve the problem of software shaders. would be nice if they focused on that some, it seems some of the earlier d3d games really did some weird stuff that would make this a requirment.
did they change their plans on basing the audio structure on openAL? i think at one time they were planning on rewriting the audio stack to use linux's openal to output everything and let openal handle all the system audioo hooks.
Announcement
Collapse
No announcement yet.
Wine Begins Work On Direct3D Shader Compiler
Collapse
X
-
Originally posted by GreatEmerald View PostInteresting... Couldn't Wine convert HLSL to OpenGL shaders directly, without needing to use D3D9 bytecode?
Even if Wine made the D3D API implementations auto-detect and accept GLSL source in place of the usual binary files, other third-party APIs cannot be magically converted, and there are such things as third-party tools that decompose and analyze the precompiled HLSL binaries.
Leave a comment:
-
Originally posted by Thunderbird View PostThere are small differences between HLSL and OpenGL shaders which require some 'fixups' when the shaders are being used. I don't remember the exact details, may be some cheating is useful. Note a lot of games ship with precompiled HLSL shaders in order not to have a runtime shader compile penalty. Some games may compile shaders only at first run or something.
For a long time to come the Microsoft compiler will likely generate faster code. Though the OpenGL shader compiler may be able to perform less optimizations on the precompiled HLSL code from the Microsoft compiler. This may actually be a disadvantage. The Wine HLSL compiler may generate less efficient code, but the code may be better suited for translation to GLSL. A good GLSL compiler may be able to compensate for inefficiencies. What will be better performance wise? Time will tell.
The Wine HLSL compiler will have some advantages though. Especially on older hardware SM2.0/SM3.0 hardware, scheduling of shader constants within a shader was not ideal. Games tried using constants which Wine wanted to use itself for emulating slight D3D/OpenGL differences. When Wine has its own compiler, it can try not to allocate shader constants in the range Wine wants for itself.
Leave a comment:
-
Originally posted by GreatEmerald View PostInteresting... Couldn't Wine convert HLSL to OpenGL shaders directly, without needing to use D3D9 bytecode?
For a long time to come the Microsoft compiler will likely generate faster code. Though the OpenGL shader compiler may be able to perform less optimizations on the precompiled HLSL code from the Microsoft compiler. This may actually be a disadvantage. The Wine HLSL compiler may generate less efficient code, but the code may be better suited for translation to GLSL. A good GLSL compiler may be able to compensate for inefficiencies. What will be better performance wise? Time will tell.
The Wine HLSL compiler will have some advantages though. Especially on older hardware SM2.0/SM3.0 hardware, scheduling of shader constants within a shader was not ideal. Games tried using constants which Wine wanted to use itself for emulating slight D3D/OpenGL differences. When Wine has its own compiler, it can try not to allocate shader constants in the range Wine wants for itself.
Leave a comment:
-
Originally posted by oliver View PostAgain, no pulse audio support (I know it's being worked on). Hopefully we can see this support soon!
- Gilboa
[1] http://repo.or.cz/w/wine/multimedia.git
Leave a comment:
-
Optimize
Originally posted by Qaridariumah nice it just makes the need of "Microsoft d3dx9_*.dll implementation " obsolete yes very nice
Leave a comment:
-
Originally posted by Thunderbird View PostLet me clear up the need for the shader compiler. Most games require DirectX runtime dlls (d3dx9_*.dll) which contain utility functions and the shader compiler. Some games install them while in other cases you have to resort to tools like winetricks to obtain them. When Wine has its own shader compiler it means you don't need the d3dx9_* Microsoft dlls.
The shader compiler has nothing to do with software rendering. Let me summarize how things work. At the core d3d9.dll only accepts 'precompiled' shaders in a bytecode format (this is an assembler format). Game developers like to write shaders in a high-level language like HLSL or Cg instead of assembler. This is where d3dx9_*.dll and the Wine shader compiler come in. The d3dx9 library contains HLSL shader compiler. It compiles Direct3D9 HLSL shaders to Direct3D9 bytecode.
In any case whether you use the Microsoft d3dx9_*.dll implementation or the Wine one (once the HLSL compiler is done), Wine's Direct3D implementation converts the Direct3D9 bytecodes to OpenGL shaders.
Originally posted by oliver View PostAgain, no pulse audio support (I know it's being worked on). Hopefully we can see this support soon!
Leave a comment:
-
Again, no pulse audio support (I know it's being worked on). Hopefully we can see this support soon!
Leave a comment:
-
Let me clear up the need for the shader compiler. Most games require DirectX runtime dlls (d3dx9_*.dll) which contain utility functions and the shader compiler. Some games install them while in other cases you have to resort to tools like winetricks to obtain them. When Wine has its own shader compiler it means you don't need the d3dx9_* Microsoft dlls.
The shader compiler has nothing to do with software rendering. Let me summarize how things work. At the core d3d9.dll only accepts 'precompiled' shaders in a bytecode format (this is an assembler format). Game developers like to write shaders in a high-level language like HLSL or Cg instead of assembler. This is where d3dx9_*.dll and the Wine shader compiler come in. The d3dx9 library contains HLSL shader compiler. It compiles Direct3D9 HLSL shaders to Direct3D9 bytecode.
In any case whether you use the Microsoft d3dx9_*.dll implementation or the Wine one (once the HLSL compiler is done), Wine's Direct3D implementation converts the Direct3D9 bytecodes to OpenGL shaders.
Leave a comment:
-
I miss World Wine News Issue
I miss the World Wine News Issues.
It was information that came every now and then with status of Wine and how things are progressing.
Leave a comment:
Leave a comment: