35#if !defined(__APPLE__)
49#ifndef VK_NO_PROTOTYPES
50#define VK_NO_PROTOTYPES
52#include <vulkan/vulkan_raii.hpp>
55namespace visualization {
129 return static_cast<vk::Instance::CType
>(*instance_);
132 return static_cast<vk::Device::CType
>(*device_);
135 return static_cast<vk::PhysicalDevice::CType
>(*physical_device_);
139 return static_cast<vk::Queue::CType
>(*compute_queue_);
142 return graphics_queue_family_;
157 VkImageUsageFlags usage,
158 const char* label =
nullptr);
171 VkMemoryPropertyFlags props)
const;
182 bool initialized_ =
false;
183 bool debug_utils_enabled_ =
false;
184 std::string last_error_;
187 std::uint32_t graphics_queue_family_ = UINT32_MAX;
188 std::uint32_t filament_queue_index_ = 1;
195 vk::raii::Context context_;
196 vk::raii::Instance instance_{
nullptr};
197 vk::raii::PhysicalDevice physical_device_{
nullptr};
198 vk::raii::Device device_{
nullptr};
199 vk::raii::Queue compute_queue_{
nullptr};
201 VkPhysicalDeviceMemoryProperties memory_props_{};
Definition GaussianSplatVulkanContext.h:92
bool Initialize()
Definition GaussianSplatVulkanContext.cpp:187
VkDevice GetDevice() const
Definition GaussianSplatVulkanContext.h:131
VkPhysicalDevice GetPhysicalDevice() const
Definition GaussianSplatVulkanContext.h:134
VkQueue GetComputeQueue() const
Compute queue at index 0 in the graphics family. Used for GS dispatch.
Definition GaussianSplatVulkanContext.h:138
std::uint32_t FindMemoryType(std::uint32_t type_filter, VkMemoryPropertyFlags props) const
Definition GaussianSplatVulkanContext.cpp:356
bool IsValid() const
Definition GaussianSplatVulkanContext.h:112
void Shutdown()
Definition GaussianSplatVulkanContext.cpp:333
const vk::raii::Device & GetRaiiDevice() const
Definition GaussianSplatVulkanContext.h:149
std::uint32_t GetComputeQueueFamily() const
Definition GaussianSplatVulkanContext.h:141
const std::string & GetLastError() const
Human-readable description of the last failure.
Definition GaussianSplatVulkanContext.h:118
void * GetVulkanSharedContext()
Definition GaussianSplatVulkanContext.h:124
bool GetDebugUtilsEnabled() const
Definition GaussianSplatVulkanContext.h:146
static GaussianSplatVulkanContext & GetInstance()
Definition GaussianSplatVulkanContext.cpp:173
VkInstance GetVkInstance() const
Definition GaussianSplatVulkanContext.h:128
bool IsSoftwareDevice() const
True when the selected device is a CPU/software Vulkan implementation.
Definition GaussianSplatVulkanContext.cpp:327
VkImageDesc CreateImage(std::uint32_t width, std::uint32_t height, VkFormat vk_format, VkImageUsageFlags usage, const char *label=nullptr)
Allocate a VkImage for sharing with Filament.
Definition GaussianSplatVulkanContext.cpp:380
bool SupportsOptimalStorageImage(VkFormat vk_format) const
Definition GaussianSplatVulkanContext.cpp:367
void DestroyImage(VkImageDesc &desc)
Destroy an image previously created by CreateImage().
Definition GaussianSplatVulkanContext.cpp:424
Definition PinholeCameraIntrinsic.cpp:16
Definition GaussianSplatVulkanContext.h:64
std::uint32_t graphics_queue_family_index
Definition GaussianSplatVulkanContext.h:68
bool debug_markers_supported
Definition GaussianSplatVulkanContext.h:71
VkDevice logical_device
Definition GaussianSplatVulkanContext.h:67
std::uint32_t graphics_queue_index
Definition GaussianSplatVulkanContext.h:69
VkPhysicalDevice physical_device
Definition GaussianSplatVulkanContext.h:66
bool debug_utils_enabled
Definition GaussianSplatVulkanContext.h:70
bool multiview_supported
Definition GaussianSplatVulkanContext.h:72
VkInstance instance
Definition GaussianSplatVulkanContext.h:65
Definition GaussianSplatVulkanContext.h:78
VkDeviceMemory vk_memory
Definition GaussianSplatVulkanContext.h:80
bool IsValid() const
Definition GaussianSplatVulkanContext.h:82
VkImage vk_image
Definition GaussianSplatVulkanContext.h:79