コンパイルと実行とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > コンパイルと実行の意味・解説 

コンパイルと実行

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/17 21:15 UTC 版)

GLSL」の記事における「コンパイルと実行」の解説

GLSLシェーダープログラムは単体アプリケーションではない。シェーダー実行にはOpenGL API利用するホストアプリケーションが必要である。ホストアプリケーション記述する言語には、OpenGL APIサポートする第一級言語であるC言語およびC++、あるいはWebGLサポートするJavaScriptなどがよく利用される従来方式では、GLSLシェーダーOpenGL API関数通じて、ハードウェアベンダーの実装したデバイスドライバー上のオンラインコンパイラによって実行時コンパイルされる。GLSLシェーダープログラムのソースコードはホストプログラム上の文字列リテラルとして記述されたり、アプリケーション実行時外部テキストファイルなどから読み込まれたりしたものメモリ上の文字列データとして実体化されるが、オフライン事前コンパイル方式ではなく、あくまでドライバーにはソースコード文字列形式送られドライバー実行時シェーダーソースコードコンパイルして「シェーダープログラムオブジェクト」を生成する具体的な手順として、アプリケーションはまずglCreateShader()で各シェーダーステージのシェーダーオブジェクトを生成し、そのシェーダーオブジェクトに対してGLSLソースコード文字列をglShaderSource()設定した後、glCompileShader()によってシェーダーコンパイルする。その後、glCreateProgram()生成したプログラムオブジェクトに対して、glAttachShader()前述コンパイル済みシェーダーオブジェクトを関連付け、glLinkProgram()リンクすることで、ようやく一連のプログラマブルシェーダーパイプラインが完成する。シェーダープログラムを利用して描画するには、描画命令発行する前にglUseProgram()現在のOpenGLコンテキストにプログラムオブジェクトをバインドしておく必要がある。 シェーダープログラムのコンパイルやリンクは時間のかかる処理であり、アプリケーション初期化ボトルネックとなりうるため、直近のソースコード文字列対応するコンパイル結果ドライバー側でキャッシュされる実装になっていることも多い。なお、OpenGL 4.1標準化されたGL_ARB_get_program_binaryにより、コンパイル済みバイナリシリアライズ・逆シリアライズ拡張としてサポートされようになったが、バイナリベンダー間で互換性のある中間形式であるかどうか保証されないOpenGL 4.5標準化されたGL_ARB_parallel_shader_compileにより、マルチスレッド利用したシェーダー並列コンパイル拡張としてサポートされようになったデバイスドライバーGLSLコンパイラ内蔵していることから、ドライバーによってシェーダープログラムのコンパイル結果実行結果異な可能性があるなどの品質問題抱えている。 OpenGL 4.6では中間表現SPIR-Vがサポートされるようになり、オフラインコンパイルが可能になったことから、OpenGLプログラマブルシェーダー利用するために必ずしもGLSL利用する要はなくなった。なお、Direct3Dシェーディング言語であるHLSLリリース当初から、コンパイル結果ベンダー依存バイトコード出力され、またコンパイル済みバイナリ読み込みサポートしていた。

※この「コンパイルと実行」の解説は、「GLSL」の解説の一部です。
「コンパイルと実行」を含む「GLSL」の記事については、「GLSL」の概要を参照ください。

ウィキペディア小見出し辞書の「コンパイルと実行」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


このページでは「ウィキペディア小見出し辞書」からコンパイルと実行を検索した結果を表示しています。
Weblioに収録されているすべての辞書からコンパイルと実行を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からコンパイルと実行を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「コンパイルと実行」の関連用語

コンパイルと実行のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



コンパイルと実行のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのGLSL (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS