Direct3D11/DirectX11 GeForce の ComputeShader とドライバ

少し前から Compute Shader が使えなくなっていました。

Direct3D11/DirectX11 ComputeShader 4.0 を使う

上のエントリを書いたあと、ドライバを 186.18 に更新したら
CheckFeatureSupport() の D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS で
ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x が 0 を返す
ようになっており、実際に CreateComputeShader() が失敗します。
今回 190.38 に更新してもやっぱり同じで、186.08 に戻したら動きました。

なお CheckFeatureSupport() の D3D11_FEATURE_THREADING で
DriverConcurrentCreates は 1 を返すので、ドライバがきちんと D3D11 に
対応しているのは本当です。
DriverCommandLists が 0 なので Deferred Context はドライバの
エミュレーションになりますが、リソース生成はスレッドに対応している
ことになります。

DriverConcurrentCreates
 リソース生成のスレッド対応かどうか。

DriverCommandLists
 ドライバが CommandList の記録と実行に直接対応しているかどうか。
 0 でもコマンドバッファをソフトウエアで記録するため実行できます。

以前描画周りを Direct3D11 対応で作り直していて積極的にスレッド化したの
ですが、ロード後のリソース生成でまれに失敗することがありました。
よく考えたら当時まだドライバが DriverConcurrentCreates に
対応していなかったので当たり前でした。

関連エントリ
Direct3D11/DirectX11 ComputeShader 4.0 を使う
Direct3D11/DirectX11 (6) D3D11 の ComputeShader を使ってみる

メビウス PC-NJ70A (8) タッチアプリとイルミスキャン

モニターレポートで少々当てが外れたのは、2回目くらいまでには SDK など
何らかの開発情報が出てるだろうと予想していたからです。

最初の使用感などから徐々に詳細に踏み込んだり、実際に応用を試したりと
そんな流れを想定していました。まだ動きがないので、もしかしたら Windows7
のリリース待ちかもしれません。
開発関連の情報があれば、この興味深いデバイスで何が出来て何が出来ないのか
明らかになってくると思います。

●アプリの追加

売りである光センサー液晶パッドには最初からいくつかのアプリケーションが
組み込まれています。手書き文字対応辞書やゲーム、電卓や手描きツールまで
一通りそろっています。

ここにはさらに専用のアプリを追加することができます。

まだ SDK などの配布が行われておらず、対応ソフトを自由に作れる状態では
ないのですがメーカーのサイトで新しいソフトが公開されていました。

PC・モバイル ユーザーズ倶楽部

上記サイトの「ダウンロードサービス」に「タッチソフトダウンロード」という
アイコンがあります。

 PC-NJ70/NJ80用 タッチソフト
   ゲームソフト「イルミスキャン」

早速試してみました。

●ゲーム内容

インストール手順は一般的な Windows ソフトと同じです。
ダウンロードした IllumiScanInstaller.exe を実行します。

完了するとタッチパッド部のホームメニュー「エンターテインメント」の中に
アイコンが追加されており、イルミスキャンを遊べるようになっています。

Windows7 RC に入れましたが問題なく組み込み&実行できました。

ゲーム内容は、表示された丸いマーカーを指で隠していくというもの。
一度に複数のマーカーが現れるので、そのすべてを指で覆います。
マルチタッチでないとできない操作だし、いくつでも検出可能な光センサーだから
こそ実現できる内容といえます。

ゲーム内容の方は反応がいまいちなのか自分の操作が下手なのか、音で反応は
するけどうまく進めなくて時間切れです。遊び方のヘルプを何度も見返したものの
どうもうまく遊べませんでした。

でもこのアプリ、真に見るべきところはそこではないようです。
ゲーム中は余裕がなくて気がつかないのですが、上のメイン画面の方に
タッチパッドに触れている指の影がうっすらと映っています。

mebius pc-nj70a
↑三本指

