問題タブ [compute-shader]

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 投票する
5 に答える
3062 参照

directx-11 - DirectX 11 Compute Shader - すべての値を書き込んでいない

DirectX11 Compute Shaders を使用したフラクタル レンダリングの実験を試みています。提供されている例は、FeatureLevel_10 デバイスで実行されます。

RwStructured 出力バッファーのデータ形式は R32G32B32A32_FLOAT です

問題は、バッファーに書き込むときに、ALPHA ( w ) 値だけが他に何も書き込まれないように見えることです。シェーダー コードは次のとおりです。

コードは実際にはある意味では正しい結果 ( 2D マンデルブロー集合 ) を生成しますが、どういうわけかアルファ値だけが変更され、他には何も書き込まれていないように見えますが、集合内のピクセルは赤く着色されているはずです... (画像は黒 &白い )

ここで何が起こっているのか、誰にも手がかりがありますか?

0 投票する
4 に答える
4379 参照

debugging - DirectX 11コンピューティングシェーダーをデバッグする方法は?

GP-GPUプログラミングにDirectX11ComputeShaderテクノロジーを使い始めました。HLSLで非常に複雑なプログラムを作成しましたが、デバッグしたいときに、DXSDK 2009年8月のPIXユーティリティがComputeShadersをサポートしていないことに気付きました...NvidiaがNexusforVisualStudioをリリースする予定です。ダイレクトコンピューティングのデバッグをサポートしますが、まだリリースされていない次世代のNVidia GPUでのみ:(デバイスに依存しないため、Compute Shaderテクノロジーは私には非常に有望に見えますが、デバッグのサポートなしで使用するのは非常に困難です。

Compute Shaderのデバッグに使用できる、現在利用可能な、または近い将来にリリースが計画されているツールやアプローチを知っていますか?

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

debugging - DXSDKからのPIXでの計算シェーダー分析のサポート2010年2月

DirectX SDK 2010年2月のダウンロードページには、計算シェーダー分析のサポートによるPIXの改善など、新機能に関する情報があります。

PIXは、計算シェーダー、テッセレーション、動的シェーダークラスリンケージなど、Direct3D11機能を使用するプログラムの分析のサポートを大幅に改善しました。

PIXでの計算シェーダーの分析とデバッグに興味があったので、新しいバージョンのDXSDKをダウンロードしてインストールしました。しかし、Compute ShadersのPIXサポートに関する特定の詳細をそのドキュメントで見つけることができなかったとき、私は非常に混乱しました。また、PIXを調査して、UIで計算シェーダーに関連するものを見つけようとしましたが、何も見つかりませんでした...ドキュメントまたはインターネットで計算シェーダーの分析について読むことができる場所を教えてください。 PIXで、またはPIXを使用してこれを行う方法を説明しますか?

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

c++ - directX 11 計算シェーダーを使用して何かを表示するにはどうすればよいですか?

directX 11 計算シェーダーからテクスチャに書き込もうとしています。ただし、これを画面に表示する方法がわかりません。また、これを行うためにどのような種類のバッファを使用する必要があるかもわかりません。

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

directx - DirectX11:ComputeShaderからVertexShaderにデータを渡しますか?

Compute Shaderを使用してレンダリングされるジオメトリデータにフィルターを適用し、その結果をVertex Shaderの入力バッファーとして使用することは可能ですか?これにより、データを読み戻す手間(&時間)を節約できます。

どんな助けでも大歓迎です。

0 投票する
5 に答える
3721 参照

c# - 2つのフロートを使用して2分割しますか?

2つのfloatを使用して二重分割を実行したいと思います(Direct Computeは二重分割をサポートしていないようです)。

それは可能ですか?

これは私がこれまでに試したことです(c#コード、後でHLSLになるはずです):

0,00105446285765182(結果)

0,00105446284102106(正しい結果)

それはf1の丸めと関係があります。値が代わりの場合:

その後、結果は正しいです。

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

directx - ComputeShaderとPixelShaderの速度

PixelShaderと比較したComputeShaderについて質問があります。バッファで何らかの処理を行いたいのですが、これはピクセルシェーダーと計算シェーダーの両方で可能ですが、特に速度に関しては、どちらにも利点があるのではないかと思います。8ビット値だけを使用することに問題がありましたが、それを回避できるはずです。

出力内のすべてのデータポイントは、それを囲む合計8つのデータポイント(MxNマトリックス)を使用して計算されるため、異なる出力は互いにまったく影響を与えないため、これはピクセルシェーダーに最適だと思います。

しかし、シェーダーを比較するためのベンチマークを見つけることができなかったので、どちらを目指すべきか疑問に思います。唯一の目標は速度です。

0 投票する
0 に答える
372 参照

c++ - ピクセル形式の変換はどちらが速いですか? ピクセル シェーダーか計算シェーダーか、それとも OpenCL か?

フレームを YUV420p 形式 (またはそのような形式) から ABGR 形式にオンザフライで変換し、結果のフレームをビデオ メモリにテクスチャとして配置したいと考えています。

私が今考えることができる2つの方法があります:

  1. 各チャンネルをソース テクスチャにして、別のテクスチャにレンダリングします。
  2. 計算シェーダーで「通常どおり」実行します。

GPUのルールがよくわかりません。私のカードのように、720 個のシェーダー コア、36 個のテクスチャ ユニット、および 16 個の出力ユニットがあります。各サイクル内で、最大 40 のテクスチャをサンプリングして 16 ピクセルを出力できる一方で、720 のシェーダー操作を実行できるということですか? したがって、方法 1 を使用すると、ピクセルごとに 2 つまたは 3 つの操作しか使用しない場合でも、16 ピクセルの出力に制限されますか? 方法 2 を使用すると、1 ピクセルを 45 サイクル以内に変換できれば、方法 1 よりも高速になるということですか?

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

gpgpu - Crossfire /SLIはComputeShaderのパフォーマンスにメリットがありますか?

DX11コンピューティングシェーダーを掘り下げています。そして、Crossfire / SLIでビデオカードをもう1枚追加すると、パフォーマンスが向上するのではないかと思います。または、Crossfire/SLIを使用せずにビデオカードをもう1枚追加します。

誰かがこれを試しましたか?

0 投票する
0 に答える
327 参照

parallel-processing - 計算シェーダーをopenCLカーネルに置き換えると、o / pバッファーの値は一致しますが、o/pはピクセル化されてちらつきます。

さまざまなシェーダーを含むアプリケーションがあります。そのうちの1つは、シーン内の光の値を計算する計算シェーダーです。光の値は、計算シェーダーで記述された累積関数によって計算されます。

計算シェーダー(.hlsl)ファイルと同様のカーネルopenCL(.cl)を作成しました。

計算シェーダーをopenCLカーネルに置き換えました。

出力ライトバッファーには、計算シェーダーによって出力された値と同じ値があります。

しかし、出力はピクセル化されているように見え、画面上でちらつきます。ピクセル化された出力の1つの小さな単位の四角いボックスは、私のカーネルのワークグループサイズと一致します。

出力ライトバッファー(これが唯一の出力バッファーであると確信しています)は、計算シェーダーの値と同じであるため、プログラムがどこで失敗しているのかわかりませんでした。

誰かが以前に同様の問題に直面したことがありますか?ヒントや提案があれば役立ちます。