Mesa3D のレンダラーの切り替え


Linux の OpenGL 実装で有名な Mesa3D ですが、レンダラーの切り替えができることがわかったのでメモしておきます。
ちなみに The Mesa 3D Graphics Library って現時点においては 17.0 となってました。しかしながら動作実験環境は Ubuntu 16.04 で apt でインストールできるものを使用しているため、これよりも古いです。

切り替え方法

以下の環境変数で指定が可能です。

  • LIBGL_ALWAYS_SOFTWARE
  • GALLIUM_DRIVER

この環境変数で LIBGL_ALWAYS_SOFTWARE=1 とするとソフトウェア(エミュレーション)でのレンダラーが選択されるようです。
そして GALLIUM_DRIVER=softpipe を指定することで llvmpipe との切り替えができるようです。


続きを読む



USB Wifi Linux ドライバを変えて再試験


ちょっと前の某雑誌で、当ブログでも紹介していた USB WiFi の紹介がありました。
ただ当ブログで紹介していたドライバとは違うものだったので、確認してみたいと思います。
ちなみに 以前の内容はこちらです。

ドライバの確認・インストール

まず使用環境は Ubuntu 16.04 ですが、正確には 16.04.1 においても使えるかどうか確認してみました。
ドライバは https://github.com/abperiasamy/rtl8812AU_8821AU_linuxにあるものです。

使用機材は、 WN-AC433UA (IO DATA) で試しました。
前回紹介したドライバは、 https://github.com/gnab/rtl8812au でした。
基本的にインストールはこれと同じように行っていけるのですが、 今回の rtl8812AU_8821AU_linux では、 DKMS 対応の Makefile も含まれているので、こちらを使って準備しました。

これでしばらくするとインストールが完了します。

動作チェック・感想

こちらのドライバのほうが以前紹介したものよりはよさそうな印象をうけました。
というのも、前回の記事の中にあった不正な文字列は今回は見当たらなかったですし、NetworkManagerあたりにもスムーズに認識させることができていた点からです。

気になる速度の方は、iso ファイルのコピーで確認してみたところ 約 16.5 MB/s でした。つまり 132 Mbps あたり。
リンク速度の方は、iwconfig で確認したところ以下のような感じでした。

5GHz 帯で、 433 Mbps でのリンクとなっていました。
433M で実効 133 M というともう少し速度が出てほしいところです・・・。


ちなみにルーターの方は ac 側で 1733 Mbps までの対応のものを使用しています。
ルーターとの距離も 2m 内くらいだったので、やっぱり速度のほうにはもう少し頑張ってほしいところです。

追加検証

そもそも速度計測方法がイマイチということに気付いたので別方法で計測しました。前回は CIFS でのファイルコピーで別の処理コストもかかっていました。
これを iperf を用いて純粋に転送速度だけを測ってみました。

結果は、UP/Down どちらも大きな変化はなく、 220Mbps ほどでした。理論値の半分くらいにまで到達したのでまずまずの結果かなと納得しました。ちなみに 11n のほうでは自分の環境では 80Mbps 程度のリンクとなり実効速度も 53Mbps ほどでした。

11ac の環境は偉大だと言うことがよくわかりました。


SharpVulkan のTutorial を追加しました


SharpVulkan のチュートリアルページを書き足しました。

C# から使う Vulkan 入門
はじめに ここでは C# による Vulkan 入門を取り扱っていきます。 Vulkan は C/C++ から利用する場面がほとんどですが、 C# からも利用可能であれば使いたい場面はあるかと思います。 ここではそのために用意した...

ひとまずチュートリアル部分を一区切りです。これで SharpVulkan WPF を用いてのキューブの描画が Vulkan コントロールの中で行われるようになります。

この先の予定ですが、 SharpVulkan WPF のパフォーマンスに対して修正していく感じでしょうか。
また、SharpVulkan WPF コントロールを使わずに、でも WPF アプリケーションとして Vulkan API をたたいて描画するといったサンプルを先のページで紹介してみたりということを考えています。

まだ色々と不備が残っていますが、徐々につぶしていければと思います。
今回のチュートリアルを書き上げるまでにも 0.0.3 と初回公開時よりもバージョンが上がりました。


PaintsChainer を Windows にて構築


ちょっと前から世間(ディープラーニング界隈)を賑わせている PaintsChainer に Windows 環境でチャレンジしてみました。
これは線画を入力として与えるといい感じに着色してくれるものです。
コードおよび学習済みモデルの公開を行ってくれた作者の方に感謝しつつ、手元で試していきたいと思います。

なお、ディープラーニングの内容については全くの初心者なので、何が起こっているのかさっぱりだったりします。

paintschainer_start

続きを読む



SharpVulkan ページ作りました


C# から Vulkan API をたたくためのラッパーコンポーネント SharpVulkan と、
C# WPF アプリケーションの中に、描画コントロールとして配置する SharpVulkanWPF コントロールを初回公開しました。

まだまだ安定しないですし、バグ大量でしょうがこれから頑張っていきたいと思います。
続きを読む




C# でアンマネージ領域のメモリコピー


単なる memcpy のようなことを、アンマネージ領域で行いたいときの話です。
Marshal.Copy が一見できるかなと期待してしまうのですが、これはマネージド配列からアンマネージドのメモリへコピーするための関数です。(オーバーライドにより逆方向も可能になってます)。

しかしコピー元もコピー先もアンマネージドのオーバーライドはありません。
これをどうするかですが、 memcpy を使用するとちょっと大変なので Win32 API の力を借ります。

CopyMemory という関数が、 kernel32 に含まれているので、これを使います。

memcpy を使おうとすると、 VCランタイムがインストール必須になってしまうのでこちらで。