差分

ナビゲーションに移動 検索に移動

DirectX Shader Compiler

170 バイト除去, 2020年1月23日 (木) 05:19
編集の要約なし
'''GLSLDirectX Shader Compiler'''(語源:OpenGL Shading Language)とは、主に(通称:dxc)とは、[[OpenGLマイクロソフト]]で使われるが中心となり[[シェーディング言語オープンソース]]のもとで開発が行われている[[LLVM]]/[[Clang]]の技術をベースとした[[HLSL]]の[[コンパイラー]]である。
==互換性概要==GLSLには複数のバージョンが存在し、それらはそもそもの構文からして違うためDirectX12から登場した新しいHLSL向けのコンパイラである。[[Windows]]だけでなく[[互換性MacOS]]がない。一般的な[[プログラマーLinux]]はコンパイルエラーで悩まされることになる。でも動くという特徴がある。
このようなグダグダな状況は[[Steam]]で有名な[[Valve]]の中の人により「今週のGLSLバージョン地獄( GLSL version of the week hell)」と命名された。*https://cpplover.blogspot.com/2014/05/opengl.html*http://richg42.blogspotgithub.com/2014microsoft/05/things-that-drive-me-nuts-about-opengl.htmlDirectXShaderCompiler
==備考==当初、VulkanでもGLSLを採用していたが、あまりにGLSLがクソすぎるためか[[Google]]は[[Vulkan]]でdxcを使うと[[HLSL]]を使えるようにした。[[Vulkanソースコード]]は実質的に)をDXIL([[Android中間コード]]でしか使われていないので)に[[Googleコンパイル]]の方針がすべてになるであろう。できる。従来のfxc.exeで作られるDXBC(中間コード)とは別物である。移行期間なのかDirectX12ではdxcとfxcの両方が搭載されている。
*途中から[[DirectX Shader CompilerでSPIRGoogle]]も開発に参加してきて[[Vulkan]]で動かすための[[SPIR-Vを出力するV]](中間コード)も吐けるようになった。こいつ[[Android]]でも使えるぞ!
前述の* [[互換性DirectX Shader CompilerでSPIR-Vを出力する]]問題などを考慮すると、人間が手で書くものではなく、以下のような使い方の方が現実的である。
==関連項目==*[[HLSLMacでDirectX Shader Compilerをビルドする]]で書いて*[[SPIRDirectX Shader CompilerでSPIR-VVを出力する]]* [[コンパイルSPIR-VからGLSLを生成する]]して*[[GLSLSPIR-VからHLSLを生成する]]* [[逆コンパイルMacにMoltenVKを入れてVulkanを使ってみる]]する
[[逆コンパイラ]]は[[Vulkan]]の中の人が開発してくれている。==類似ツール==*[[SPIR-VからGLSLを生成するHLSLcc]] *[[SPIR-VからHLSLを生成するMojoShader]] ==関連項目==
*[[GLSLのversionディレクティブ一覧category: HLSL]][[category: SPIR-V]]

案内メニュー