問題タブ [mali]

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.

0 投票する
2 に答える
970 参照

android - Android OpenGL ES がラスタライズされない - 行列乗算が切り替わる

新しい SGS3 (I9300 - LTEではない) を購入したばかりで、OpenGL ES (2) アプリケーションの開発を続けたいと思っていました。残念ながら、コンパイルすると何も表示されません。

次の LogCat エラー メッセージが表示されます。

カスタム ROM (cyanogenmod 11 - スナップショット M4) もインストールしましたが、同じ問題が発生します。

アプリを起動すると、頂点がラスタライズされていない空白の画面が表示されます。これまでのところ、クリア カラーは機能するので、OpenGL の基本機能は機能しています。

ここに画像の説明を入力

確かに、GLES 1 と GLES 2 を使用して、Google Developers ページの基本的なチュートリアルで試してみました。どちらも機能しません。スクリーンショットは次のとおりです。

http://developer.android.com/training/graphics/opengl/index.html

プロジェクト自体は私の古いGalaxy S1 (Cyanogenmod でも) で正常に動作しますが、SGS3 では空白の画面以外は何も表示されません。

Mali-400 MP4グラフィックス ドライバー/システムが GL コマンドを異なる方法で解釈する可能性はありますか? SGS1 からHummingbird GPUを使用する以外に呼び出す方法はありますか?

何をすべきか考えている人はいますか?これは私の電話または日食の問題ですか? それとも、これは正常ですか - 私の理解不足ですか?この問題を解決するにはどうすればよいですか?

------- 編集: 解決策が見つかりました -------

わかりました、エラーを見つけました。Google ドキュメントは、頂点シェーダーでの行列の乗算が「間違っている」ことを示しています。

これは私の古い Galaxy S1 にとっては問題ではないようですが、どういうわけか S3 (または Mali GPU) はこれについてうるさいです。乗算の順序を次のように変更しました。

そして、それは機能します(S1でも)。S1 が両方のバージョンで正常に動作する理由はまだわかりませんが、これで問題は解決しました。

ご協力いただきありがとうございます!

0 投票する
2 に答える
917 参照

arm - ARM 上の Opencl - プラットフォーム ID を取得できません

リモートでARMプロセッサとMali GPUを搭載したLinuxマシンでopen clを実行しています。しかし、clGetPlatformIDs() で「不明なエラー: プラットフォーム ID を取得できません」のようなエラーが発生しています。

両方試してみました

しかし、両方について、同じエラーが発生しています。AMDグラフィックスを搭載した個人用のWindowsラップトップでも同じコードが機能しています。

このエラーの原因は何ですか?

0 投票する
2 に答える
568 参照

opencl - ARM Mali - CPU と GPU 間で読み取り専用メモリ オブジェクトを同時に共有する方法は?

ARM Mali T604 GPU を使用しています。ALLOC_HOST_PTR を使用してメモリ オブジェクトを作成しました。次の手順が有効かどうかを知りたいですか? GPU のメモリ オブジェクトにアクセス (読み取り専用) し、CPU に同じメモリ オブジェクトを (読み取り専用として) 同時にマップすることはできますか?

手順 1: メモリ オブジェクトのマップを解除します (以前は CL_MAP_READ_WRITE としてマップされていました)。

ステップ 2: CL_MAP_READ (clEnqueueMapBuffer() への引数) を使用してメモリ オブジェクトをマップし直します。

ステップ 3: CPU と GPU で同時にデータを読み取り、処理します (ただし、このメモリ オブジェクトに対して書き込み操作は行いません)。

ステップ 4: メモリ オブジェクトのマップを解除する

ステップ 5: CL_MAP_READ_WRITE を使用してメモリ オブジェクトをホストにマップします。

言い換えれば、私の最終的な目標は、CPU と GPU が同時に読み取り可能なメモリ オブジェクトを用意することです。これは Mali OpenCL プラットフォームで可能ですか?

0 投票する
1 に答える
691 参照

memory-management - clEnqueueMap には長い時間がかかり、clEnqueuwritebuffer とほぼ同じです。

Mali 600 gpu の OpenCL ガイドに基づいて、CL_MEM_ALLOC_HOST_PTR を使用してデータ コピーを削除し、パフォーマンスを向上させる必要があります。

