Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
9c52433
feat(01-01): add shared VulkanInitMutex guard header
itsafuu Jul 29, 2026
6974444
refactor(01-01): migrate MNN_Image to shared VulkanInitMutex guard
itsafuu Jul 29, 2026
8880990
fix(01-01): close unguarded Vulkan init race in MNN_String/MNN_Volume
itsafuu Jul 29, 2026
1acc6c6
feat(01-03): add vk-bootstrap find_package in SGProcessingManager cma…
itsafuu Jul 29, 2026
f71e5e6
docs(01-03): document CTX-04 Vulkan-ValidationLayers deferral to v1.x…
itsafuu Jul 29, 2026
9812f86
feat(01-04): implement RenderProcessor with lazy headless Vulkan cont…
itsafuu Jul 29, 2026
0ea4980
feat(01-05): add PassType-keyed dispatch map, fix ParseBlockSize cras…
itsafuu Jul 29, 2026
915c65f
feat(01.1-02): migrate bool/buffer/float/int MNN processors to Vulkan…
itsafuu Jul 30, 2026
de34e70
feat(01.1-02): migrate mat2/mat3/mat4/tensor MNN processors to Vulkan…
itsafuu Jul 30, 2026
fd690c3
feat(01.1-02): migrate texture1d/texturecube/vec2/vec3/vec4 MNN proce…
itsafuu Jul 30, 2026
a13f1e6
docs(01.1-03): update vulkan_init_guard.hpp doc comment to describe t…
itsafuu Jul 30, 2026
f2874cb
Compile fix
itsafuu Jul 30, 2026
d0f0c80
fix(02-01): fix schema JSON syntax bug and extend render pass schema
itsafuu Jul 30, 2026
97f1b55
feat(02-01): regenerate quicktype headers for extended render schema
itsafuu Jul 30, 2026
84696d3
feat(02-03): implement ShaderCompiler GLSL->SPIR-V compile+validate gate
itsafuu Jul 30, 2026
6f2056a
feat(02-04): wire ShaderCompiler into ProcessingManager, extend rende…
itsafuu Jul 31, 2026
af18dd1
fix(02): fix dangling reference in GetCidForProc() that silently skip…
itsafuu Jul 31, 2026
a64e6f1
feat(03-01): add ProcessingResult error field and PROCESSING_FAILED
itsafuu Jul 31, 2026
b358ebd
feat(03-01): Process() failure gate + SerializeCompiledStages entry_p…
itsafuu Jul 31, 2026
0a5fac9
feat(03-02): resolve vertex/index buffer independently + serialize re…
itsafuu Jul 31, 2026
a720323
feat(03-02): CheckProcessValidity() source-prefix validation for rend…
itsafuu Jul 31, 2026
b0469e7
feat(03-03): wire-format parsers + uniform resolution for RenderProce…
itsafuu Jul 31, 2026
b660bdc
feat(03-03): dedicated buffer/image allocation + format-support query…
itsafuu Jul 31, 2026
dff39f6
feat(03-04): offscreen render pass + framebuffer (color+depth, explic…
itsafuu Jul 31, 2026
d51a572
feat(03-04): graphics pipeline (fixed state, vertex input, push-const…
itsafuu Jul 31, 2026
f0c0ded
feat(03-05): buffer upload + command recording/submission + readback
itsafuu Jul 31, 2026
1a6b4ba
feat(03-05): wire StartProcessing() end-to-end, RENDER-07 data_transf…
itsafuu Jul 31, 2026
1c13354
fix(03-06): disable vk-bootstrap's require_present for headless Rende…
itsafuu Jul 31, 2026
aaed093
feat(04-01): add HasUsableVulkanDevice GPU probe, widen IsAcceptable …
itsafuu Jul 31, 2026
b58806f
Updated for shaderc handling deps
itsafuu Aug 3, 2026
c023da1
Fix non-android
itsafuu Aug 3, 2026
01d727d
Fix compilation errors, add all files
itsafuu Aug 4, 2026
cb0000b
Merge branch 'dev_rendering' of github.com:GeniusVentures/SGProcessin…
itsafuu Aug 4, 2026
ba0b480
Fix compile errors
itsafuu Aug 5, 2026
b9c445b
Phase 08: Structured Artifacts & Execution Manifests -- type system, …
itsafuu Aug 5, 2026
528a92a
Fix hang on OSX
itsafuu Aug 6, 2026
ab13978
feat(09-09): add 4 granular ProcessingManager Error values with disti…
itsafuu Aug 6, 2026
f1e289f
fix(09-09): wire granular errors into CheckProcessValidity() and pre-…
itsafuu Aug 6, 2026
35db547
fix(processing-manager): make combinedHash deterministic across Proce…
itsafuu Aug 6, 2026
c6f993e
fix(09-11): default BUFFER-input artifact format to INT8 instead of c…
itsafuu Aug 7, 2026
7fdd1ee
feat(09-12): add caller-owned ExecutionContext overload to Process()
itsafuu Aug 7, 2026
6ec83fe
docs(09-12): cross-reference cancellation_conformance_test.cpp from s…
itsafuu Aug 7, 2026
bc74bc0
fix(09-13): schema-driven maxLength fixes MNN_String reshape error (G…
itsafuu Aug 7, 2026
30cf9f1
fix(09-14): embed human-readable PassType name in CanExecute rejectio…
itsafuu Aug 7, 2026
d04a604
Somewhat messy osx fixes, will clean up later
itsafuu Aug 8, 2026
5b96d99
feat(10-01): add sgprocmanagerquant identity-stub library
itsafuu Aug 10, 2026
897919c
feat(10-01): add ExecutionContext::rawOutputCapture opt-in capture hook
itsafuu Aug 10, 2026
e05c456
feat(10-02): wire quantize+capture at Float/Int/Mat2 chunk and stitch…
itsafuu Aug 10, 2026
46947b1
feat(10-02): wire quantize+capture at Mat3/Mat4/Tensor chunk and stit…
itsafuu Aug 10, 2026
b7b0a12
feat(10-03): wire quantize+capture into Bool, Buffer, Image chunk-has…
itsafuu Aug 10, 2026
24756eb
feat(10-03): wire quantize+capture into String, Texture1D, Volume chu…
itsafuu Aug 10, 2026
15fb9fe
feat(10-03): wire quantize+capture into TextureCube's two chunk-hash …
itsafuu Aug 10, 2026
8536f89
feat(10-04): wire quantize-then-capture into RenderProcessor
itsafuu Aug 10, 2026
26ba594
feat(10-04): add capture file binary format (capture_file_format.hpp/…
itsafuu Aug 10, 2026
f759d7e
feat(10-05): build capture_harness CLI + tools/ CMake wiring
itsafuu Aug 10, 2026
ea0c064
feat(10-05): build capture_diff CLI
itsafuu Aug 10, 2026
d2d8ff2
feat(10-06): wire SGProcessingManager/test into the main build
itsafuu Aug 10, 2026
36ec12f
feat(10-06): add capture_smoke_test CTest smoke test
itsafuu Aug 10, 2026
1fe1952
fix(10-06): CaptureSmokeTest cleans stale .cap files before running
itsafuu Aug 10, 2026
94b26ba
Compilation fixes
itsafuu Aug 11, 2026
bda856e
Set CXX standard to 17
itsafuu Aug 11, 2026
fe3e38f
Attempted fix segfault on no device
itsafuu Aug 11, 2026
48b4dbe
Log out device
itsafuu Aug 11, 2026
76f6ae6
feat(12-01): implement real QuantizeFloatBuffer/QuantizeByteBuffer + …
itsafuu Aug 12, 2026
bbe8621
feat(13-04): widen QuantizeFloatBuffer grid to empirically-safe S=2^15
itsafuu Aug 12, 2026
4c88c06
feat(13-06): extend capture_diff to numeric-diff per-chunk raw records
itsafuu Aug 13, 2026
f513e25
experiment(13): force MNN Precision_High for float processor to test …
itsafuu Aug 13, 2026
2795c2c
revert(13): comment out Precision_High experiment on MNN float proces…
itsafuu Aug 13, 2026
a71bfec
feat(14-01): add ResolveQuantScale/ResolveByteQuantMode, thread scale…
itsafuu Aug 14, 2026
1a46bfe
test(14-01): prove every ResolveQuantScale/ResolveByteQuantMode fallb…
itsafuu Aug 14, 2026
d5caaba
feat(14-02): wire quantScale resolution into 5 single-call-site float…
itsafuu Aug 14, 2026
a9ae333
feat(14-02): wire quantScale resolution into 5 double-call-site proce…
itsafuu Aug 14, 2026
af6e324
feat(14-02): wire remaining ParseLayout-family processors + render.cp…
itsafuu Aug 14, 2026
4e59cc7
test(14): add QuantizeByteBuffer bit-masking coverage (N=3, N=8 bound…
itsafuu Aug 14, 2026
17315be
feat(15-01): extract capture_diff primitives into sgprocmanagerdiff +…
itsafuu Aug 14, 2026
70aa065
feat(15-01): wire sgprocmanagerdiff into CMake, refactor capture_diff…
itsafuu Aug 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ set(libp2p_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/libp2p/include")

#add_subdirectory(generated)
add_subdirectory(src)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
add_subdirectory(tools)

install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SGProcessingManager" FILES_MATCHING PATTERN "*.h*")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/generated/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SGProcessingManager/generated" FILES_MATCHING PATTERN "*.h*")
Expand Down
130 changes: 110 additions & 20 deletions cmake/CommonBuildParameters.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@ set(BOOST_PATCH_VERSION "0" CACHE STRING "Boost Patch Version")
set(BOOST_VERSION "${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION}")
set(BOOST_VERSION_2U "${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}")

set(CMAKE_CXX_STANDARD 20)
# Default to C++20 only when the including project has not already chosen a
# standard. The standalone build (build/CommonCompilerOptions.cmake) sets
# C++17 before including this file, matching SuperGenius and all other
# projects; forcing 20 here breaks fmt/spdlog consteval format-string checks
# on newer clang (e.g. SPDLOG_LOGGER_CATCH in spdlog/logger.h).
if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 20)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand All @@ -32,15 +39,81 @@ set(OPENSSL_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/openssl/build/include" CACHE P

find_package(OpenSSL REQUIRED CONFIG)

# VulkanHeaders
set(VulkanHeaders_DIR "${_THIRDPARTY_BUILD_DIR}/Vulkan-Headers/share/cmake/VulkanHeaders" CACHE PATH "Path to Vulkan-Headers install folder")
find_package(VulkanHeaders CONFIG REQUIRED)

# Vulkan
find_package(Vulkan)
#
# On macOS, create the Vulkan::Vulkan target manually pointing at the MoltenVK
# dylib nested inside the thirdparty-built MoltenVK.xcframework. MoltenVK is a
# complete Vulkan implementation that exports the full loader API — it can be
# used directly without any ICD plumbing, exactly as MNN's Vulkan backend does.
#
# On other platforms, use the vendored Khronos Vulkan-Loader found via the
# standard find_package(Vulkan) / VULKAN_SDK mechanism.
if(APPLE)
if(NOT TARGET Vulkan::Vulkan)
set(_MVK_LIB "${_THIRDPARTY_BUILD_DIR}/MoltenVK/build/lib/MoltenVK.xcframework/macos-arm64_x86_64/libMoltenVK.a")
add_library(Vulkan::Vulkan STATIC IMPORTED GLOBAL)
set_target_properties(Vulkan::Vulkan PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_THIRDPARTY_BUILD_DIR}/Vulkan-Headers/include"
IMPORTED_LOCATION "${_MVK_LIB}"
)
# Frameworks MoltenVK links against; inherited by every consumer of Vulkan::Vulkan.
target_link_libraries(Vulkan::Vulkan INTERFACE
"-framework Metal"
"-framework IOSurface"
"-framework QuartzCore"
"-framework Foundation"
"-framework CoreFoundation"
"-framework CoreGraphics"
"-framework IOKit"
"-framework AppKit"
)
endif()
else()
find_package(Vulkan)

if(NOT TARGET Vulkan::Vulkan)
set(Vulkan_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/Vulkan-Headers/include")
if(NOT DEFINED ENV{VULKAN_SDK})
set(ENV{VULKAN_SDK} "${_THIRDPARTY_BUILD_DIR}/Vulkan-Loader")
endif()

if(NOT TARGET Vulkan::Vulkan)
if(NOT DEFINED $ENV{VULKAN_SDK})
set(ENV{VULKAN_SDK} "${_THIRDPARTY_BUILD_DIR}/Vulkan-Loader")
find_package(Vulkan REQUIRED)
endif()

find_package(Vulkan REQUIRED)
# Override Vulkan::Vulkan to use our vendored Vulkan-Headers on all non-Apple
# platforms. vk-bootstrap was built against our headers (v1.4); mixing with
# system/NDK headers (v1.3 or other versions) causes unknown-type errors in
# VkBootstrapDispatch.h and VkBootstrapFeatureChain.h.
set_target_properties(Vulkan::Vulkan PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_THIRDPARTY_BUILD_DIR}/Vulkan-Headers/include"
)
endif()

# vk-bootstrap
set(vk-bootstrap_DIR "${_THIRDPARTY_BUILD_DIR}/vk-bootstrap/lib/cmake/vk-bootstrap")
find_package(vk-bootstrap CONFIG REQUIRED)

# SPIRV-Tools — no longer a standalone build. libshaderc_combined (linked via
# shaderc::shaderc below) statically bundles the exact same SPIRV-Tools code at the
# exact same pinned commit (v2024.3 DEPS). The spirv-tools include path is folded into
# shaderc::shaderc's INTERFACE_INCLUDE_DIRECTORIES so <spirv-tools/libspirv.hpp> resolves.

# shaderc — installs no CMake package config (confirmed in 02-02-RESEARCH.md against
# github.com/google/shaderc/issues/1369 and github.com/microsoft/vcpkg/issues/23208); hand-written
# IMPORTED target required, mirroring thirdparty/build/CommonTargets.cmake's own target.
# libshaderc_combined statically bundles glslang+SPIRV-Tools and installs spirv-tools
# headers into <prefix>/include/spirv-tools/, so <spirv-tools/libspirv.hpp> resolves
# for consumers that call spvtools::SpirvTools::Validate() directly (SHADER-02).
if(NOT TARGET shaderc::shaderc)
add_library(shaderc::shaderc STATIC IMPORTED GLOBAL)
set_target_properties(shaderc::shaderc PROPERTIES
IMPORTED_LOCATION "${_THIRDPARTY_BUILD_DIR}/shaderc/lib/${CMAKE_STATIC_LIBRARY_PREFIX}shaderc_combined${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES "${_THIRDPARTY_BUILD_DIR}/shaderc/include"
)
endif()

# for compression, we need snappy
Expand Down Expand Up @@ -181,6 +254,10 @@ find_package(libp2p CONFIG REQUIRED)
set(ipfs-lite-cpp_DIR "${_THIRDPARTY_BUILD_DIR}/ipfs-lite-cpp/lib/cmake/ipfs-lite-cpp")
find_package(ipfs-lite-cpp CONFIG REQUIRED)

# ipfs-bitswap-cpp
set(ipfs-bitswap-cpp_DIR "${_THIRDPARTY_BUILD_DIR}/ipfs-bitswap-cpp/lib/cmake/ipfs-bitswap-cpp")
find_package(ipfs-bitswap-cpp CONFIG REQUIRED)

# MNN
set(MNN_DIR "${_THIRDPARTY_BUILD_DIR}/MNN/lib/cmake/MNN")
find_package(MNN CONFIG REQUIRED)
Expand All @@ -195,6 +272,31 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
get_target_property(MNN_LIB_PATH MNN::MNN IMPORTED_LOCATION_RELWITHDEBINFO)
endif()

# zlib
set(ZLIB_ROOT "${_THIRDPARTY_BUILD_DIR}/zlib")

# Prefer package config files while loading Libssh2's dependencies.
# Libssh2 config calls `find_dependency(ZLIB)` without `CONFIG`, which can
# otherwise resolve to CMake's FindZLIB module on Windows CI.
set(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_WAS_DEFINED FALSE)
if(DEFINED CMAKE_FIND_PACKAGE_PREFER_CONFIG)
set(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_WAS_DEFINED TRUE)
set(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_PREV "${CMAKE_FIND_PACKAGE_PREFER_CONFIG}")
endif()
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)

# libssh2
set(Libssh2_DIR "${_THIRDPARTY_BUILD_DIR}/libssh2/lib/cmake/libssh2")
find_package(Libssh2 CONFIG REQUIRED)

if(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_WAS_DEFINED)
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG "${_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_PREV}")
else()
unset(CMAKE_FIND_PACKAGE_PREFER_CONFIG)
endif()
unset(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_PREV)
unset(_SGNS_CMAKE_FIND_PACKAGE_PREFER_CONFIG_WAS_DEFINED)

# AsyncioManager
set(AsyncIOManager_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/AsyncIOManager/include")
set(AsyncIOManager_DIR "${_THIRDPARTY_BUILD_DIR}/AsyncIOManager/lib/cmake/AsyncIOManager")
Expand All @@ -206,20 +308,8 @@ include_directories(
)

add_subdirectory(${PROJECT_ROOT}/src ${CMAKE_BINARY_DIR}/src)

# if(BUILD_TESTS)
# add_executable(${PROJECT_NAME}_test
# "${CMAKE_CURRENT_LIST_DIR}/../test/main_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/BitcoinKeyGenerator_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/EthereumKeyGenerator_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/ElGamalKeyGenerator_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/ECElGamalKeyGenerator_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/TransactionVerifierCircuit_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/MPCVerifierCircuit_test.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/../test/Requestor.cpp"
# )
# target_link_libraries(${PROJECT_NAME}_test PUBLIC ${PROJECT_NAME} SGProofCircuits GTest::gtest Boost::random)
# endif()
add_subdirectory(${PROJECT_ROOT}/tools ${CMAKE_BINARY_DIR}/tools)
add_subdirectory(${PROJECT_ROOT}/test ${CMAKE_BINARY_DIR}/test)

# Install Headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SGProcessingManager" FILES_MATCHING PATTERN "*.h*")
Expand Down
21 changes: 21 additions & 0 deletions doc/vulkan-validation-layers-decision.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Vulkan Validation Layers Deferral Decision

## Decision

Vulkan-ValidationLayers is explicitly **not vendored** and **not wired** into debug or CI builds for v1.0 of the render pipeline. No validation-layer extension or callback is requested at `vkCreateInstance` time in any code path this phase delivers.

## Rationale

CTX-04 scoped validation-layer vendoring out of Phase 1 to keep the net-new vendoring surface to `vk-bootstrap` only. Validation layers are a development and debugging aid — they validate correct API usage, not runtime-correctness requirements — and this phase's deliverable (CTX-01..03, DISP-01..03) does not depend on them:

- A headless Vulkan context can be created, tested for coexistence safety, and dispatched to without validation layers present.
- This project's CI has zero macOS Vulkan signal today regardless of validation-layer presence (a pre-existing gap tracked for Phase 4).
- Adding validation layers would introduce an additional vendoring step (`thirdparty/Vulkan-ValidationLayers`, its own submodule + ExternalProject_Add build wiring) plus platform-specific library path resolution at runtime (the loader must find `VK_LAYER_KHRONOS_validation` on disk, and the path differs across Windows/Linux/macOS/MoltenVK) — all for a tooling aid that has no effect on the shipped code path.

## Deferred To

Tracked as v2 requirement **VALLAYER-01** in `.planning/workstreams/sgproc-render/REQUIREMENTS.md` ("Vulkan-ValidationLayers wired into debug/CI builds"), to be implemented in v1.x.

## Future Hook Point

If implemented later, validation layers can be enabled via `vkb::InstanceBuilder::request_validation_layers(true)` (vk-bootstrap has first-class support for this). The toggle would be gated behind a new CMake debug-only option — analogous to the existing `SANITIZE_CODE` debug-only toggle pattern already present in `CommonCompilerOptions.cmake` — so it never activates in release/optimized builds.
27 changes: 27 additions & 0 deletions generated/ColorFormat.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// To parse this JSON data, first install
//
// Boost http://www.boost.org
// json.hpp https://github.com/nlohmann/json
//
// Then include this file, and then do
//
// ColorFormat.hpp data = nlohmann::json::parse(jsonString);

#pragma once

#include <boost/optional.hpp>
#include <nlohmann/json.hpp>
#include "helper.hpp"

namespace sgns {
/**
* Color attachment format
*/

using nlohmann::json;

/**
* Color attachment format
*/
enum class ColorFormat : int { RGB8, RGBA8 };
}
4 changes: 2 additions & 2 deletions generated/ShaderType.hpp → generated/CullMode.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
//
// Then include this file, and then do
//
// ShaderType.hpp data = nlohmann::json::parse(jsonString);
// CullMode.hpp data = nlohmann::json::parse(jsonString);

#pragma once

Expand All @@ -16,5 +16,5 @@
namespace sgns {
using nlohmann::json;

enum class ShaderType : int { GLSL, HLSL, METAL, SPIRV };
enum class CullMode : int { BACK, FRONT, NONE };
}
27 changes: 27 additions & 0 deletions generated/DepthFormat.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// To parse this JSON data, first install
//
// Boost http://www.boost.org
// json.hpp https://github.com/nlohmann/json
//
// Then include this file, and then do
//
// DepthFormat.hpp data = nlohmann::json::parse(jsonString);

#pragma once

#include <boost/optional.hpp>
#include <nlohmann/json.hpp>
#include "helper.hpp"

namespace sgns {
/**
* Depth attachment format
*/

using nlohmann::json;

/**
* Depth attachment format
*/
enum class DepthFormat : int { D24_UNORM_S8_UINT, D32_SFLOAT };
}
20 changes: 20 additions & 0 deletions generated/DepthTest.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// To parse this JSON data, first install
//
// Boost http://www.boost.org
// json.hpp https://github.com/nlohmann/json
//
// Then include this file, and then do
//
// DepthTest.hpp data = nlohmann::json::parse(jsonString);

#pragma once

#include <boost/optional.hpp>
#include <nlohmann/json.hpp>
#include "helper.hpp"

namespace sgns {
using nlohmann::json;

enum class DepthTest : int { DISABLED, ENABLED };
}
20 changes: 20 additions & 0 deletions generated/FrontFace.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// To parse this JSON data, first install
//
// Boost http://www.boost.org
// json.hpp https://github.com/nlohmann/json
//
// Then include this file, and then do
//
// FrontFace.hpp data = nlohmann::json::parse(jsonString);

#pragma once

#include <boost/optional.hpp>
#include <nlohmann/json.hpp>
#include "helper.hpp"

namespace sgns {
using nlohmann::json;

enum class FrontFace : int { CCW, CW };
}
Loading