Android

タブレット復活

いろいろとありましたがようやくICONIA TABが復活できました。 現時点では日本語公式ファームウェア 3.1 にして使用中です。 前回にデバッグができないようになってしまったという点についてですが、ホスト環境が悪かったようで再構築したところデバッグができるようになったことを確認できました。 ホスト側のeclipse workspaceを変更したり移動した...
Android

カスタムファームに入れ替えた

こんな状態じゃ使えない!と思い立ってとうとうICONIA TAB A500にカスタムファームをいれることにしました。 こんな状態じゃ使えないって部分は先日の日記を参照で。 カスタムファームを入れる際には慣れていないためいろいろと苦労しました。完全に文鎮化しなかったのはよかったです。大雑把ですが以下のような手順でファームを入れ替えました。 rootをとる Ac...
Android

3.2.1の問題か?

うちのICONIA TAB A500を Android 3.2.1 に更新してから NativeActivity を使ったものが起動しなくなった。 うーん、3.2.1の問題なのか、機種固有の問題なのか切り分けてみなきゃなぁ・・・。 NativeActivity がサポートから外れる・・・とかだったら困るなぁ。 とりあえず、エミュレータで試してみたところ問題な...
Android

Tegra2での不具合

Tegra2でだけ特定のエラーメッセージが出てうまく動かないということに悩まされていました。調べてみても、日本じゃ該当なし、海外で報告があるけどよくわからないまま終了というやっかいな状態でした。 それが今回ようやく解決方法含めてわかったので、記事にしてみました。 戦っていたエラーメッセージは 、P1202: Texture's gl states do no...
プログラミング

Load-Link/Store-Conditionalを見直した

CASを持たないアーキテクチャ CAS(Compare-And-Swap)を持っていないアーキテクチャで、アトミック操作はどうやるのか調べてみました。そういう部分ではLoad-Link/Store-Conditionalという命令を使って実現するみたいです。 PowerPCでは、lwarx/stwcx という命令。 ARMでは、ldrex/strex という...
プログラミング

スレッド同期のエトセトラ 第3回

Visual C++ 2005以降のvolatileのMS拡張 さらにvolatileについて、Microsoft独自拡張がなされてる記載を見つけました。 VisualStudio使って、Windowsアプリケーションを作る上ではこのルールだけでやっていけるのかもしれません。 Visual C++ 2005 には、volatile 変数へのアクセスに関して、...
プログラミング

スレッド同期のエトセトラ 第2回

前回のvolatileの変数を同期プリミティブに、な話の第2回です。 Microsoftの文章では、AcquireバリアはRead-Acquireバリア、ReleaseバリアはWrite-Releaseバリアと表現されています。確かにメモリバリアが使用される状況を考えると、アトミック変数代入時にはすなわち書き込みなので、Write-Releaseバリアという...
プログラミング

windows.hのmin/maxについて

今日の、VisualStudio Tips。 windows.hをインクルードすると、min/maxがマクロ定義されてしまうやっかいな問題?がある。 しかしながら、実は NOMINMAX というマクロ定義をして windows.h をインクルードすることで、これらが定義されることを防ぐことができる! これは地味なようで、自作算術ライブラリとか作ってると非常に...
プログラミング

スレッド同期についてのエトセトラ

世の中には、volatile付けただけでその変数を同期プリミティブとして使用OKという誤った認識があるような気配だったので、ちょっと調べてみました。自分の認識を整理するためでもあるけど。 volatile修飾は何をしてくれるのか。まずはこれを考えてみます。 volatileはコンパイラによる最適化を抑制してくれます。これは、コンパイラによる命令の移動、メモリ...
Android

よくわからないバグ

Iconia Tab A500でOpenGL ES 2.0使ったテストコードで、"P1202: Texture's gl states do not match with shader's" というエラーが出てしまい、プログラムがうまく動かなかった。 現在調査中。そんな変なコードを書いたつもりはないんだけど。 シンプルな再現コードを作るのもやっかいで、ゼロか...