Originally posted by kokoko3k
View Post
D3D is a shader compiler, openGL the same, CG the same. It compiles programs(shaders) to a form that a computer(GPU) can understand. Its useful because there are many different computers and you cant write code just for one. The target and optimized libraries that are required to target a specific hardware are inside a GPU driver (the same is true for OpenGL compilers). The bad thing is that wile with a new CPU they give as those libraries(BDver for example) for GCC, for a GPU they don't give the analogous MESA parts. That is happening because they don't want MESA to grow, because then other companies will come and break their monopoly (software is half the GPU). Those two evil companies (ATI_AMD and NVIDIA) instead of using only OpenGL, they co develop with Microsoft DirectX, the closed all games under Windows and they are privileged by this deal (to be the only ones for long time). Also they did attack open pc closing games under consoles, that's another crime and not for money (the profits are better if you sell more cards and more expensive cards for pc). Now as for Wine the situation is simple: Except from the compilers there is also the rasterizer inside a GPU driver. Even if we can run D3D libraries on Wine we don't have the D3D rasterizer with the Linux GPU drivers, so we need to translate and loss FPS. Some times with an Nvidia card only we can set this translation off (GLSL=disabled), that uses the old and not efficient compiler and gains some FPS. In order to solve those problems Wine started an llvm_hlsl_shader_compiler, that uses the efficient llvm to compile HLSL very close to GLSL efficiently so the translation becomes very fast. When they succeed we will no longer need D3D libraries ether.
Leave a comment: