33 #if !defined(__APPLE__)
46 #ifndef VK_NO_PROTOTYPES
47 #define VK_NO_PROTOTYPES
49 #include <vulkan/vulkan_raii.hpp>
52 namespace visualization {
140 return static_cast<vk::Instance::CType
>(*instance_);
143 return static_cast<vk::Device::CType
>(*device_);
146 return static_cast<vk::PhysicalDevice::CType
>(*physical_device_);
149 return static_cast<vk::Queue::CType
>(*compute_queue_);
152 return compute_queue_family_;
161 return subgroup_supported_stages_;
164 return subgroup_supported_operations_;
179 const char* label =
nullptr);
185 const char* label =
nullptr);
198 VkMemoryPropertyFlags props)
const;
211 bool CreateInstance();
212 bool SelectPhysicalDevice();
213 bool CreateLogicalDevice();
220 VkImageUsageFlags usage,
222 VkDeviceMemory& out_memory,
227 bool ImportFDIntoGL(
int fd,
230 VkDeviceSize memory_size,
241 bool initialized_ =
false;
242 bool gl_extensions_ok_ =
false;
243 bool debug_utils_enabled_ =
248 std::string last_error_;
253 vk::raii::Context context_;
254 vk::raii::Instance instance_{
nullptr};
255 vk::raii::PhysicalDevice physical_device_{
nullptr};
256 vk::raii::Device device_{
nullptr};
257 vk::raii::Queue compute_queue_{
nullptr};
260 VkPhysicalDeviceMemoryProperties memory_props_{};
filament::Texture::InternalFormat format
Definition: FilamentResourceManager.cpp:202
Definition: GaussianSplatVulkanInteropContext.h:107
const vk::raii::Instance & GetRaiiInstance() const
Definition: GaussianSplatVulkanInteropContext.h:168
const std::string & GetLastError() const
Human-readable description of the last failure (extension name, etc.).
Definition: GaussianSplatVulkanInteropContext.h:131
SharedImageDesc CreateSharedColorImage(std::uint32_t width, std::uint32_t height, const char *label=nullptr)
Definition: GaussianSplatVulkanInteropContext.cpp:763
VkQueue GetComputeQueue() const
Definition: GaussianSplatVulkanInteropContext.h:148
static GaussianSplatVulkanInteropContext & GetInstance()
Definition: GaussianSplatVulkanInteropContext.cpp:159
std::uint32_t GetSubgroupSupportedStages() const
Definition: GaussianSplatVulkanInteropContext.h:160
std::uint32_t GetSubgroupSupportedOperations() const
Definition: GaussianSplatVulkanInteropContext.h:163
SharedImageDesc CreateSharedDepthImage(std::uint32_t width, std::uint32_t height, const char *label=nullptr)
Definition: GaussianSplatVulkanInteropContext.cpp:769
VkPhysicalDevice GetPhysicalDevice() const
Definition: GaussianSplatVulkanInteropContext.h:145
bool GetDebugUtilsEnabled() const
Definition: GaussianSplatVulkanInteropContext.h:156
std::uint32_t FindMemoryType(std::uint32_t type_filter, VkMemoryPropertyFlags props) const
Definition: GaussianSplatVulkanInteropContext.cpp:455
void Shutdown()
Release all Vulkan resources and invalidate the context.
Definition: GaussianSplatVulkanInteropContext.cpp:208
std::uint32_t GetSubgroupSize() const
Definition: GaussianSplatVulkanInteropContext.h:159
const vk::raii::Device & GetRaiiDevice() const
Definition: GaussianSplatVulkanInteropContext.h:169
bool ProbeGLExtensions()
Definition: GaussianSplatVulkanInteropContext.cpp:242
void DestroySharedImage(SharedImageDesc &desc)
Definition: GaussianSplatVulkanInteropContext.cpp:775
VkInstance GetVkInstance() const
Definition: GaussianSplatVulkanInteropContext.h:139
bool IsValid() const
Definition: GaussianSplatVulkanInteropContext.h:121
std::uint32_t GetComputeQueueFamily() const
Definition: GaussianSplatVulkanInteropContext.h:151
VkDevice GetDevice() const
Definition: GaussianSplatVulkanInteropContext.h:142
bool Initialize()
Definition: GaussianSplatVulkanInteropContext.cpp:172
bool AreGLExtensionsReady() const
Definition: GaussianSplatVulkanInteropContext.h:128
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle uint32_t
Definition: K4aPlugin.cpp:548
VkInteropImageFormat
Image format selector used for interop image creation.
Definition: GaussianSplatVulkanInteropContext.h:60
@ kDepth32F
Depth-only (VK_FORMAT_D32_SFLOAT / GL DEPTH_COMPONENT32F)
@ kRGBA16F
RGBA16F colour (VK_FORMAT_R16G16B16A16_SFLOAT / GL RGBA16F)
Definition: PinholeCameraIntrinsic.cpp:16
Definition: GaussianSplatVulkanInteropContext.h:76
std::uint32_t gl_texture
GL texture name; pass to Filament.
Definition: GaussianSplatVulkanInteropContext.h:83
std::uint32_t width
Dimensions and format (stored for resize/recreate checks).
Definition: GaussianSplatVulkanInteropContext.h:86
std::uint32_t height
Definition: GaussianSplatVulkanInteropContext.h:87
VkImage vk_image
Definition: GaussianSplatVulkanInteropContext.h:77
VkDeviceMemory vk_memory
Dedicated exportable alloc.
Definition: GaussianSplatVulkanInteropContext.h:78
std::uint32_t gl_memory_object
glCreateMemoryObjectsEXT result
Definition: GaussianSplatVulkanInteropContext.h:82
bool IsValid() const
Definition: GaussianSplatVulkanInteropContext.h:94
VkInteropImageFormat format
Definition: GaussianSplatVulkanInteropContext.h:88
VkImageLayout current_layout
Definition: GaussianSplatVulkanInteropContext.h:92