Hello World / plɹoM ollǝH

Programmers Live in Vain

今更PerfHUD ESでTegraのGLESデバッグ

面倒くさいけど先にUser Accountを作成しておく必要がある https://developer.nvidia.com/

んでここからPerfHUD ESをダウンロードしておく https://developer.nvidia.com/gameworksdownload

Android Studio起動してTerminalから

adb shell setprop debug.perfhudes 1
adb forward tcp:7876 tcp:7876

apkを実行なりデバッグなりしてPerfHUD ESを立ち上げる
File -> IP Addressからプロセスが見えるようになっているので選択してConnect
あとは知らん
早くTegra2と3をこの世から消

glfwでRenderDoc使いたいとき

ここからダウンロード
https://renderdoc.org/

コンテキスト作る前に glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, 1);
しておくとキャプチャできると思うよ

RenderDoc -> Lanch Application からキャプチャしたいexe起動すれば
キャプチャできない原因とかも色々画面に出してくれるよ

DirectX11 Efficient Buffer Management

未だに参照するけどスライド探すのに時間かかってしまうのでメモ http://gamedevs.org/uploads/efficient-buffer-management.pdf

これは知っとけ的な

  • API呼び出しは可能な限り減らす
  • 16バイトアライメントする(最大30倍速度差が出る)
  • D3D11Deviceはmutexを使うが、各DeviceContextは一度に1スレッドからしか呼び出せない
  • UpdateSubresourceはCPU時間を食う。できればMap/Unmapを使う
  • CPU-GPU間のSyncPointをなるべく減らす

各バッファの使い分け

TypeUsage (e.g)Create FlagUpdate Method
ForeverLevel BSPsIMMUTABLECannot Update
Long-LivedCharactersDEFAULTUpdateSubResource
TransientUI/TextDYNAMICCTransientBuffer
TemporaryParticlesDYNAMICMap/NO_OVERWRITE
ConstantMaterial PropsDYNAMICMap/DISCARD

Efficient Buffer Managementっつうタイトルが出てこないんですわ

Qt ビルドする(GPL版)

リリースDLLのPDBが欲しかったのでビルドする
ここを見れば大体わかる
https://doc.qt.io/qt-5.6/windows-building.html

わしの環境

  • Windows10やで
  • Visual Studio 2015をインストールしているものとする
  • とりあえず Qt5.10.1

Qtダウンロード

  1. QtのホームページからOpen Source版のインストーラをダウンロードして実行
  2. NextとかSkipを適当に押して進めていくとリポジトリのフェッチが始まる
  3. インストール先選択後はインストールするコンポーネントを選択する
    自分のビルドしたいバージョンのSources以外のチェックは全部はずした
  4. ライセンス条項に同意するとダウンロード&インストールが始まる
    めっちゃ時間かかるで

ビルド

  1. 例によってvcのパスを通しておく

    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

  2. ソースコードのルートディレクトリに移動してconfigureを実行する
    ここでもライセンスの同意をもとめられたりする

    configure -release -force-debug-info -nomake examples -opensource

    ちなみに help オプションを付ければ指定できるオプション一覧が表示される

    configure -help

    DirectX関係で怒られた場合はWindowsSDKのパスも通す

    set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64

  3. nmakeを実行する(そして永久に終わらないビルドが始まる)

    nmake

Src\qtbase\lib以下にdllやらpdbやらができるので、これを使ってPySideのwheelを作成しておけば、Qt内部でエラーが起こったときもシンボルを読み込んである程度追うことができる。良かった良かった。