Skip to content

Vulkan backend: render-pass cache, tessellation overlay, and code dedup - #12

Merged
brianmk merged 2 commits into
fix/lighting-shader-consolidationfrom
fix/vulkan-backend-cleanup
Sep 9, 2026
Merged

brianmk merged 2 commits into
fix/lighting-shader-consolidationfrom
fix/vulkan-backend-cleanup

Conversation

@brianmk

@brianmk brianmk commented Sep 9, 2026

Copy link
Copy Markdown
Owner
  • Extract the raster render-pass/framebuffer cache into SoVulkanRenderPassCache with deferred resource release through the frame ring.
  • Add the tessellation-edges debug overlay: setTessellationOverlay() through the manager/backend chain redraws triangle commands in LINES mode (FC_VULKAN_TESS env fallback).
  • Deduplicate the viewport Y-flip/clamp math into vulkanFlippedViewportRect() (previously 4 copies).
  • Deduplicate the draw descriptor-set binding into bindDrawDescriptorSets().
  • Deduplicate the RTX BLAS build/refit paths into blasBuildOrRefit() and the grow-only pool logic into ensurePoolCapacity().
  • Split shared memory-type selection into pickExact (raster) / pick (RT best-effort) policies.
  • Extract the FC_VULKAN_BLACK_DEBUG drawlist stats into vkBlackDebugStats(); add [VKINIT] initBreadcrumb bring-up tracing, accumulation-buffer dumps (FC_VULKAN_PT_DUMP_ACCUM), and fix the RGB row conversion in the storage-image PPM dump.

- Extract the raster render-pass/framebuffer cache into
  SoVulkanRenderPassCache with deferred resource release through the
  frame ring (replaces the inline renderPassCache members).
- Add the tessellation-edges debug overlay: setTessellationOverlay()
  through the manager/backend chain redraws triangle commands in LINES
  mode (FC_VULKAN_TESS env fallback).
- Deduplicate the viewport Y-flip/clamp math into
  CoinVulkanDetail::vulkanFlippedViewportRect() (previously 4 copies in
  applyViewport/isFullTargetClear/recordClear/recordBackground).
- Deduplicate the draw descriptor-set binding into
  bindDrawDescriptorSets() (recordDrawCommand / recordCommandBatch).
- Deduplicate the RTX BLAS build/refit paths into blasBuildOrRefit()
  and the grow-only pool logic into ensurePoolCapacity().
- Split shared memory-type selection into pickExact (raster) / pick
  (RT best-effort) policies.
- Extract the FC_VULKAN_BLACK_DEBUG drawlist stats into
  vkBlackDebugStats(); add [VKINIT] initBreadcrumb bring-up tracing,
  accumulation-buffer dumps (FC_VULKAN_PT_DUMP_ACCUM), and fix the
  RGB row conversion in the storage-image PPM dump.
The FC_VK_REMOVE_DBG backtrace block was a temporary diagnostic for the
double-remove during initial open and pulled in <execinfo.h>, which is
glibc-only and broke the Windows build (C1083). The double-remove is
fixed on the FreeCAD side, so remove the block and the include.
@brianmk
brianmk merged commit 9356b95 into fix/lighting-shader-consolidation Sep 9, 2026
9 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