3DGS PR 3: compute-infra: GPU compute shader infrastructure (Vulkan/Metal/GL interop)#7487
Open
ssheorey wants to merge 4 commits into
Open
3DGS PR 3: compute-infra: GPU compute shader infrastructure (Vulkan/Metal/GL interop)#7487ssheorey wants to merge 4 commits into
ssheorey wants to merge 4 commits into
Conversation
|
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
…ling - Add AGENTS.md with coding and PR review guidelines - GLEW upgraded to v2.3.1 (adds GL_EXT_memory_object, GL_EXT_semaphore for Vulkan-OpenGL interop needed by Gaussian splatting) - Filament version bump for shared-context platform header support - Style tooling: check_style.py and check_cpp_style.cmake updated for .comp (GLSL compute) and .mm (Objective-C++) file handling
… transforms - t::PointCloud: IsGaussianSplat(), Rotate/Scale/Translate/Transform for GS attributes (positions, quaternion rotations, linear scales, DC/SH coefficients) - Ivanic-Ruedenberg SH rotation algorithm for f_rest attributes (degrees 1-3) - Point inversion parity handling for odd-degree SH blocks - PLY IO (legacy + tensor): read/write GS attributes (pos, rot, scale, opacity, f_dc, f_rest); exponentiate log-scales from PLY files at load time - SPLAT file IO: linear scales, packed quaternions, rgb8 DC color - FileFormatIO: register .splat extension - MaterialRecord: add GS-specific render flags (sh_degree, antialias, etc.) - Renderer/View: virtual interface additions for GS output queries
…erop) Third-party additions: - vkmemalloc: Vulkan Memory Allocator (VMA) for device-local buffer allocation - vulkan_headers: Khronos Vulkan headers - find_dependencies.cmake: add Vulkan + vkmemalloc package discovery - cmake/Open3DAddComputeShaders.cmake: compile GLSL .comp -> SPIR-V (glslc) and cross-compile to MSL (spirv-cross) for Apple; installs to resources/ cpp/open3d/CMakeLists.txt: link OpenGL::EGL and X11 for the GL shared-context backend on Linux/Windows. New source files (wired into the build in the next PR): - ComputeGPU.h: ComputeProgramId enum, GaussianSplatGpuContext abstract base, GpuComputeFrame/GpuComputePass RAII helpers - ComputeGPUVulkan: headless Vulkan instance + device, SSBO/UBO binding, command buffer lifecycle, fence-based geometry sync - ComputeGPUMetal.mm: Metal GaussianSplatGpuContext implementation - GaussianSplatOpenGLContext: GLFW-owned GL 4.6 helper window for shared-context creation (GLX on Linux, WGL on Windows) before Engine::create() - GaussianSplatVulkanInteropContext: exports VkImage memory to OpenGL via GL_EXT_memory_object for zero-copy Filament-Vulkan texture sharing
6b969dd to
e8544b5
Compare
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.
Type
Motivation and Context
Checklist:
python util/check_style.py --applyto apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
Third-party additions:
and cross-compile to MSL (spirv-cross) for Apple; installs to resources/
cpp/open3d/CMakeLists.txt: link OpenGL::EGL and X11 for the GL shared-context
backend on Linux/Windows.
New source files (wired into the build in the next PR):
GpuComputeFrame/GpuComputePass RAII helpers
command buffer lifecycle, fence-based geometry sync
creation (GLX on Linux, WGL on Windows) before Engine::create()
GL_EXT_memory_object for zero-copy Filament-Vulkan texture sharing