Skip to content

iveevi/rcgp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

279 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCGP: Resource Contracts for Graphics Programming

RCGP is a pure-C++ graphics programming framework based on the SIGGRAPH 2026 paper RCGP: Resource Contracts for Graphics Programming. It establishes a type system for resources in graphics applications, such as storage buffers and textures, that enables static verification of resource usage in both shader code and host code.

Usage

RCGP is designed to be usable in any Vulkan project using C++26 and beyond, and is supported on GCC 15+ and Clang 19+ compilers.

To use the framework, do the following:

#include <rcgp.hpp>

// Recommended, especially for shader code
using namespace rcgp;

This repository does not come with batteries included; users will need to provide the following dependencies:

  • Vulkan, for the core graphics backend.
  • glslang, for compiling the transpiled GLSL shader modules to SPIR-V.
  • fmt, for various IO utilities.
  • glfw, for OS-window management.
  • Python 3, used for parts of the build process.

Optionally, to enable automatic conversions to glm matrix and vector types, define RCGP_SUPPORT_GLM before the inclusion of rcgp.hpp and, of course, include the glm library itself.

Samples and documentation will be coming soon!

About

Implementation of the SIGGRAPH 2026 paper "RCGP: Resource Contracts for Graphics Programming"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors