Add Metal Gaussian rendering for native viewport and usdview - #107
Merged
Merged
Conversation
4 tasks
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.
Summary
Gaussian-only USD stages opened as an empty view with the Metal backend. Add CPU-sorted Gaussian rendering on Metal so these stages render in the native viewport and usdview. The shared projection, covariance, SH evaluation and sorting implementation now lives in RenderExtraction; Vulkan retains its existing raster path.
Metal draws alpha-blended ellipses against opaque mesh depth and writes resource/particle picking IDs. Immutable prepared buffers are reused across unchanged frames and retained across in-flight edits. Also fix native Hydra regression logging reading an unrequested depth buffer, and enable Objective-C at the top-level macOS configure scope.
Related issue: none.
Impact
preferfalls back,requirerejects. Camera/scene changes prepare a new stream; GPU preparation and tile rasterization remain Vulkan-only.Verification
Local Apple GPU / Release / OpenUSD 26.08:
hgi_metal_transfer_mode=gpu-copyand zero validation messages. The user confirmed both displays. Native capture completed three frames successfully. The private scene/image is not included in this PR.git diff --checkpassed.Commands used:
Windows Vulkan/HgiVulkan cannot be exercised on this Mac. Self-hosted GPU CI passed for commit
7305ec8in Debug/Release and OpenUSD 26.05/26.08. Hosted Core/Metal/MaterialX CI passed all 12 jobs for the same commit.Review checklist