Microsoft fornecerá os binários DirectX Shader Compiler para o Linux!

Há muitos anos, rodar jogos no Linux era um desafio enorme! Além da falta de títulos nativos para esta plataforma, os sistemas GNU/Linux em geral também não possuíam APIs designadas para o suporte para jogos eletrônicos, como é o caso do Microsoft DirectX para o Windows. Para isto, contávamos com a boa vontade dos estúdios em liberarem o código-fonte das engines (e uma das poucas que faziam isto era a ID Software) para funcionar com SDL/OpenGL ou rodar “emulado” através do WINE

“In early 2017 Microsoft open-sourced their DirectX shader compiler and shortly thereafter it’s been possible to build it on Linux while finally as of this week Microsoft has begun providing official Linux binaries of their shader compiler. Released on Saturday was DirectXShaderCompiler v1.7.2212 as their ‘December 2022’ DX compiler release. In addition to it now including full support of HLSL 2021 for SPIR-V generation and various new compiler flags, this marks the first time they are including full Linux binaries as part of the release.”

— by Phoronix.

Mas pelo visto, este cenário não vai mudar, embora alguns eventos sugiram o contrário: a Microsoft fornecerá os binários do DirectX Shader Compiler para o Linux, com o objetivo de promover uma melhor interação entre a biblioteca MESA com o DirectX 12, para beneficiar o uso do Windows Subsystem for Linux (WSL2). Neste caso, O DirectX Shader Compiler será muito útil para os desenvolvedores, em casos de conversão do SPIR-V para shaders, compilando shaders HLSL em DXIL no Linux (usado pela biblioteca MESA), com ênfase na interoperabilidade.

Dentre os binários incluídos, estão o executável do compilador, a biblioteca dinâmica e a biblioteca de assinatura DXIL. E a partir de agora, o pacote também irá incluir a versão Linux do compilador com o executável correspondente, libdxcompiler.so, cabeçalhos e libdxil.so para plataformas x64. Infelizmente, estas concessões não trarão nenhum benefício para os linuxers em relação a jogos, pois não possibilitará trazer o suporte para a API DirectX 12 de forma nativa ou substituir as implementações livres, como é o caso do VKD3D-Proton.

Para maiores informações, não deixem de conferir as notas de lançamento.

Sim, confesso que tenho algumas expectativas em relação ao suporte nativo das APIs, frameworks e bibliotecas, relacionados a jogos em sistemas GNU/Linux, mas não para a execução em PCs desktops, portáteis e outras plataformas dedicadas: com a ascensão da computação em nuvem e a popularização dos serviços de streaming em geral, acredito na tendência dos datacenters utilizarem este sistema, em vista da sua grande flexibilidade e performance, tornando-se a opção ideal como plataforma de base para a infraestrutura de streaming para jogos.

Além do mais, prefiro contar com a API (livre) Vulkan ao invés da DirectX… &;-D