ようやくUbuntu で Vulkan 確認できた


Ubuntu で NVIDIA の Vulkan ドライバを入れて動作させようとがんばっていたわけですが、ようやく動作させることに成功しました。
ドライバのインストールを強行してなんとかなっているだけなので、綱渡り状態での動作です。サンプルのビルドにもちょっと手間がかかりましたが、以下のように動作させることには成功しました。

結局 Ubuntu 14.04, NVIDIA Geforce GTX 750 Ti という状態でここまでこれたので、正しく導入する方法をこれから探っていきたいと思います。

ubuntu-vulkan-sample-particle


Ubuntu で Vulkan を試す(失敗編)


NVIDIA Geforce GTX 750 Ti が刺さっている Ubuntu環境があったので、
これを Vulkan のドライバを入れてみることにしました。
その作業をここに記録しておきます。

ドライバをダウンロード

Nvidia Vulkan Driver: https://developer.nvidia.com/vulkan-driver
からドライバをダウンロードします。
ここでは、 Linux 64-bit を選択して、 NVIDIA-Linux-x86_64-355.00.27.run というファイルをダウンロードしました。

このファイルを後ほど実行するため、以下のコマンドで実行属性をつけておきます。

ドライバのインストール

既存のドライバを削除して、ダウンロードしたドライバをインストールします。
この過程でウィンドウシステム(X-Window)が一度シャットダウンされるので注意が必要です。

まずはドライバを削除します。

CTRL+ALT+F2 でコンソール画面に切り替えてから、ドライバをインストールします。

これでインストールが始まります。あとはインストーラーの指示に従ってください。
途中で”The distribution-provided pre-install script failed!” と表示されてしまう場合があるかもしれません。これの解決法は不明です。

自分の場合には、まさにこれでしたがインストールを強行することにしました。
その後インストーラーはエラーを出さなかったのですが、再起動したらグラフィカル画面が全く出なくなってしまいました。

追記

インストール&動作に成功できた記事を別途用意しました。こちらを参照ください


xperia z1 compact の電池換装


Z1fでも同じような症状が起こっており、わりと XPERIA 界隈では有名な話っぽいですが、いきなり端末のシャットダウンが発生するようになってしまいました。

原因は電池周りの不具合のせいらしいですが、原因の根幹には電池の劣化があるようです。

電池残量を正しく報告しない&瞬間的な電圧降下により残量ゼロとみなしてOSがシステムをシャットダウンしているとのことです。
そのため、90% くらい残量があると表示されていても、ブラウザでページを開こうとしていきなりシャットダウンとかザラにあります。あまりにもこれらがひどくなり、連続稼働10分を切ってしまったこともあって、何とかしようと乗り出しました。

交換パーツ

すでにやられている人がそこそこいるのか情報は検索すれば手に入りました。
また amazon でも電池パックだけが購入できたりするのでそちらを購入しました。

”Sony Xperia Z1 Compact 交換用 バッテリー 内蔵電池 ソニー 純正品 PSE”

というものです。約2000円程度だったのでダメ元でトライするにちょうどいいです。

ほかにもケースオープナーとかのヘラがあれば問題なく開くことができました。

z1compact-battery

交換過程

裏蓋を熱して、吸盤ではがしてスキマにヘラを突っ込んでこじ開ける!という定番の方法です。これも参考サイトを元に作業しました。
思いの外接着力が強かったので、はがすのに時間がかかりましたけど・・・。

また NFC のアンテナは、旧バッテリから白い包装ごと切り取って移植しました。
最初ははがそうと努力していたのですが、きれいにはがすことができず、
ちぎれそうな気配を感じたため仕方なくです。
z1compact-nfc

参考

こちらのサイトの情報が役立ちました&助かりました。

http://hatahuri.blogspot.jp/2015/10/xperia-z1-comapct.html

検証

交換前後でのバッテリの状態を確認してみます。
以前は以下のように充電状態であっても充放電を繰り返していることがわかります。
z1compact-graph-1
交換後は以下のようになりました。きれいに充電できていることがわかります。
z1compact-graph-2

この後使用を続けていますが、以前のような急なシャットダウンは発生しておらず、
交換した甲斐はあったと思っています。失ったのは防水性能ですが、使えないよりはマシということで。

