Skip to content

Vulkan: add standalone renderer foundation - #2162

Draft
r0shn1ch wants to merge 72 commits into
OpenXRay:devfrom
r0shn1ch:vulkan/renderer-foundation
Draft

r0shn1ch wants to merge 72 commits into
OpenXRay:devfrom
r0shn1ch:vulkan/renderer-foundation

Conversation

@r0shn1ch

@r0shn1ch r0shn1ch commented Sep 29, 2026 •

Copy link
Copy Markdown

Summary

  • Add a standalone xrRenderVK foundation with device selection, swapchain frames, resize recovery, DDS upload, and image state tracking.
  • Add a Vulkan screen-copy shader pair, generated SPIR-V 1.0, and a DXC regeneration script.
  • Add ScreenCopyPass: separate image/sampler descriptors, a graphics pipeline, and a fullscreen draw callback.

This is a direct Vulkan path. Gameplay still uses the existing OpenGL renderer; no Vulkan gameplay integration or device smoke test is included.

Roadmap

  1. Frame and texture foundation — in place.
  2. Swapchain resize recovery — in place.
  3. Screen-copy shaders and shader modules — in place.
  4. Screen-copy descriptors, pipeline, and frame callback — in place.
  5. Connect engine images, then render UI and static geometry through Vulkan.
  6. Port models, terrain, particles, deferred lighting, shadows, and post-processing.
  7. Add surface-loss and Android, Windows, and Linux lifecycle support; validate levels and mods.
  8. Profile both renderers and select Vulkan for gameplay after feature parity.

Validation

  • All xrRenderVK sources compile as C++17 with -Wall -Wextra -Werror (-Wno-missing-field-initializers for Vulkan aggregates).
  • The frame and screen-copy sources compile together as one unity translation unit.
  • Host tests pass for DDS decoding, image state tracking, shader modules, and the screen-copy pass.
  • DXC compiles both shaders; SPIR-V 1.0 headers and fragment descriptor bindings 0 and 1 were checked.
  • Fork push Build: all 56 jobs passed. Push StyleCheck (clang-format, encoding, spacing) passed.
  • No gameplay or GPU-device smoke test yet.

Add the NDK/CMake build, SDL launcher packaging, Android lifecycle and storage integration, touch input, GLES shader and texture compatibility, ARM-safe data access, diagnostics, and gameplay stabilization.
Correct sector traversal, HOM and occlusion behavior, DDS channel handling and texture lifetime. Add bounded scheduler and sector diagnostics, repeatable APK staging, generated launcher versions, and ARM NEON ray traversal checks.
Add GLES frame back-pressure, render quality and resolution profiles, session logging, update manifests, and portable alignment fixes. Implement Vulkan device setup, DDS decoding and upload, plus per-subresource image state tracking for the Android probe.
Fetch Alpine bootstrap archives once with mirror failover, keep the build matrix portable, and publish Windows nightly artifacts from a dedicated job with explicit release permissions.
Align the native minimum API with minSdk 26. Replace speculative build and renderer prose with the actual toolchain inputs, outputs, runtime limits, launcher behavior, Vulkan implementation status, and publishing constraints.
@github-actions github-actions Bot added Renderer Documentation External (3rd party) This issue is related to external component used by our project. labels Sep 29, 2026
@Xottab-DUTY

Copy link
Copy Markdown
Member

We already have a new NVRHI based renderer in development. It supports DX11, DX12 and Vulkan.
Check yohji/feat/framegraph branch.

@github-actions github-actions Bot added the Game assets A feature or an issue that involves gamedata change label Sep 29, 2026
@r0shn1ch
r0shn1ch force-pushed the vulkan/renderer-foundation branch from e59769b to 4b3452e Compare September 29, 2026 12:23
@github-actions github-actions Bot added AI Artificial Intelligence UI Infrastructure labels Sep 29, 2026
@r0shn1ch
r0shn1ch force-pushed the vulkan/renderer-foundation branch 5 times, most recently from eb93bd7 to 09fca76 Compare September 30, 2026 13:06
@Xottab-DUTY
Xottab-DUTY marked this pull request as draft October 4, 2026 08:31
@Xottab-DUTY Xottab-DUTY removed this from Roadmap Oct 4, 2026
@IriaSomobu

Copy link
Copy Markdown

+60k LOC :omg:

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Artificial Intelligence Documentation External (3rd party) This issue is related to external component used by our project. Game assets A feature or an issue that involves gamedata change Infrastructure Renderer UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants