2017-03-27 26 views
0

vulkan APIでは、計算シェーダで計算されたデータのように、どのようにgpuメモリからデータを読み込むことができますか?memcpyを使用せずにgpuメモリからデータを読み取る方法は?

+0

通常、 'vkCmdCopy *'と 'vkMapMemory'を使用します。これまでに何を試しましたか? – krOoze

+0

私は 'vkMapMemory'を使ってdevicememoryからデータを読み込み、' memcpy'コピーデータを使用しますが、非常に遅いです。 – hlh077l

+1

ああ、単純にしないでください。あなたはすでにあなたが直接使うことができる 'vkMapMemory'で生のポインタを受け取りました。 – krOoze

答えて

2

まず、計算呼び出しに関連するフェンスを待ちます。次に、結果を書き込んだメモリをマップし、メモリが一貫性がない場合は、範囲を無効にする必要があります。

マッピング操作から得たポインタからデータを読み出します。

+0

はい、あなたが言っていた言葉は私が以前使っていたものですが、私はマッピング操作から得たポインタから 'memcpy'コピーデータを使います。非常に遅いです。 'memcpy(kernel_Data.out_data、kernelBuff.outBuf.mapped、outSize * sizeof(float));' – hlh077l

+1

@ hlh077lあなたは、より良いホストアクセスで別のメモリプールへのバッファコピーを試みることができます。デバイスローカルではなく、好ましくはホストキャッシュされます。 –

関連する問題