充電状態が先のグラフのようになってきたら、電池交換しか復帰する方法はないという感じでしょうか。電池の状態を視覚化しておくって状態把握に大事だなと感じました。

使ったものなど

Amazon で購入したものについて紹介しておきます。

電池パックはこちらを購入しました。他にもあったのですがコネクタの位置問題があるようだったのでこちらを選択しました。

ケースオープナーは消耗品なので、念のため2種類ほど買ってみました。

ケースオープナーセット


Vulkan 公開された!


先日 Vulkan の情報まとめを作ったところで、今日 2/17 に Vulkan がパブリックリリースとなりました。公開はもう少し先だろうと予測していたのですが、まさかの事態に驚きました。

情報がたくさん出てきて追い切れないですが、最初必要そうになりそうな部分だけリンク張っておきます。Vulkan は Windows7 以降の OS で使用可能なので、 Windows10 必須の DirectX12 よりは触ってみるのに敷居が低めですね。(APIを扱うのが楽かどうかは別問題です・・・)

NVIDIA の対応ドライバ(ベータ)のページ
https://developer.nvidia.com/vulkan-driver

AMD の対応ドライバ(ベータ)のページ
http://gpuopen.com/gaming-product/vulkan/
ここの “Radeon™ Software Beta for Vulkan™ ¹” という文字列でリンクがはってあるのでここからジャンプしたページでダウンロードできます。

Vulkan のリファレンスページ
https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html

ヘッダや仕様がまとめてあるページ
https://www.khronos.org/registry/vulkan/

サンプルのページ
https://github.com/McNopper/Vulkan
https://github.com/nvpro-samples/gl_vk_threaded_cadscene

今回は C++ の API ラッパーもオープンソースで用意されているようです。
https://github.com/nvpro-pipeline/vkcpp

導入までについて

Project-Asura さんがブログにて、導入までを解説してくれました!


Vulkan の情報まとめ


以前にも Vulkan の情報が出てきたときにリンクを張りましたが、
現在は NVIDIA が Vulkan の情報をいろいろと公開してくれているので再度まとめてみました。

Vulkan の各オブジェクトの関連や概要など。
https://developer.nvidia.com/engaging-voyage-vulkan

Vulkan でのシェーダーリソースバインディングに関するドキュメントです。
https://developer.nvidia.com/vulkan-shader-resource-binding

Vulkan でのメモリ管理のドキュメントです。
https://developer.nvidia.com/vulkan-memory-management

OpenGL から Vulkan への移行に関するドキュメントのようです。
https://developer.nvidia.com/transitioning-opengl-vulkan

OpenGL で Vulkan に迫る性能を出すためのドキュメントです。 NV拡張の Command_list を使ったりバインドレスを駆使するようです。OpenGLでなんとかがんばりたい人には魅力的なものじゃないでしょうか。
https://developer.nvidia.com/opengl-vulkan

しかし、ずいぶんと Vulkan の情報が増えてきました。
amazon でも Vulkan の赤本が予約可能になっているようですし、
とうとう今年、 Vulkan の API が触れるようになると考えて良さそうですね!楽しみです。

※ Vulkan 赤本は8月頃のようです・・・


VisualStudio 2015 と VMwareWorkstation


Windows10 環境にしたこともあり、VisualStudio 2015 も普段使いの環境に追加していました。このときに、 VMware Workstation 12 で仮想マシンを構築・起動をしようとした際に、「64ビットのゲストOSはこのホストではサポートされていません」というエラーメッセージが出てしまいました。

このエラーは、仮想化支援の機能が BIOS で OFF にされていたり、 そもそも CPU が対応していなかったりすることでみるものなのですが、今回はそれら以外でこのエラーを見たのでここにメモしています。

Android 開発もできるようになったとのことで、 VisualStudio 2015 のインストール時に、 Visual Studio Emulator for Android という開発用のエミュレータをインストールしてしまったことにありました。

このエミュレータはクライアント Hyper-V の機能をベースとして使っているようで、これが原因となっていました。

