Skip to content

Latest commit

 

History

History
107 lines (81 loc) · 3.53 KB

lecture11_vulkan.asciidoc

File metadata and controls

107 lines (81 loc) · 3.53 KB

Vulkan

Vulkan - Question

  • Vulkan is a modern replacement for OpenGL

  • Many games will port to Vulkan

  • Vulkan is (even) lower level than OpenGL

Vulkan - Industry Forged

Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

DirectX 12 & Metal

  • Conceptually, Vulkan is similar to both:

    • Microsoft’s DirectX 12

    • Apple’s Metal

  • BUT, those only work on their platforms

  • Vulkan is cross-platform, by design

    • Windows (xp, 7, 8, 10)

    • SteamOS

    • Linux

    • Tizen!!!

    • Android (7.0+)images

    • sort-of OS X and iOS

      • Vulkan support not announced by Apple

      • Third party support - MoltenVK

  • Vulkan’s core in AMD’s Mantle

Wrt OpenGL

  • OpenGL seems likely to continue to supported with hardware and hardware drivers for the near future

    • Khronos say they’ll keep developing OpenGL (and ES) in parallel with Vulkan

  • Longer term, seems likely that a software OpenGL layer will be developed, that use Vulkan underneath

    • OpenGL driver development is extremely complex

    • Vulkan driver development is much easier

Benefits of Vulkan (performance)

  • can create Command Buffers in parallel

    • leverage multicore CPUs more

    • good for CPU-limited render situations

  • more predictable performance

    • you have more control

    • driver does less, so driver doesn’t do stuff you don’t expect or can’t control

Benefits of Vulkan (API)

  • Vulkan is designed from the ground up to run on diverse platforms, ranging from mobiles and tablets, to gaming consoles and high-end desktops.

  • Single API for all platforms

    • no more OpenGL vs OpenGL ES separation

  • Still a C API

    • but enums are typed (unlike GL)

  • Single, multi-API compute language (for shaders and kernels)

    • SPIR-V

Vulkan vs OpenGL

lecture11 vulkan 2840d

Sample code

The SDK provides the development and runtime components for building, running, and debugging Vulkan applications.

— LunarG Vulkan SDK
https://lunarg.com/