mebius pc-nj70a
↑タッチペンを置いてみたところ

おそらくタッチパッド部分で取り込んでいる映像だと思われます。
タッチペンなど、きちんと形が取れているのがおもしろいところです。

今までのアプリでは、一般的なタッチパッドとしての使い方からあまり大きく
外れたものではありませんでした。
イルミスキャンでは本当に画像として実データを見ることが出来るので、
初めて光センサーらしさを実感できた気がします。

●インストールまで

イルミスキャンでゲームより手間取ったのはダウンロードまでの道のりです。
無料ダウンロードだけどユーザーズ倶楽部への会員登録が必要です。

ユーザー登録には名前住所など個人プロフィールが必要になるので書き込みます。
その途中で所有している SHARP 製品の登録番号を入れます。
製品をユーザー登録すると得られる番号らしく、仕方なく先にこちらも登録。

するとまた同じように名前住所などを書き込む欄があって製造番号も入れます。
これで登録番号が得られたので、あらためて ユーザーズ倶楽部の ID を取得します。

ちょっと試したいだけなのに 2度手間のような登録作業や、何度も書かされる
個人情報など、義務感がなかったら途中であきらめていたかもしれません。
本体を所有していれば勝手につながってダウンロードできるなど、何らかの
工夫が欲しいと感じました。
もっと簡単になればダウンロード数も増えるのではないでしょうか。

●タッチアプリ

比較的気に入っているのは手書き文字認識です。
ペン操作は指より操作しやすく候補も即座に出てきて気持ちよく使えます。

逆にいつも残念に思うのはメビウスの全画面乗っ取ってしまうアプリケーションです。
ゲームもタッチパッド部だけで遊べるものが多いのに、関係ないはずの上の
ウィンドウズ画面も奪われます。

マウスモードとタッチメニューはいつでもワンボタンで切り替えできます。
電卓等は他の作業中でもいつでも呼び出せるのが良いところ。
ゲームも同じように呼び出せたら便利だと思うのです。

たとえばブラウザを開いた状態で、ファイルのダウンロード中だけちょっとだけ
パズルを進めておきたい、と思ってもできない。
ゲーム中マウスモードには切り替えられても、上のフルスクリーン画面が残るので
結局アプリを終了しなければならないからです。

PC に統合された光センサー液晶パッドは、1つのことに専念するような使い方より
気軽に呼び出せる方があっていると思います。

イルミスキャンでは、タッチパッドに乗せた物体の形を判別できることがわかりました。
タッチパッドとして無理に使うより、光センサーにしかできないことを考えた方が
良さそうですね。

関連エントリ
メビウス PC-NJ70A (7) 一ヶ月後
メビウス PC-NJ70A (6) ユーザーインターフェース
メビウス PC-NJ70A (5) サブモニタ
メビウス PC-NJ70A (4) 使用感
メビウス PC-NJ70A (3) Windows7 RC を入れる
メビウス PC-NJ70A (2) 初期セットアップとメモリ増設
メビウス PC-NJ70A 液晶センサータッチパッド
メビウス PC-NJ70A 画面解像度とタッチ

UP300 アプリ

いつの間にか、UP300x/UP300 がアプリ対応になってるようです。

UPLAB UPアプリとは
UPLAB UPアプリ開発ガイド

ネイティブではなく Flash でした。
もともと WindowsCE が使われており、ブラウザが動いていたのでその上で
動作させるようです。

関連エントリ
ニコン UP300x/UP300 を体験してきた。ヘッドマウントディスプレイ

メビウス PC-NJ70A (7) 一ヶ月後

モニター開始から一ヶ月。とはいえ SDK 等の動きもないので、特に何も変わって
ないというのが正直なところです。
HDD なのでアプリケーションのインストールで困ることもなく、容量も書き込み
速度も気にせずに使っています。

