VulkanでVariable Rate Shading (VRS)を使用する
VulkanでVariable Rate Shading (VRS)を使用するための大まかな手順。
準備 編集
- デバイス拡張の有効化
VK_KHR_fragment_shading_rate拡張を有効にします。
- デバイス機能の確認
デバイスがVRSをサポートしているかを確認します。 vkGetPhysicalDeviceFeatures2を使用して、VkPhysicalDeviceFragmentShadingRateFeaturesKHRを確認します。
- デバイスプロパティの確認
デバイスのVRSの特性や能力を取得します。 vkGetPhysicalDeviceProperties2を使用して、VkPhysicalDeviceFragmentShadingRatePropertiesKHRを確認します。
設定 編集
- パイプライン単位
パイプライン全体に対してフラグメントシェーディングレートを設定するには、 VkPipelineFragmentShadingRateStateCreateInfoKHRを使用して、フラグメントシェーディングレートの設定を行います。
- コマンドバッファ単位
一般的なコマンドバッファごとにフラグメントシェーディングレートを変更する場合は、 vkCmdSetFragmentShadingRateKHRを使用して、シェーディングレートを設定します。
実行 編集
- レンダーパスの作成
vkCreateRenderPass2KHRを使用して、レンダーパスを作成します。
- シェーディングレートイメージの準備
シェーディングレートイメージを作成し、アタッチメントとして設定します。