Regan Carver
Software Development
«
Vulkan Rendering Interface
This project is a C++ rendering buffers), an OpenGL-esque pipeline
API. Vulkan is an explicit rendering API, dispense GPU state objects for quick
architecture using Khronos’ Vulkan
which differs from easier-to-use APIs
like OpenGL in that instead of using
an enormous state machine to allow
developers to make small changes
to render state and draw, developers
binding), a SPIR-V shader assembly
reflection engine, accessible global
uniform buffers, and a data-driven pipeline
generator.
must manage most of the GPU state, This project has taught me a great deal
options, themselves. With this in mind, certain concepts that were hazy before,
including memory allocations and drawing
the interface relieves most of the burden
of initialization and GPU management
while keeping the power of the Vulkan API
exposed.
Some features of my rendering interface
include: automated initialization of
necessary rendering components
(instance, device, swapchain, command
64
generator (using a state machine to
SOFTWARE DEVELOPMENT
about rendering in general. It has solidified
including the GPU rendering pipeline,
rasterization, input assembly, GPU
memory, and resource management. For
a graphics programmer, these concepts
are tantamount to understanding and
getting the most out of a GPU.