SMU Guildhall Graduate Catalog Spring 2017 — Cohort 25 | Page 64

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.