From 5aff0b64e820728c9a3469445c496c38b63ec523 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 25 Jun 2026 08:20:47 +0400 Subject: fix(vulkan-policy): gate requested depth formats --- adapters/fparkan-render-vulkan/src/ffi/runtime.rs | 32 ++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'adapters/fparkan-render-vulkan/src/ffi/runtime.rs') diff --git a/adapters/fparkan-render-vulkan/src/ffi/runtime.rs b/adapters/fparkan-render-vulkan/src/ffi/runtime.rs index 134bf3e..555c08c 100644 --- a/adapters/fparkan-render-vulkan/src/ffi/runtime.rs +++ b/adapters/fparkan-render-vulkan/src/ffi/runtime.rs @@ -1,10 +1,11 @@ #![allow(unsafe_code)] use ash::vk; +use fparkan_platform::RenderRequest; use std::ffi::CString; use super::capabilities::{ - select_live_device_candidate, unique_queue_families, VulkanRuntimeCapabilityError, + select_live_device_candidate_for_request, unique_queue_families, VulkanRuntimeCapabilityError, VulkanRuntimeCapabilityProbe, }; use super::{VulkanInstanceProbe, VulkanSurfaceProbe}; @@ -125,8 +126,33 @@ pub fn create_vulkan_logical_device_probe( surface: &VulkanSurfaceProbe, drawable_extent: (u32, u32), ) -> Result { - let selected = select_live_device_candidate(instance, surface, drawable_extent) - .map_err(VulkanLogicalDeviceError::Runtime)?; + create_vulkan_logical_device_probe_for_request( + instance, + surface, + drawable_extent, + &RenderRequest::conservative(), + ) +} + +/// Creates a Vulkan logical device for a specific Stage 0 render request. +/// +/// # Errors +/// +/// Returns [`VulkanLogicalDeviceError`] when runtime capability probing fails, +/// device extension names are invalid, or `vkCreateDevice` fails. +pub fn create_vulkan_logical_device_probe_for_request( + instance: &VulkanInstanceProbe, + surface: &VulkanSurfaceProbe, + drawable_extent: (u32, u32), + render_request: &RenderRequest, +) -> Result { + let selected = select_live_device_candidate_for_request( + instance, + surface, + drawable_extent, + render_request, + ) + .map_err(VulkanLogicalDeviceError::Runtime)?; let capability = &selected.runtime.capability; let queue_priorities = [1.0_f32]; let queue_families = unique_queue_families( -- cgit v1.2.3