const std = @import("std"); const vk = @import("vulkan"); const core = @import("core"); pub const NumFrames = NUM_FRAMES; pub const FrameTimeout = 10_000_000_000; // 10 full second frame timeout pub const MAX_OBJECTS = 100_000; // 100k objects ought to be enough for anyone pub const NUM_FRAMES: usize = 2; pub const DEVICE_LAYERS = [_]core.CStr{VK_KHRONOS_VALIDATION_LAYER_STRING}; pub const MAX_SKIN_SLOTS = 100_000; pub const required_device_layers = [_]core.CStr{"VK_LAYER_KHRONOS_validation"}; pub const VK_KHRONOS_VALIDATION_LAYER_STRING: core.CStr = "VK_LAYER_KHRONOS_validation"; pub const BaseDispatch = vk.BaseWrapper(.{ .createInstance = true, .getInstanceProcAddr = true, .enumerateInstanceVersion = true, .enumerateInstanceLayerProperties = true, .enumerateInstanceExtensionProperties = true, }); pub const InstanceDispatch = vk.InstanceWrapper(.{ .getPhysicalDeviceFeatures = true, .destroyInstance = true, .createDevice = true, .destroySurfaceKHR = true, .enumeratePhysicalDevices = true, .getPhysicalDeviceProperties = true, .enumerateDeviceExtensionProperties = true, .getPhysicalDeviceSurfaceFormatsKHR = true, .getPhysicalDeviceSurfacePresentModesKHR = true, .getPhysicalDeviceSurfaceCapabilitiesKHR = true, .getPhysicalDeviceQueueFamilyProperties = true, .getPhysicalDeviceSurfaceSupportKHR = true, .getPhysicalDeviceMemoryProperties = true, .getPhysicalDeviceFormatProperties = true, .getDeviceProcAddr = true, }); pub const DeviceDispatch = vk.DeviceWrapper(.{ .resetCommandBuffer = true, .destroyDevice = true, .getDeviceQueue = true, .createSemaphore = true, .createFence = true, .createImageView = true, .createImage = true, .destroyImage = true, .destroyImageView = true, .destroySemaphore = true, .destroyFence = true, .getSwapchainImagesKHR = true, .createSwapchainKHR = true, .destroySwapchainKHR = true, .acquireNextImageKHR = true, .deviceWaitIdle = true, .waitForFences = true, .resetFences = true, .queueSubmit = true, .queuePresentKHR = true, .createCommandPool = true, .destroyCommandPool = true, .allocateCommandBuffers = true, .cmdBlitImage = true, .freeCommandBuffers = true, .queueWaitIdle = true, .createShaderModule = true, .destroyShaderModule = true, .createPipelineLayout = true, .destroyPipelineLayout = true, .createDescriptorSetLayout = true, .destroyDescriptorSetLayout = true, .createDescriptorPool = true, .allocateDescriptorSets = true, .freeDescriptorSets = true, .updateDescriptorSets = true, .destroyDescriptorPool = true, .createRenderPass = true, .destroyRenderPass = true, .createGraphicsPipelines = true, .destroyPipeline = true, .createFramebuffer = true, .destroyFramebuffer = true, .beginCommandBuffer = true, .endCommandBuffer = true, .allocateMemory = true, .freeMemory = true, .createBuffer = true, .destroyBuffer = true, .getBufferMemoryRequirements = true, .mapMemory = true, .unmapMemory = true, .bindBufferMemory = true, .cmdBeginRenderPass = true, .cmdEndRenderPass = true, .cmdBindPipeline = true, .cmdBindIndexBuffer = true, .cmdDrawIndexed = true, .cmdDraw = true, .cmdSetViewport = true, .cmdSetScissor = true, .cmdBindVertexBuffers = true, .cmdCopyBuffer = true, .cmdPushConstants = true, .cmdPipelineBarrier = true, .cmdBindDescriptorSets = true, .cmdCopyBufferToImage = true, .createSampler = true, .destroySampler = true, .cmdDrawIndexedIndirect = true, });