2016-11-09 7 views
2

それが書き込みである:ホストについてHOST_WRITE有用な層や検証層が間違っていますか? HOST_WRITE_BIT約仕様において

は、パイプライン関連装置パイプラインステージの先にVK_ACCESS_HOST_WRITE_BITとVK_PIPELINE_STAGE_HOST_BITのソースからのバリアとアクセス、後続のコマンドバッファ動作によって見られるように書き込みますタイプを実行する必要があります。このようなバリアが有するプリレイアウトのときに遷移(SO commandBufferでvkCmdPipelineBarrier()を介して)一つの画像なので、明示的な障壁がまれにしかしかし

を必要としない、各コマンドバッファのサブミット時に暗黙的に行われることに注意してください

検証層:レイアウトがVK_IMAGE_LAYOUT_PREINITIALIZEDときにアプリが以前に障壁を追加していない限り、出典AccessMask 0 [なし]、[VK_ACCESS_HOST_WRITE_BIT]アクセスビット16384を必要としないしている必要があります0の代わりに、HOST_WRITE_BITにsrcAccessMask、エラーが発生しますこの移行のために。

仕様に誤りがありますか?検証層からですか?私たちが話している障壁は、純粋な実行の障壁であり、記憶の障壁ではありませんか?何か不足していますか?

答えて

3

私の個人的な意見は、検証層のバグです。

それは単にアクセスフラグ対レイアウトをチェックして、このコーナーの例を認識していないようです:あなたは再考し、すべてのVK_IMAGE_LAYOUT_PREINITIALIZED画像への書き込みをホストしていないとき https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/layers/core_validation.cpp#L9005

も場合あります(したがって、障壁は必要ありません)、そうですか?

レイヤーメッセージがWARNINGで、ERRORではないと思います。ヒューリスティックであることを意味するかもしれませんが、いくつかの誤検出が予想されます(レイヤーを改善するまで、このケースではそれほど簡単ではありません)。


彼らは唯一の最近のプレゼンテーションのための0アクセスフラグの可能性を修正し、彼らが(同様の心で)層でそのようなことを忘れてしまう遠くフェッチではありません。

問題を報告します。彼らは噛んでいないし、悪化する可能性があるのは、私よりも知識のあるクロノスの内部者があなたが間違っている理由を説明するということです。言われている、おそらくVK_PIPELINE_STAGE_HOST_BITがあまりにも不要である(そしてTOPが十分でなければならない)は


+0

あなたの答えの直前に、私はgithubに問題を出しました^^。 これは警告であり、あなたが正しいというエラーではありません。 私はTOP_OF_PIPEがここに来るのを理解していません^^ –

+0

あなたが言った声明には、**必要なバリアは全くないと言われています。その論理によって、とにかくバリアを持っていれば非ブロック型( 'src = TOP_OF_PIPE')で十分でしょうか? – krOoze

+0

イメージレイアウトを変更するには、メモリバリアが必要です。しかし、IMHO暗黙のバリアによってすでに実行されていたため、Vulkanにメモリが利用可能になったことを教える必要はありません。 –

関連する問題