主な用途は 32bit OS での動作テストや、テキストメモ取り PC として。
基本的にはこれまで使ってきたノート PC と全く一緒です。
売りの光センサー液晶パッドはあまり活用できていないので、SDK が公開されるか
追加アプリが登場するまで眠らせておくかもしれません。
サイズも重さも決して悪いスペックではないのですが、今だと他にもっと小型軽量な
良い選択肢があるだけに悩ましいところです。

● Windows7 RC

Windows7 RC で使用しています。詳しいインストール手順はこちら。
メビウス PC-NJ70A (3) Windows7 RC を入れる

Windows7 RC で液晶パッドへのアプリの追加
メビウス PC-NJ70A (5) サブモニタ

Windows7 なのは主に動作テストのためと、標準の Home Basic ではリモートデスク
トップなどいくつか機能制限が生じるためです。

個人的に行っている設定

ネットブック系 PC は横長のワイド画面が多く、縦方向は狭くなっています。
WindowsVista までは、設定次第でタスクバーの上にアプリケーションウィンドウを
重ねることが出来ました。
Windows7 はできないので、タスクバーを画面の左端に配置しています。
アプリケーションで上下幅をめいっぱいまで使えるように。
タスクバーをわずかに横にのばすと、時刻だけでなく日付も表示できます。

pc-nj70a
pc-nj70a

●マウス

Bluetooth の外付けマウスを使用しています。

SONY VGP-BMS33

光センサー液晶パッドはマウスモードで表示を消す設定にしていますが、
何らかのタイミングで液晶パッドのバックライトが点灯してしまいます。

 SHARP 液晶パッド設定→マウスモード時に、液晶パッドの表示を消す

サスペンドから復帰したタイミングや、省電力設定でメインディスプレイの電源が
切れた場合、その復帰と同時に液晶パッドも点灯してしまうようです。
真ん中ボタンでいったんパッドのモードを切り替えるとバックライトが消えます。

持ち歩いてて一度、光センサー液晶パッドの反応が悪くほとんど操作出来なくなる
ことがありました。室内だったので、汗などによるパッド部の汚れが原因では
ないかと思います。外付けのマウスは必須となりました。

●アドオンジャケット

アドオンジャケットは天板の保護にもなるし、好きなメモとか挟んでおけるので
おもしろい仕組みです。欠点は 100g ほど重くなること。
持ち歩く用途を考えた場合どちらを優先するか悩みます。
結局軽量化を考えて取り外しました。

●通信

外では UQ WiMAX を使用しています。
こちらはモニターではなく購入品。
まだエリアが限られていますが、一度つながれば外でも高速な通信が可能です。
7月から正式サービスが始まることもあり、以前使えなかった場所でもつながるように
なってきました。

●インストールソフトウエアメモ

インストールしている主なソフト。
Google Chrome
ATOK2008
DirectX SDK March 2009
UD01SS Utility
Vim 7.2

関連エントリ
メビウス PC-NJ70A (6) ユーザーインターフェース
メビウス PC-NJ70A (5) サブモニタ
メビウス PC-NJ70A (4) 使用感
メビウス PC-NJ70A (3) Windows7 RC を入れる
メビウス PC-NJ70A (2) 初期セットアップとメモリ増設
メビウス PC-NJ70A 液晶センサータッチパッド
メビウス PC-NJ70A 画面解像度とタッチ
Windows7 beta で UQ WiMAX

iPhone 3GS 入手

昨日の朝に入手。比較的手に入れやすそうな店を選んだけれどさすがに混雑していて
しばらく待たされました。iPhone 3GS

手に入れたあと周りからきかれるのは「速い?」「速くなった?」ばかり。
正直あまり速いとか実感していないのですが、事実上目立った違いがそれしかない
ということでしょうか。
おそらく前使っていたのが比較的速い iPod touch 2G で、通信も無線LAN しか
使っていなかったせいでしょう。3G の通信で遅いと感じるなんて贅沢になりました。

