All Projects → dominikh → go-vk

dominikh / go-vk

Licence: other
Go bindings for Vulkan

Programming Languages

go
31211 projects - #10 most used programming language
c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to go-vk

hpc
Learning and practice of high performance computing (CUDA, Vulkan, OpenCL, OpenMP, TBB, SSE/AVX, NEON, MPI, coroutines, etc. )
Stars: ✭ 39 (+95%)
Mutual labels:  vulkan
drivers-linux-firmware
MOVED: https://gitlab.com/q3aql/drivers-linux-firmware
Stars: ✭ 28 (+40%)
Mutual labels:  vulkan
CrossWindow-Demos
🥪 Examples of how to use CrossWindow for things like rendering graphics, listening to events, etc.
Stars: ✭ 48 (+140%)
Mutual labels:  vulkan
nuklear-glfw-vulkan
A nuklear adapter that does Vulkan rendering
Stars: ✭ 52 (+160%)
Mutual labels:  vulkan
vkhelpers
Vulkan c helper library
Stars: ✭ 25 (+25%)
Mutual labels:  vulkan
wgpu-mc
Rust-based replacement for the default Minecraft renderer
Stars: ✭ 254 (+1170%)
Mutual labels:  vulkan
spirv cross
Safe Rust wrapper around SPIRV-Cross
Stars: ✭ 75 (+275%)
Mutual labels:  vulkan
moonvulkan
Lua bindings for Vulkan
Stars: ✭ 31 (+55%)
Mutual labels:  vulkan
ogl to vlk
Vulkan Tutorials For OpenGL Developers
Stars: ✭ 16 (-20%)
Mutual labels:  vulkan
Vulkan-MemoryModel
Vulkan Memory Model
Stars: ✭ 95 (+375%)
Mutual labels:  vulkan
bgfx-header-extension-library
Header-only effects and helper library for Bgfx to help you hit the ground running. Includes a bunch of post processing filters to complete common graphical tasks
Stars: ✭ 35 (+75%)
Mutual labels:  vulkan
DummyEngine
Small cross platform Vulkan/OpenGL 3d engine for personal experimentation
Stars: ✭ 76 (+280%)
Mutual labels:  vulkan
vulkan-seed
🌋🌱 A Vulkan starter repo that you could use to get the ball rolling.
Stars: ✭ 57 (+185%)
Mutual labels:  vulkan
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+510%)
Mutual labels:  vulkan
LowLevelAPIDemo
Evergine Low-Level API samples.
Stars: ✭ 12 (-40%)
Mutual labels:  vulkan
AI-Lossless-Zoomer
AI无损放大工具
Stars: ✭ 940 (+4600%)
Mutual labels:  vulkan
virtualGizmo3D
Virtual GIZMO - 3D object manipulator / orientator, via mouse, with pan and dolly/zoom features
Stars: ✭ 36 (+80%)
Mutual labels:  vulkan
AngryEngine
Game Engine for Windows by Vulkan SDK
Stars: ✭ 20 (+0%)
Mutual labels:  vulkan
mojoshader
Use Direct3D shaders with other 3D rendering APIs.
Stars: ✭ 91 (+355%)
Mutual labels:  vulkan
VkInline
A tool to make it easy to use Vulkan from Python. An interface for computation and off-screen rendering.
Stars: ✭ 16 (-20%)
Mutual labels:  vulkan

Vulkan Go bindings

Package vk provides bindings for the Vulkan graphics API.

This package is in its very early stages. It is not in a usable state. This repository is a mirror of local development efforts.

Supported extensions

  • VK_KHR_surface
  • VK_KHR_xlib_surface
  • VK_KHR_swapchain

Build tags

We use a number of build tags to guard platform-specific functionality and safety checks.

Tag Description
unsafe Disable runtime checks that prevent memory corruption in the case of API misuse
xlib Include support for VK_KHR_xlib_surface

Comparison to github.com/vulkan-go/vulkan

github.com/vulkan-go/vulkan was generated using an automatic C binding generator and exports a raw C API. Our bindings, on the other hand, have been written by hand, wrapping the C API in an idiomatic Go API. We hide Vulkan's sType structure field, populating it automatically; we fully support slices, making count fields unnecessary, and we support Go strings, not requiring the user to ensure they're null-terminated.

vulkan-go/vulkan uses vkGetInstanceProcAddr for both instance and device commands, which means all device command calls have to go through the Vulkan loader's dispatch code. We use vkGetDeviceProcAddr and implement our own dispatch, which should theoretically be slightly faster.

Finally, we provide platform-specific functions, such as WSI, whereas vulkan-go/vulkan expects users to use GLFW (or similar).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].