今日、Mali 604 GPU を搭載した Arndale ボードで CL_MEM_ALLOC_HOST_PTR を使用してメモリ コピー時間をテストしていました。CL_MEM_ALLOC_HOST_PTR と clEnqueueWriteBuffer でテストしました。CL_MEM_ALLOC_HOST_PTR を使用すると、全体的にパフォーマンスがあまり向上しないことがわかりました。clEnqueueMap 関数は clEnqueueWriteBuffer とほぼ同じ時間がかかるためです。このテストは、ベクトルの追加で行われました。

テスト方法: malloc でポインターを作成してデバイスにデータを転送する代わりに、最初に CL_MEM_ALLOC_HOST_PTR を使用してバッファーを作成しました。次に、OpenCL API を使用してこのバッファーをマップしました。これはポインタを返し、このポインタが指すメモリをデータで埋めました。この場合のマッピング メカニズムには時間がかかります。マッピング時間は clENqueuewritebuffer とほぼ同じです。したがって、この例から、CL_MEM_ALLOC_HOST_PTR を使用しても大きな改善は得られませんでした。

私の質問は、CL_MEM_ALLOC_HOST_PTR を使用すると、マッピング時間がなぜそれほど長くなるのかということです。

パフォーマンス測定値は次のとおりです: 要素サイズ: 10000000、カーネル: ベクトル加算、すべての時間はマイクロ秒単位です

通常の読み取り書き込みバッファ時間 バッファ作成時間 20 エンキュー書き込みバッファ時間 108019

CL_MEM_ALLOC_HOST_PTR - 割り当てられたバッファー内で直接データをコピーする時間 clEnqueueMap によって返されたポインターをデータで満たす 208009 マッピング時間 81346 アンマッピング時間 269

CL_MEM_ALLOC_HOST_PTR-memcpy を使用した malloc ポインターからホスト alloc ポインターへのデータ コピー
あり

Host_alloc_ptr に使用したコード スニペットは次のとおりです。

0 投票する
1 に答える
220 参照

gpu - Mali-400MP GPU からの非対称で不正確な出力

次の単純なフラグメント シェーダーがあります。

フレーム バッファ オブジェクトを使用してテクスチャにレンダリングしています。フレーム バッファから値を読み戻すと、次のようになります。

38、38、38、38、39、39、39、39、38、38、38、38、39など

0.15*255 = 38.25 したがって、デスクトップ GPU (intel 4000) と Tegra 3 で得られるすべてのピクセルで均一に 38 になると予想されます。誰かがこの問題に光を当てることができれば幸いです。Mali-400MP は Samsung Galaxi s2、s3、および s3 mini で使用されているため、モバイル デバイス用の GPGPU を使用するすべての人にとって重要です。

0 投票する
1 に答える
4329 参照

arm - Mali OpenCL SDK を使用して、ARM CPU (Cortex-a7) で OpenCL コードを実行することは可能ですか?

Mali OpenCL SDK を使用すると、Mali GPU で opencl コードを実行できます。
Mali OpenCL SDK を使用して、ARM CPU (Cortex-a7) で OpenCL コードを実行することは可能ですか?

0 投票する
1 に答える
1388 参照

arm - マリ SDK の Opencl

私は、ARM CPU と Mali GPU を搭載した Juno ARM 汎用ボードを持っています。このような異種プラットフォームで役立つ OpenCL を使用することを考えています。ARM 用の OpenCL SDK が必要だと思います。これにより、ホスト ARM CPU 用のプログラムを記述できるようになり、実際にカーネルを GPU で実行できるようになります。私のこの理解は正しいですか?ARM用のOpenCL SDK(ホストARM用のプログラムを作成するため)を探していましたが、何も見つかりませんでした。代わりに、ARMのWebサイト(http://malideveloper.arm.com/develop-for-mali/ )でMali GPU用のOpenCL SDKを見つけましたsdks/mali-opencl-sdk/ )。Mali GPU の OpenCL SDK for ARM も使用できますか? 誰かがこれに光を当てることができますか?

0 投票する
1 に答える
157 参照

opengl-es - glCompileShader に関する問題

Windows 8 でシェーダーをコンパイルする際に問題が発生しました。アプリケーションが glCompileShader を呼び出してシェーダーをコンパイルすると、デバッガーは次のコンパイル エラーをスローします。

「malisc」は内部コマンドまたは外部コマンドとして認識されません。

どうやら、Mali オフライン コンパイラを呼び出しているようです。こんなことは初めてです。OpenGLES 2.0 マリ エミュレーターを使用しています。

私のグラフィック カードは GeForce GT 640 ですが、これが関連しているかどうかはわかりません。このコマンドが呼び出されるのはなぜですか? シェーダーをコンパイルできないのはなぜですか? どうすればこれを解決できますか?