仮想化支援の機能は基本的にはすでに使用されていると次のアプリでは使用できないため、このような症状になったというわけです。(近年は、Nested な仮想化支援環境も構築できるよう進んでいますが、Hyper-V はこのあたり非対応のままのようです)

早速、コントロールパネルから Windows の機能の部分で Hyper-V に関するところを確認してみたら、インストール済みとなっていましたので、チェックを外して無効化しました。この後再起動を要求されます。

再起動後は、 VMwareWorkstation では当初出ていたメッセージが消えました。一方で、案の定ですが VisualStudio の Android エミュレータは使用不可能となっていました。両立できないのは残念ですが、仕方のないことではありますね・・・。


N3150M で ESXi 6.0 を動かす


Braswell 環境では ESXi のインストールが正常にできず、
ESXi を使用することが出来ない、と以前は結論付いたのですが、
制限がありながらも動作させることができた、という情報を元にチャレンジしてみました。

制約は、ローカルの画面が使えないこと。いわゆるヘッドレスという状態での使用しか出来ないことです。画面は出せないが、内部的に動作は正常に行えている、という状態ですね。

esxi60-usb-5

必要なもの

  • USBメモリ (8GB)
  • カスタムの ESXi 6.0 イメージ
  • VMware player

手順

概要としては以下のようなステップとなります。

  • カスタムの ESXi 6.0 イメージを準備する
  • VMware playerを用いて起動可能USBメモリを作る
  • そのUSBメモリにはシステムの設定を施しておく
  • N3150M に準備したUSBメモリを装着して起動
  • sshやvSphereClientを用いて別PCより接続

要はインストールが実機で行えないので、仮想マシンを利用して設定を済ます、というイメージです。 続きを読む


DevTexThumb 0.9.1 に更新しました


テクスチャ画像ファイルのサムネイル拡張の DevTexThumb を更新しました。
今回 0.9.1 では、TGA や DDS で一部読み込めないファイルが存在していた点への対応です。

DevTexThumb のページはこちら。

TGA ではインデックスカラー(パレット)のタイプへの対応と、16bit 形式でアルファチャンネルがついたものの処理を見直しました。


EGL_MESA_platform_gbm 拡張


今更かもしれませんが、 EGL_MESA_platform_gbm という拡張が出現しているようでした。
さらりと中身を見てみると、 Xorg 関連の初期化不要で、 EGL と GBM の初期化だけで OpenGL ES が使えるようになるものと思われます。

手元の環境では VMware Player 6 のドライバおよび Fedora23 では、この拡張が出現しませんでしたが、 Mesa の今後の Version アップにより使えるようになるといいなと思いつつ待つことにします。


X-Window なしで OpenGL ES2 を使う その2


前回 実装はしたので、これらがちゃんと各環境で動くのかを確認してみたいと思います。

VMPlayer 6

VMPlayer6上での Fedora23 での結果は以下の通りです。
OpenGL ES 3.0 のコンテキストが生成されています。ベンダ名やレンダラ名から一応完全ソフトウェアエミュレーションで動いているというわけではなさそうです。
動作速度的にもドライバがちゃんと機能していそうです。

Radeon

Debian8 で RADEON HD 7750 が刺さっている環境での結果は以下の通りです。
OpenGL ES 3.0 のコンテキストが生成されており、オープンソースドライバで動いているようです。

ここでは省略ですが、DisplayPort, HDMI, DVI の端子を保持するボードのため、
これらの情報も Connector として検知できているようでした。

Intel

Debian8 で オンボードの Intel チップ(G41)でも同じように試してみました。
古いチップではありますが OpenGL ES 2.0 で描画可能でした。

こちらは VGA 出力でしたがコネクタタイプも正しく検知できてました.

NVIDIA

Debian8 で NVIDIA Geforce 750Ti で試してみました。

見ての通りオープンソースドライバで動いているようです。
こちらについても接続端子の情報はうまく取得できていました。

まとめ

簡単ですが各環境での動作確認を行いました。試してみた範囲ではうまく動作できているようです。
Linux におけるメーカー公式ドライバではちょっとインストールに手間取り十分な確認ができていませんのでご注意ください
(おそらく NVIDIA 公式 Linux ドライバでは動作しないと思われます・・・)