プログラミング シェーダーの要素アライメントの謎 シェーダーコードの作成で、よく躓きがちなのはバッファの要素のアライメントがずれる、という点でしょう。たとえばユニフォームバッファで要素を追加して、C++側とGLSL側、他方でその修正を忘れるとすぐにおかしな状態に突入します。これはまだ気付け... 2024.11.09 プログラミング
プログラミング RenderDocでシェーダーデバッグ (Vulkan) シェーダーのデバッグはなかなか大変です。色情報を出力して目視確認というのは基本ですが、ソースコードレベルでステップ実行したいこともあります。 今回 RenderDoc で Vulkan 向けのシェーダーをデバッグできそうだったので紹介します... 2024.10.14 プログラミング
プログラミング RaspberryPiで新しいMesa3Dを使う 先日 Raspberry Pi にも VK_KHR_dynamic_rendering が使えるようになるというニュースがありました。みたところ、Mesa 24.1 に含まれる V3DV ドライバで対応とのことです。しかし、早く試してみたい... 2024.03.30 プログラミング
プログラミング RenderDoc GPUカウンター RenderDoc で GPU カウンター(ハードウェアカウンタ-) の値を見ることができます。NVIDIA GPUを使用する場合では、準備が必要なので、その手順を説明します。準備NVIDIA GPUを使う場合、GPUカウンタ-へのアクセス... 2024.01.08 プログラミング
プログラミング リモートで RenderDoc を使う RenderDoc はグラフィックスのデバッグ支援ツールです。オープンソースとして開発されており、多くのグラフィックスAPIに対応しています。OpenGL や DirectX11、DirectX12 や Vulkan などを対象として使える... 2024.01.01 プログラミング
プログラミング Vulkan: シェーダーメイン関数を指定する Vulkan を使用しており、シェーダーソースコードを作成しているとき、メイン関数(エントリーポイント)をちょっと変えたいことがあると思います。例えば、共通コードが多めで、メイン関数からの呼び出し部が少しだけ変化するような場合です。前提や背... 2023.12.23 プログラミング
プログラミング VK_EXT_full_screen_exclusiveを使う はじめにVulkanにはVK_EXT_full_screen_exclusive拡張機能というものがあり、これを使うとコンポジタを迂回しての描画が可能となります。この拡張機能が提案されたのが 2019年くらいだったので、今更ではありますが、... 2023.10.04 プログラミング
プログラミング Android Studio + Emulator で Vulkan アプリを動作させる 以前、 Android Studio と付属する Android Emulator の組み合わせで、 OpenGL ES 2.0 (3.0) のプログラムが動いたという記事を作成しました (記事: Android Studio + Emul... 2023.04.14 プログラミング
プログラミング VK_EXT_inline_uniform_block を使ってみる Vulkan 1.3 のコア機能に格上げされた VK_EXT_inline_uniform_block 機能拡張ですが、これってどのようなもの?と個人的に気になったので、少し調べて&試してみました。結論として、これは便利に使えそうな場面ある... 2022.05.28 プログラミング
プログラミング Vulkan 1.3 でコアに昇格した拡張機能の紹介 Vulkan 1.3 が 2022/01 に発表され、各種グラフィックスドライバの対応も完了したので現在は利用可能な状況にあります。さて、今回コアに昇格した拡張機能は23個もあり、 Vulkan 1.3 対応の状況ならば使用可能となりました... 2022.04.07 プログラミング
プログラミング KickstartRT の処理・構造を理解する 先日 KickstartRT デモを動作させる手順を記載しましたが、このデモアプリケーションを通じて KickstartRT がどのような構造で処理をしているのかを追いかけてみたいと思います。あくまで個人で追いかけた内容ですので間違っている... 2022.04.02 プログラミング
プログラミング KickstartRT デモの動かし方 GDC 2022 で NVIDIA から公開された KickstartRT のデモを手元で動かしてみました。特にハマりどころはありませんでしたが、記録として残しておきたいと思います。KickstartRT とはそもそも「KickstartR... 2022.03.27 プログラミング