adding base descriptor set layout

This commit is contained in:
2026-01-31 01:38:32 +01:00
parent 1d10a5748b
commit 970a7cb343
4 changed files with 207 additions and 9 deletions

View File

@@ -55,6 +55,44 @@ pub const DRIVER_NAME = "Unnamed Stroll Driver";
/// Default Vulkan version
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
/// Maximum number of descriptor sets per pipeline
pub const VULKAN_MAX_DESCRIPTOR_SETS = 32;
/// From the Vulkan 1.3.274 spec:
///
/// VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292
///
/// "Any two elements of pPushConstantRanges must not include the same
/// stage in stageFlags"
///
/// and
///
/// VUID-VkPushConstantRange-stageFlags-requiredbitmask
///
/// "stageFlags must not be 0"
///
/// This means that the number of push constant ranges is effectively bounded
/// by the number of possible shader stages. Not the number of stages that can
/// be compiled together (a pipeline layout can be used in multiple pipelnes
/// wth different sets of shaders) but the total number of stage bits supported
/// by the implementation. Currently, those are
///
/// - VK_SHADER_STAGE_VERTEX_BIT
/// - VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
/// - VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
/// - VK_SHADER_STAGE_GEOMETRY_BIT
/// - VK_SHADER_STAGE_FRAGMENT_BIT
/// - VK_SHADER_STAGE_COMPUTE_BIT
/// - VK_SHADER_STAGE_RAYGEN_BIT_KHR
/// - VK_SHADER_STAGE_ANY_HIT_BIT_KHR
/// - VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
/// - VK_SHADER_STAGE_MISS_BIT_KHR
/// - VK_SHADER_STAGE_INTERSECTION_BIT_KHR
/// - VK_SHADER_STAGE_CALLABLE_BIT_KHR
/// - VK_SHADER_STAGE_TASK_BIT_EXT
/// - VK_SHADER_STAGE_MESH_BIT_EXT
pub const VULKAN_MAX_PUSH_CONSTANT_RANGES = 14;
pub const std_options: std.Options = .{
.log_level = .debug,
.logFn = logger.log,