Open3D (C++ API)  0.20.0
Loading...
Searching...
No Matches
ComputeGPUVulkan.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2026 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7//
8// Vulkan compute backend for the Gaussian splatting pipeline.
9// Compiled on non-Apple platforms.
10//
11// Key design:
12// - Implements GaussianSplatGpuContext backed by Vulkan compute pipelines
13// loaded from SPIR-V assets at resources/gaussian_splat/.
14// - Uses VK_KHR_push_descriptor for efficient per-dispatch binding (no
15// descriptor pool allocation per frame).
16// - Uses VMA for internal buffer/image allocation. Images shared with
17// Filament (color, depth) are owned by GaussianSplatVulkanContext and
18// registered here via RegisterVkImageInComputeContext().
19// - Synchronisation: each EndXxxPass() submits and waits (fence-based) so
20// the rest of the pipeline sees a completed GPU result.
21
22#pragma once
23
24#if !defined(__APPLE__)
25
26#include <cstdint>
27#include <memory>
28
30
31namespace open3d {
32namespace visualization {
33namespace rendering {
34
42void RegisterVkImageInComputeContext(GaussianSplatGpuContext& ctx,
43 std::uintptr_t vk_image_opaque,
44 std::uint32_t vk_format_opaque,
45 std::uint32_t width,
46 std::uint32_t height);
47
49void UnregisterVkImageFromComputeContext(GaussianSplatGpuContext& ctx,
50 std::uintptr_t vk_image_opaque);
51
55[[nodiscard]] std::unique_ptr<GaussianSplatGpuContext>
57
58} // namespace rendering
59} // namespace visualization
60} // namespace open3d
61
62#endif // !defined(__APPLE__)
int width
Definition FilePCD.cpp:53
int height
Definition FilePCD.cpp:54
void UnregisterVkImageFromComputeContext(GaussianSplatGpuContext &ctx, std::uintptr_t vk_image_opaque)
Unregister a previously registered image (called on resize/teardown).
Definition ComputeGPUVulkan.cpp:1341
std::unique_ptr< GaussianSplatGpuContext > CreateComputeGpuContextVulkan()
Definition ComputeGPUVulkan.cpp:1348
void RegisterVkImageInComputeContext(GaussianSplatGpuContext &ctx, std::uintptr_t vk_image_opaque, std::uint32_t vk_format_opaque, std::uint32_t width, std::uint32_t height)
Definition ComputeGPUVulkan.cpp:1329
Definition PinholeCameraIntrinsic.cpp:16