問題タブ [tegra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - リトル エンディアン マシンで 2 つのビッグ エンディアン値を追加する
現在、回避方法がわからない問題に直面しています。
ビッグ エンディアンまたはリトル エンディアンのデータを処理しようとしています。常にヘッダーで始まるため、これは実際には問題ではありません。使用する必要があるエンディアン モードを確認できますが、値のデコード中に、ビッグ エンディアン データの実装方法がわからない操作がいくつかあります。
コードはリトル エンディアン (またはリトル エンディアン モードで実行) の nVidia Tegra (ARMv7 アーキテクチャに基づく Cortex-A9) で実行されますが、ビッグ エンディアン データを取得することがあります。
データに対するほとんどの操作は実際には問題ではありませんが、追加を正しく行う方法がわかりません..
ご覧のとおり、ほとんどのバイトは結果で既に正しいですが、一部は正しくありません。加算は常に右から左 (リトル エンディアン マシン) に行われるため、予想される結果とは +1 または -1 だけ異なります。
このリトル エンディアン マシンでのビッグ エンディアンの加算の場合、左から右に加算し、キャリー (ある場合) を右に取る必要があります。
私の質問は、正しい結果を得る可能性があるかどうかです(おそらくプロセッサに特別な命令を使用していますか?)。両方のオペランドと結果を元に戻すよりも「安価な」これらの +1/-1 の違いを取り除くために、結果に対して実行できる操作がさらにあるのではないでしょうか?
よろしく、 トバイアス
performance - ARM (Tegra 3) で L2 キャッシュをフラッシュすると、パフォーマンスが予期せず向上する
このシナリオでは:
別のスレッドで、ネットワーク経由で約 1MB を TCP 経由のバッファに受け取ります。
このバッファを解凍すると、約 2MB のデータが生成されます。
私がソースを所有している同じ動的にリンクされたライブラリ関数への2 つの呼び出し。基本的には、NEON をサポートする FFTW 3.3.3 を使用した一連の FFT です。FFT の最初のセットはコールドで、2 番目のセットはホットです。
コールド ランは、ホット ランよりも約 200 ミリ秒遅くなります。
- コールド: 570 ミリ秒
- ホット: 260 ミリ秒
1.) と 2.) がまったく同じデータのファイルからの読み取りに置き換えられた場合、ホット ランとコールド ランは同等に高速になります。
ネットワーク データを約 200K に減らし、圧縮解除されたデータを 400K に減らすと、パフォーマンスはコールドとホットで同じになります。
2.)の直後に L2 フラッシュ* を実行すると、コールド パフォーマンスが向上し、ホット パフォーマンスと同じになります。私はこれを理解していません。多くのコンパイラ オプションを変更しようとしましたが、オプティマイザが使用されている限り、この動作が見られます。
フラッシュするキャッシュが少ないと、コールド ランのパフォーマンスは比例して悪化します。
*これは、1MB L2 キャッシュをフラッシュするために使用しているコードです。
巨大な switch ステートメントを使用して命令キャッシュをフラッシュしても、あまり効果はありません。ここに示すように、32,000 ケースを使用しました: 命令キャッシュ ミスを引き起こすにはどうすればよいですか?
FFT が操作するデータをメモリの別の部分にある複製構造にコピーしてからコピーを操作すると、L2 をフラッシュするのと同じ効果はありません。
何が起こっているのか理解したいです。Tegra 3 では、プロセスとスレッドのアフィニティをシングル コアに強制しました。他にどのような簡単にアクセスできる測定値を作成または表示できますか?
android - NSight で Android の非ネイティブ プロジェクトをコンパイルしようとしています
Visual Studio で新しい nsight プラグインを使用して、ネイティブ コードなしでプレーンでシンプルな Android アプリケーションをコンパイルしようとしています。問題は、コンパイルするものがないため、ビジュアルスタジオがコンパイルしようとさえしないことです。ant debug を手動で実行すると、正常にコンパイルされます。Visual Studio は c ファイルをコンパイル対象として認識するため、ネイティブ コードを含む Android アプリケーションは正常に動作します。そのままでは、ネイティブコードオプションのないAndroidアプリケーションはかなり役に立たないため、これを修正する方法を知っている人はいますか?
出力は
また、コマンド ラインで ant build を実行すると、正常にビルドされることにも注意してください。
android - OES_framebuffer_object 拡張は Tegra ベースのデバイスで壊れていますか?
FBO 拡張 ( GL_OES_framebuffer_object )を使用する OpenGL ES 1.x コードをAndroid に移植し、 Tegraベースのデバイス ( Tegra 2、Tegra 3 ) で問題が発生しました。問題は、サポートされている拡張機能のリストでデバイスがGL_OES_framebuffer_object拡張機能を報告している間、機能の一部が壊れているように見え、特に関数が拡張関連の定数 (例: ) を報告するエラーglGetIntegerv()
を受け入れないことです。同時に、他の拡張機能関連の機能は正常に動作します。GL_FRAMEBUFFER_BINDING_OES
GL_INVALID_ENUM
- それは既知の問題ですか?
- よく知られている回避策はありますか?
- 誰かもこの問題に直面していますか?
テスト対象のデバイスは、Nexus7 と Acer A500 です。
android - OpenGL ES: Tegra 固有の拡張機能 (GL_EXT_texture_array) を使用
現在、NDK を使用して Android 用の OpenGL-ES アプリケーションを開発しています。アプリケーションは、次の Open-GL 拡張機能から大きなメリットを得られます。
GL_EXT_texture_array
(詳細はこちら: GL_EXT_texture_arary )
拡張機能は、私の Tegra-3 デバイス (Asus EeePad Transformer Prime Tf-201) でサポートされています。
私が現在直面している問題は、拡張機能が Open-GL ES API レジストリに含まれていないため、アプリケーションで拡張機能を使用できるようにする方法がわからないことです。
(「拡張仕様」を参照してください: http://www.khronos.org/registry/gles/ )
しかし、「GL_NV_texture_array」と呼ばれる拡張機能に気付きました。これは同じ用途のようですが、私の Tegra-3 デバイスではサポートされていません。 .
関数ポインターを使用して拡張機能を含める可能性があることを認識しています。でも、もっと快適な方法があるかもしれないと思いました。必要な拡張子を含むヘッダー ファイル (gl2ext_nv.h) も見つけました。しかし、Google で検索すると、ファイルは常に特定のプロジェクトの一部であり、公式のものではありません。このヘッダー ファイルも目的の拡張機能も含まれていない Tegra Android Development Pack (2.0) もダウンロードしました。
誰か私にこれを説明してもらえますか?
Tegra-3 デバイスでサポートされている Open-GL ES 拡張機能を使用するにはどうすればよいですか? (NDK の) 公式の Open-GL ES 固有のヘッダーではサポートされていないようです。
前もって感謝します!
android - Androidソースコード(4.1)のtegraのハードウェアコーデックコードはどこですか
Androidソースコード(4.1)でtegra 3のハードウェアコーデックコーデックを見つけたいです。見つけたソースコードで
したがって、ハードウェアでビデオをエンコード/デコードする必要がある場合、Android OS はlibstagefrighthw.soをロードします。tegre 3 は h.264 hareware コーデック (リンク) をサポートしているため、Android OS でコードを検索したいと考えています。しかし、qcom と TI のコードしか見つかりません。
tegra 3 ハードウェア コーデック コードの場所を教えてくれる人はいますか?
android - System.LoadLibrary(libname) が Javacv コードの Nvidia Tegra 2 チップセット (Android Samsung Tab) でクラッシュする
Javacv コードを使用して Andorid でカスタム カメラを作成しました。すべての .so ファイルを含めたわけではなく、アプリケーションに必要と思われるものだけを含めました。以下のスクリーンショットのように:
Samsumg Galaxy S2、S3、Sony Ericsson Xperia Arc でうまく動作します。全く問題無い。しかし、Samsung P7500 Galaxy Tab 10.1 で実行しようとすると、使用した Javacv コードの最初の行でクラッシュしました。
この試行の Logcat 出力:
私のスーパー ヒーロー「Mr. PID 7847」が死亡しました :(
このログから、アプリが libtbb.so にリンクしようとしていると簡単に解釈できますが、何が問題なのかわかりません。
ソースコードを javacv jar に添付しましたが、まだ手がかりがありません。次に、jar を削除し、必要な jar を含むコードをプロジェクトに含めました。以下のスクリーンショットでわかるように:
ブレークポイントを使用すると、アプリがクラッシュしていることがわかりました
logcat の出力では、ほとんど同じようなコードが得られましたが、コードのどの部分が機能していないかがわかります。
「Mr. PID 7847」殺人事件をさらに調査したところ、コードに問題があるのではなく、Galaxy Tab チップセットに NVIDIA TEGRA 2 があり、これが原因でアプリが動作していないことがわかりました。
クラッシュ ログの主な行は次のようになります。
これまでのところ、armeabi-v7a と armeabi の間の問題のようです。今、私は MCQ を持っています : 次のうちどれが正しい質問であるかを教えてください。また、その答えも説明してください。
1) Javacv を使用しているときに、今まで何かを見逃したり無視したりした場合は?
2) または、Javacv が Tegra 2 とまったく互換性がなく、希望がない場合は?
3) または、Tegra 2 互換にする追加設定 (armeabi-v7a および armeabi) を使用して .SO ファイルをコンパイルする必要があります。
4) Galaxy P7500 10.1 Android Tab のような Tegra 2 チップセット デバイスで実行するにはどうすればよいですか?
私のデバイスの build.prop ファイル: