問題タブ [vulkan]
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.
graphics - vkCreateWin32SurfaceKHR がサーフェスに書き込んでいない
Vulkan の動作を簡単にテストしようとしています。vkCreateWin32SurfaceKHR
LunarG のチュートリアルに従っていますが、何もしないように見える問題に遭遇しました。つまり、surface
書き込まれていません。この関数vkCreateWin32SurfaceKHR
は 0 を返すため、失敗を報告していません。どんな助けでも大歓迎です。
vulkan - バルカン構築エラー
Vulkan SDK に含まれるサンプルをビルドしたい。
http://vulkan.lunarg.comから SDK をダウンロードしてインストールします。
次に、Visual Studio を開き (2013 バージョンを使用しています)、次のパスからソリューションを開きます: ( C:\VulkanSDK\1.0.13.0\Demos
)。ファイルを選択しDEMOS.sln
ます。次に、このメッセージをクリックすると、次のLocalWindowsDebugger
メッセージがポップアップ表示されます。
私は vulkan を使ったことはありませんが、「Demo」という名前のとおり、動作させるには内部のすべてを設定する必要があると思います。
Web を検索しましたが、新しいため、それについて言及されているリソースはほとんどありません。
ICDとは?それをインストールする方法は?(VulkanSDKのインストーラーとは違うのですか?) それとも、このエラーは全く別のプロパティに関するものですか? VisualStudio のプロパティの設定が好きですか?
c++ - Vulkan の R16_UINT-3D テクスチャからフラグメント シェーダーで値をサンプリングする
Sascha Willems のテクスチャ チュートリアルを使用していますが、問題なく動作します。次に、テクスチャを 2D テクスチャから符号なし 16 ビットの 3D テクスチャに変更します。
正しい深さを設定してから、これらの値を変更します。
シェーダーで:
しかし、 texture(volumeTexture, textPos).r から取得した値はすべてゼロになりました。私がやりたいことは、UINT16 画像をアップロードすることですが、フラグメント シェーダーから float としてサンプリングします。
RenderDoc を開くと、テクスチャがきれいに見えます。
pastie.org/private/i7dqw7pm0snkbf40eyywg
これは私がopenglで行ったことです:
c++ - Vulkan のコマンド バッファ間の同期
Vulkan で同期を処理するには、いくつかの方法があります。これは私がそれを理解する方法です:
- フェンスは GPU から CPU への同期です。
- セマフォは GPU から GPU への同期であり、(同じまたは異なるキューで) キューの送信を同期するために使用されます。
- イベントはより一般的で、リセットされ、CPU と GPU の両方でチェックされます。
- バリアは、コマンド バッファー内の同期に使用されます。
私の場合、2 つのコマンド バッファがあります。そして、最初のコマンド バッファの後に 2 番目のコマンド バッファを実行する必要があります。
これに最適な同期の種類は何ですか? 使用する場合vkQueueWaitIdle(queue)),
は、フェンスを使用するのと同じことですか、それともイベントまたはセマフォを使用する必要がありますか?
複数のコマンドバッファを同時にキューに送信した場合:
1 つ目と 2 つ目を同期する方法はまだありますか?
framebuffer - 見栄えのする画像のレイアウトをどう扱うか?
見栄えのする画像は で始まりますが、一度提示された後になりますVK_IMAGE_LAYOUT_UNDEFINED
。VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
多くの例では、を作成した直後にすべてvkImages
を移行します。これにより、forを使用できます。ただし、スワップチェーンの作成直後に移行を行うことは許可されていません。VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
vkSwapchain
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
oldLayout
提示可能な画像の使用は、画像が によって返された後、 によって
vkAcquireNextImageKHR
提示される前にのみ行う必要がありますvkQueuePresentKHR
。これには、イメージ レイアウトとレンダリング コマンドの遷移が含まれます。
スワップチェーンの画像レイアウトを正しく処理するためのオプションは何ですか?
vulkan - VkDeviceQueueCreateInfo 内の queueCount の目的は何ですか?
https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html
私が現在していること:
グラフィックスとサーフェスをサポートするキューを持つデバイスを見つけます。
graphicsQueue
次に、とのインデックスを見つけますsurfaceQueue
。私の場合、それらは同じですが、異なる場合もあると思います。
今は常にqueueCount
1 に設定しており、これまでのところ問題はありませんでしたが、おそらく to に設定する必要がありqueueCount
ますVkQueueFamilyProperties.queueCount
。
しかし今、私はそれが実際に何をしているのか疑問に思っています。高いほどパフォーマンスが高いqueueCount
ことを示しますか?