Vulkan backend: render-pass cache, tessellation overlay, and code dedup - #12
Merged
brianmk merged 2 commits intoSep 9, 2026
Merged
Conversation
brianmk
commented
Sep 9, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.