ユーザ用ツール

サイト用ツール


opengl:emscripten

Emscripten

Emscripten

Blog 記事

WebGL Extensions (Emscripten)

OS毎、ブラウザごと、GPU ごとのデータ

Install 手順

Windows/Mac OS X

emsdk command を使って package の install と更新を行う。

  • Windows の場合 C:/Program Files/Emscripten/emsdk.bat
$ emsdk update
$ emsdk list
$ emsdk install sdk-1.27.0-64bit

Linux

上記手順に従い install

2015/01/10 現在の手順の一例 (Ubuntu14.10)

$ cd
$ sudo apt-get update
$ sudo apt-get install python2.7 nodejs build-essential cmake git-core default-jre
$ mkdir emscripten
$ cd emscripten
$ git clone https://github.com/kripken/emscripten-fastcomp
$ cd emscripten-fastcomp
$ git clone https://github.com/kripken/emscripten-fastcomp-clang tools/clang
$ mkdir build
$ cd build
$ ../configure --enable-optimized --disable-assertions --enable-targets=host,js
$ make -j
$ cd ../..
$ git clone https://github.com/kripken/emscripten.git
$ cd emscripten
$ ./emcc

~/.emscripten を編集して LLVM_ROOT= に emscripten-fastcomp/build/Release/bin を追加

LLVM_ROOT = os.path.expanduser(os.getenv('LLVM') or '/home/user_name/emscripten/emscripten-fastcomp/build/Release/bin')

emscripten/emscripten にパスを通す

Debug のための設定メモ

実行

--preload-file のデータが読めない

preload file は xhr なのでローカルサーバーを立ててブラウザからアクセスする必要あり。 –embed-file なら js に埋め込むのでどの方法でもアクセスできる。

コード生成

Null ポインタアクセスがエラーにならない

  • コンパイル時 ( js 生成時) に -s SAFE_HEAP=1 を付ける。
    • メモリアクセスのたびにアドレスチェックが入るため、動作速度は大きく落ちる。

Heap メモリが足りない

  • コンパイル時 ( js 生成時) に -s TOTAL_MEMORY= で指定する。byte 単位。
    • これは HEAP サイズではなく、仮想マシンの全メモリ空間 (搭載 RAM 容量) に相当する。ただし JavaScript Heap は含まない。
    • デフォルトは 16MB

Stack が足りない

  • コンパイル時 ( js 生成時) に -s TOTAL_STACK= で指定する。byte 単位。
    • TOTAL_MEMORY から確保されるので注意。必ず TOTAL_MEMORY > TOTAL_STACK でなければならない。
    • デフォルトは 5MB

ブラウザ

Firefox の Console Log を増やす

  1. URL に “about:config”
  2. devtools.hud.loglimit.console の値を増やす

Android Firefox の Remote Debug

  1. adb で接続
  2. Android Firefox の Menu → 設定 → デベロッパーツール → リモートデバッグ を ON
  3. HOST PC の Firefox で Menu → 開発ツール → 開発ツールを表示 → 開発ツールパネルの左上の歯車アイコン → 「リモートデバッガを有効」にチェックを入れる
  4. HOST PC で「 adb forward tcp:6000 tcp:6000 」
  5. HOST PC の Firefox で Menu → 開発ツール → 接続 → [接続]
  6. Android 側に dialog が出るので [OK]
  7. HOST PC の Firefox で接続する Tab を選択

Android Chrome の Remote Debug

  1. adb で接続
  2. HOST PC 側 Chrome で “chrome:inspect”
opengl/emscripten.txt · 最終更新: 2015/01/11 01:51 by oga