diff --git a/vulkan.d b/vulkan.d index d8d4458..3d60f76 100644 --- a/vulkan.d +++ b/vulkan.d @@ -108,6 +108,14 @@ const VkFormat[] VK_IMAGE_FORMATS = [ VK_FORMAT_R8G8B8A8_UNORM, ]; +enum ShaderStage : VkShaderStageFlagBits +{ + None = cast(VkShaderStageFlagBits)0, + Vertex = VK_SHADER_STAGE_VERTEX_BIT, + Fragment = VK_SHADER_STAGE_FRAGMENT_BIT, + Compute = VK_SHADER_STAGE_COMPUTE_BIT, +} + enum InputRate : int { Vertex = VK_VERTEX_INPUT_RATE_VERTEX, diff --git a/vulkan_util.d b/vulkan_util.d index a463380..47a5cef 100644 --- a/vulkan_util.d +++ b/vulkan_util.d @@ -263,11 +263,18 @@ AllocAlign(Arena* arena, u64 size, u64 alignment) void Reset(Arena* arena) { + memset(arena.mem, 0, arena.pos); arena.pos = 0; } void Free(Arena* arena) { - (arena.mem); + MemFree(arena.mem, arena.length); +} + +T +AlignPow2(T)(T v, T a) +{ + return (v + a - 1) & ~(a - 1); }