中身は大幅に入れ替わっているようで、iPhone 3G のおよそ 2倍だそうです。

iPhone 3G    : ARM11         412MHz   8stage  128MB
iPod touch 2 : ARM11         533MHz   8stage  128MB
iPhone 3GS   : ARM Cortex-A8 600MHz  13stage  256MB

core が違うので単純な比較は出来ませんが、クロック周波数で 約1.46倍。
さらに Cortex-A8 はスーパースカラで 2命令同時発行らしいので、2パイプ動作して
実質 1.4倍程度と考えると (1.4*1.46= 2倍) ちょうど良い感じです。
その代わりインオーダー発行なので命令並びに依存するし、パイプラインの
ステージ数もだいぶ深くなっています。

wikipedia ARM architecture

メインプロセッサもそうですが、PowerVR SGX は ShaderModel 3.0 が動作する
はずなので、本当に違いが出るのは今後対応アプリが出揃ってからになるでしょう。

表面上変わってない、違いが少ないというのはむしろすごいことです。
過去にずっと長いこと日本製 PDA を使っていましたが、アプリ開発上の難関は
ユーザーインターフェースの互換性でした。
新製品が出るたびにボタン配列も全部変わってしまうし、そのたびにいちいち
プログラムを修正して、新しい操作方法を考えて、対応アプリを出さないと
いけなかったからです。
対する Palm は頑なにボタン配列を守り続けていました。

当時メーカーの方に話を聞く機会がありましたが、曰く商品コンセプトありきだとのこと。
毎回どこで売るのかコンセプトを考えて、ハードもそれに合わせてデザインする。
ソフトウエアもあわせて必要になれば調達すれば良い、とのお話でした。
商売としては正しいし全く異論はないのですが、ソフトウエア開発者としては
そこに何の未来も見いだせなかったのは事実です。
ZAURUS から手を引いた理由の1つはここにあります。

今の携帯電話もそうかもしれません。
ZERO3 も非常に使いやすくて気に入っていたのに、なかなか良い点が新型に引き継がれ
ません。良い感じにカスタマイズできても、新型に乗り換えるとまた同じことを最初から
やり直しです。
新たに発生した使いづらいところを穴埋めしていく作業なのです。

iPhone の魅力の一つは操作方法がずっと変わらないだろうと安心できること。
ビジョンがあって貫かれているからこそ、目先の商品コンセプトに振り回される
ことがないんでしょう。
速度とか OS3.0 の細かな変更点とかいろいろありますが、性能が上がって機能が
増えても、重要なところが大きく変わらないからこそずっと使い続けていけるはず。

これまで iPod touch 2G を使っていました。音楽プレイヤー扱いながら、
過去に使ってきた PDA の中では一番使いやすくて実用的だったという印象です。
OS3.0 への更新も、ソフトウエアをダウンロードしただけなのに Bluetooth が
使えるようになりました。
1200円でハードウエアも一緒に付いてきたような得した感じです。

HID はありませんでした。PS3 も Wii もコントローラは Bluetooh なので、もしか
したらキーボードだけでなくゲームコントローラもつながっていたかもしれない
と思うと少々残念です。

iPhone 3GS は iPod touch と比べると厚みもあって大きく感じます。
その代わりどこでも通信できて GPS とコンパスも使えるし、持ち歩くものを1つ
減らせます。乗り換える決め手となったのは MMS で、メールアドレスも変わらずに
従来の携帯電話を置き換えられるようになりました。

SMS/MMS はメーラーというよりチャットのような画面レイアウトで、フォルダではなく
送信相手毎に分類されます。
最初悩んだのは MMS の送信が出来ないこと。上の「メール」というボタンを押すと
ただの E-Mail になってしまいます。
下にある1行の入力欄が SMS/MMS 送信用の本文でした。検索だと思ってました。
いろいろ慣れない部分も多いので、これから慣れます。