wOCEでは今のところサーバ側で描画して画面へ転送という処理にしているが、これを画面側でも描画できるようにしたくて最初は画面側のプロセスで描画しようと思っていたけど共有メモリを確保して別プロセスでやるほうがよさそうだ。
画面側の処理は時間に煩いけど描画処理は時間が読めないのでプリエンプトできないと処理が回らんし、画面専用機をシングルコアで使うとコアが余ってしまう。
てーことで、画面側は画面側描画指定CanvasWidgetは共有メモリと描画用プロセスを持ってて描画コマンドは描画用プロセスへ回す。GC消滅コマンドで描画用プロセスはアップデートコマンドを範囲と共に送ってくるので共有メモリからテクスチャへ転送...updateCanvasコマンドは共有メモリも描いてからテクスチャへ転送...。てなところか。
これで画面側描画であろうとなかろうと同じ使い方ができるというもの。
0 件のコメント:
コメントを投稿