26 class rv_InstanceData;
31 class RV_VKCommandPool;
33 class RV_VKCommandBufferAllocator;
35 class RV_VKMemAllocator;
50 static bool hasInstance();
52 static void destroyInstance();
55 static void exitCallback(
void*);
58 static void addPostCreateCB(
bool (*cb)(
RV_Instance*));
59 static bool hasPostCreateCBs();
64 static void addPreDestroyCB(
bool (*cb)(
RV_Instance*));
65 static bool hasPreDestroyCBs();
83 bool initializeDevice();
88 VkPhysicalDevice getPhysicalDevice();
90 VkInstance getVkInst();
102 void getDeviceUUID(
uint8 (&uuid)[16])
const;
114 static uint32_t getInstanceVersion();
117 uint32_t getDeviceVersion();
124 static bool usingDebugValidation();
127 static bool usingVulkanMultithreading();
130 int getMaxColorSamples()
const;
133 int getMaxDepthSamples()
const;
136 int getMaxTextureSize2D()
const;
139 int getMaxTextureSize3D()
const;
142 float getLineWidthGranularity()
const;
148 float getPointSizeGranularity()
const;
157 bool extEnabled(
const char* vk_ext_name )
const;
160 bool useLinearTilingForGLInterop()
const;
163 void waitDeviceIdle();
182 bool validateImage(
RV_ResourceID id,
bool allow_pending_delete =
false)
const;
187 bool validateBuffer(
RV_ResourceID id,
bool allow_pending_delete =
false)
const;
192 bool validateAccelStruct(
RV_ResourceID id,
bool allow_pending_delete =
false)
const;
197 bool validateSet(
RV_ResourceID id,
bool allow_pending_delete =
false)
const;
201 void printIDs()
const;
GLenum GLuint GLenum GLsizei const GLchar * buf
RV_VKMemAllocator & getMemAllocator()
Our Vulkan memory allocator implementation.
RV_VKQueue & getGraphicsQueue()
Main Queue supporting graphics, compute and transfer.
RV_DescriptorAllocator & getDescAllocator()
Our Vulkan descriptor set allocator.
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
constexpr auto set(type rhs) -> int
const UT_StringHolder & deviceName() const
std::function< T > UT_Function
Handle to the main interface of Vulkan.
UT_Function< void(RV_Instance *)> RenderCallback
RV_VKExt * getExt()
Object containing function pointers to Vulkan extensions.