問題タブ [ati]
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 つの SSBO を使用すると、imageStore が書き込みを行わない
ATI HD 5770 で計算シェーダーを実行しようとしたときに、計算シェーダーの 1 つにエラーがあることに気付きました。GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS が 8 であるにもかかわらず、シェーダーで複数の SSB にアクセスすると問題が発生することがわかりました。
いくつかいじった後、問題のあるシェーダーをこの MWE に減らしました。
このシェーダをそのまま実行すると、 からの変更は見られませんimageStore
。を削除すると、画像b.length();
に目的の出力が得られます-2
。
どちらの場合もの値a[0]
が に変更される-2
ため、シェーダーは確実に実行されています。
どちらの場合も、シェーダーのコンパイル/リンカー エラーglGetError
はなく、エラーも返されません。
ここで何か間違ったことをしていますか?
これは (ドライバーの) バグですか? 結局のところ、これは私の他の (NVidia) カードでは発生しません。
完全を期すために、この「最小限の」C++ ファイルを使用してシェーダーを実行しました。
アップデート
imageLoad
2 つ以上の SSBO が使用されている場合は常に 0 を返し、2 個の SSBO が使用されている場合は 3 を返し、2 個未満の SSBO の場合は正しい値を返すという同様の問題があるようです。どちらの問題も、最新のドライバー (15.7、以前は 15.5) でも発生します。
graphics - D3D11CreateDevice が読み取りアクセス違反を引き起こす
コードと質問
Microsoft の Application Verifier を試してみたところ、以下の単純なコードで読み取りアクセス違反が発生しました。これは私のせいですか?そうでない場合、誰に報告すればよいですか?
アプリケーション検証ツールの出力
WinDBG コールスタック
私のPCの情報
- Windows 8.1 Pro 64 ビット (6.3、ビルド 9600)
- AMD Radeon (TM) R9 200 シリーズ
- AMD Catalyst ドライバー (15.7.1) 最新 (最終チェック日 2015 年 10 月 15 日 10:16:39 PM)
matlab - AMD グラフィック カードを使用した Matlab での深層学習
この例を自分の PC で実行するにはどうすればよいですか? Nvidia グラフィック カードを持っていないため、Matlab で Cuda を使用できません。
私のコードの半分はMatlabで書かれており、すべての変数はMatlab形式であるため、Matlabで行う必要があります。
私の PC には ATI Radeon HD 4530 グラフィック カードが搭載されています。
このページを読みましたが、どれが適しているのかまだわかりません。
Update1: 画像分類用のディープ ニューラル ネットワークをトレーニングしたい。この例に似たタスク。
Update2: Update1 に記載されているコードを実行すると、次のエラーが表示されます。
c++ - nVidia と ATI の OpenGL レンダリングの違い
最近、ATI ドライバー (HD7970 を使用しています) を最新のものに更新したところ、OpenGL プロジェクトのオブジェクトの一部が機能しなくなりました。さらに、nVidia の最新ドライバー (960m でテスト済み) で動作します。ATI と nVidia レンダリング パイプラインの間に知っておくべき違いはありますか?
追加情報:
- glGetError() からのエラーなし、
- 適切にコンパイルおよびリンクされたシェーダー
- 他のレンダー オブジェクトは問題なく動作しますが、VBO の入力コマンドと描画コマンドは異なります。*.obj ファイルから読み込み、glDrawArrays() で描画します。壊れた人の VBO は、ストレージに使用される image2D から頂点を取得し、glDrawElements() によって描画されるポリゴン化ツール (計算シェーダー) によって取り込まれます。
- 最も単純な GPU デバッガーで、頂点シェーダーとフラグメント シェーダーが起動していることを確認しました。
三角形で描画しようとすると何も表示されませんが、GL_POINTS に切り替えると、緑色のドット (フラグメント シェーダーからの出力は純粋な緑色のチャネル) が表示され、正常に移動します。これは、MVP 乗算が発生しているため、頂点シェーダーが起動していることを示している可能性があります。これらは 1 つの大きな VBO を持つ惑星の LOD オブジェクトなので、1 つの関数を使用してすべてのバッファーをバインドし、他の関数を使用して必要な高さマップを描画します。VBOのサイズは128MB
初期化:
ポリゴニゼーター (計算シェーダー) による VBO の設定:
バインディング:
描く:
頂点シェーダー: