Skip to content

Vulkan: drop the dead path-tracer surface and fix VMA's API version - #76

Merged
brianmk merged 1 commit into
coin-Integratefrom
chore/vulkan-trim-dead-rt-and-vma
Sep 30, 2026
Merged

brianmk merged 1 commit into
coin-Integratefrom
chore/vulkan-trim-dead-rt-and-vma

Conversation

@brianmk

@brianmk brianmk commented Sep 30, 2026

Copy link
Copy Markdown
Owner

The retained renderer is raster-only; the path-tracing backend was dropped at import, leaving dead references behind.

Changes

  • SoVulkanDeviceCaps: remove the six ray-tracing/NVIDIA capability fields (rayTracing, positionFetch, opacityMicromap, nvCluster, nvPartitioned, nvLinearSweptSpheres) — never written or read.
  • Comments: reword the stale "RTX" / "path tracer" / "RT backend" references in SoRenderIR, SoVulkanRenderManager, SoVulkanRenderBackend(.h / P.h / Frame.cpp / Geometry.cpp) and SoFnv1a.h, so the overlay-composite path reads as backend-agnostic.
  • VMA API version fix: SoVulkanRenderBackendCore.cpp hardcoded vulkanApiVersion = VK_API_VERSION_1_2; it now uses the device's reported version clamped to 1.2, so a Vulkan 1.0/1.1 device (e.g. an older integrated GPU) is not handed vkBindBufferMemory2 / vkGetBufferMemoryRequirements2 entry points it does not support.
  • Smoke test: report the physical device's real apiVersion in the device context, exercising the clamped VMA path.

Notes

  • Four other SoVulkanDeviceCaps fields are also currently unused (externalSemaphoreFd, externalMemoryFd, timelineSemaphore, descriptorIndexingUpdateAfterBind). They look like intentionally-reserved interop/feature flags, so I left them; say the word and I'll trim those too.
  • Verified: standalone build-coin (Vulkan on, tests on) builds and VulkanSmokeTest passes (one offscreen frame recorded).

The retained renderer is raster-only; the path-tracing backend was dropped at
import, leaving dead references behind.

- SoVulkanDeviceCaps: remove the six ray-tracing/NVIDIA capability fields
  (rayTracing, positionFetch, opacityMicromap, nvCluster, nvPartitioned,
  nvLinearSweptSpheres).  They are never written or read by the renderer or the
  embedding app.
- Reword the stale "RTX"/"path tracer"/"RT backend" comments in the retained-IR
  and raster sources (SoRenderIR, SoVulkanRenderManager, SoVulkanRenderBackend,
  SoVulkanRenderBackendP/Frame/Geometry, SoFnv1a) so the overlay-composite path
  reads as backend-agnostic rather than tied to the removed tracer.
- VMA: initialize with the device's reported apiVersion (clamped to the 1.2 the
  backend targets) instead of hardcoding 1.2, so a Vulkan 1.0/1.1 device -- e.g.
  an older integrated GPU -- is not handed vkBindBufferMemory2 /
  vkGetBufferMemoryRequirements2 style entry points it does not support.
- VulkanSmokeTest: report the physical device's real apiVersion in the device
  context, exercising the clamped VMA path.
@brianmk
brianmk merged commit ab74182 into coin-Integrate Sep 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant