|
| virtual xiiGALCommandQueue * | GetCommandQueue (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const override final |
| | Retrieves a pointer to the compute queue if available, null otherwise.
|
| |
| virtual void | SetDebugNamePlatform (xiiStringView sName) const override final |
| |
|
template<typename ObjectHandle, typename = typename std::enable_if<std::is_object<ObjectHandle>::value>::type> |
| XII_FORCE_INLINE void | SetVulkanObjectDebugName (ObjectHandle &vkObject, const char *szDebugName, xiiVulkanAllocation allocation={}) const |
| |
|
template<typename T, typename = std::enable_if_t<std::is_class_v<T> && HasObjectType<T>::value>> |
| XII_FORCE_INLINE void | SafeReleaseDeviceObject (T &&vkObject, xiiVulkanAllocation &&allocation=nullptr, vk::DeviceMemory &&vkExternalMemory=nullptr) |
| |
|
template<typename T> |
| XII_ALWAYS_INLINE void | ReclaimLater (T &&vkObject) |
| |
|
XII_ALWAYS_INLINE xiiAllocatorBase * | GetAllocator () const |
| |
|
XII_ALWAYS_INLINE xiiVulkanMemoryAllocator * | GetVulkanMemoryAllocator () const |
| |
|
XII_ALWAYS_INLINE vk::Instance | GetVulkanInstance () const |
| |
|
XII_ALWAYS_INLINE xiiUInt32 | GetVulkanVersion () const |
| |
|
XII_ALWAYS_INLINE const vk::detail::DispatchLoaderDynamic & | GetVulkanDynamicDispatchLoader () const |
| |
|
XII_ALWAYS_INLINE const xiiGALDeviceVulkan::InstanceFlags & | GetVulkanInstanceFlags () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::LayerProperties > | GetVulkanInstanceLayers () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::ExtensionProperties > | GetVulkanInstanceExtensionProperties () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const char *const > | GetVulkanInstanceEnabledExtensions () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::PhysicalDevice > | GetVulkanPhysicalDevices () const |
| |
|
XII_ALWAYS_INLINE vk::PhysicalDevice | GetVulkanPhysicalDevice () const |
| |
|
XII_ALWAYS_INLINE const vk::PhysicalDeviceProperties & | GetVulkanPhysicalDeviceProperties () const |
| |
|
XII_ALWAYS_INLINE const vk::PhysicalDeviceFeatures & | GetVulkanPhysicalDeviceFeatures () const |
| |
|
XII_ALWAYS_INLINE const vk::PhysicalDeviceMemoryProperties & | GetVulkanPhysicalDeviceMemoryProperties () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::QueueFamilyProperties > | GetPhysicalDeviceQueueFamilyProperties () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::ExtensionProperties > | GetPhysicalDeviceSupportedExtensions () const |
| |
|
XII_ALWAYS_INLINE const xiiGALDeviceVulkan::ExtensionFeatures & | GetPhysicalDeviceExtensionFeatures () const |
| |
|
XII_ALWAYS_INLINE const xiiGALDeviceVulkan::ExtensionProperties & | GetPhysicalDeviceExtensionProperties () const |
| |
|
XII_ALWAYS_INLINE vk::Device | GetVulkanLogicalDevice () const |
| |
|
XII_ALWAYS_INLINE const vk::PhysicalDeviceFeatures & | GetVulkanLogicalDeviceFeatures () const |
| |
|
XII_ALWAYS_INLINE const xiiGALDeviceVulkan::ExtensionFeatures & | GetVulkanLogicalDeviceExtensionFeatures () const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::PipelineStageFlags > | GetVulkanLogicalDeviceSupportedStagesFlags () const |
| |
|
XII_ALWAYS_INLINE vk::PipelineStageFlags | GetVulkanLogicalDeviceSupportedStagesFlags (xiiUInt32 uiQueueFamilyIndex) const |
| |
|
XII_ALWAYS_INLINE xiiArrayPtr< const vk::AccessFlags > | GetVulkanLogicalDeviceSupportedAccessFlags () const |
| |
|
XII_ALWAYS_INLINE vk::AccessFlags | GetVulkanLogicalDeviceSupportedAccessFlags (xiiUInt32 uiQueueFamilyIndex) const |
| |
|
XII_ALWAYS_INLINE void | LockCommandQueueAndRun (xiiBitflags< xiiGALCommandQueueFlags > queueFlags, xiiDelegate< void(const vk::Queue &)> action) |
| |
|
XII_ALWAYS_INLINE const xiiGALQueueInformationVulkan & | GetCommandQueueInformation (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE xiiMutex & | GetCommandQueueMutex (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE xiiGALCommandBufferPoolVulkan * | GetCommandBufferPool (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE xiiGALQueryPoolVulkan * | GetCommandQueueQueryPool (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE vk::PipelineStageFlags | GetSupportedStagesFlags (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE vk::AccessFlags | GetSupportedAccessFlags (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const |
| |
|
XII_ALWAYS_INLINE xiiGALDeviceVulkan::DebugMode | GetDebugMode () const |
| |
|
XII_ALWAYS_INLINE xiiGALFencePoolVulkan * | GetVulkanFencePool () const |
| |
|
XII_ALWAYS_INLINE xiiGALSemaphorePoolVulkan * | GetVulkanSemaphorePool () const |
| |
|
XII_ALWAYS_INLINE DeferredDeletionQueue * | GetDeferredDeletionQueue () const |
| |
|
template<typename T, typename> |
| XII_ALWAYS_INLINE void | SafeReleaseDeviceObject (T &&vkObject, xiiVulkanAllocation &&allocation, vk::DeviceMemory &&vkExternalMemory) |
| |
|
xiiResult | Initialize () |
| | Initialize device.
|
| |
|
void | BeginFrame () |
| | Begins a render frame.
|
| |
|
void | EndFrame () |
| | Ends a render frame.
|
| |
| void | WaitIdle () |
| | Waits until all outstanding operations on the GPU are complete and destroys any pending resources and GPU objects.
|
| |
|
const xiiGALDeviceCreationDescription & | GetDescription () const |
| | Returns the creation description for this device.
|
| |
|
const xiiGALGraphicsDeviceAdapterDescription & | GetGraphicsDeviceAdapterProperties () const |
| | This retrieves the device properties. See xiiGraphicsDeviceAdapterDescription.
|
| |
|
const xiiGALDeviceFeatures & | GetFeatures () const |
| | This retrieves the device feature states. See xiiGALDeviceFeatures.
|
| |
|
const xiiGALDeviceLimits & | GetLimits () const |
| | This retrieves the device limits. See xiiGALDeviceLimits.
|
| |
|
xiiEnum< xiiGALGraphicsDeviceType > | GetGraphicsDeviceType () const |
| | This retrieves the device graphics API type. See xiiGALGraphicsDeviceType.
|
| |
|
xiiMutex & | GetMutex () const |
| | This returns critical section lock.
|
| |
| xiiSharedPtr< xiiGALSwapChain > | CreateSwapChain (const xiiGALSwapChainCreationDescription &description) |
| | This creates a swap chain object.
|
| |
| xiiSharedPtr< xiiGALCommandList > | CreateCommandList (const xiiGALCommandListCreationDescription &description) |
| | This creates a command list object.
|
| |
| xiiSharedPtr< xiiGALBlendState > | CreateBlendState (const xiiGALBlendStateCreationDescription &description) |
| | This creates a new blend state object.
|
| |
| xiiSharedPtr< xiiGALDepthStencilState > | CreateDepthStencilState (const xiiGALDepthStencilStateCreationDescription &description) |
| | This creates a new depth stencil state object.
|
| |
| xiiSharedPtr< xiiGALRasterizerState > | CreateRasterizerState (const xiiGALRasterizerStateCreationDescription &description) |
| | This creates a new rasterizer state object.
|
| |
| xiiSharedPtr< xiiGALShader > | CreateShader (const xiiGALShaderCreationDescription &description) |
| | This creates a new shader object.
|
| |
| xiiSharedPtr< xiiGALBuffer > | CreateBuffer (const xiiGALBufferCreationDescription &description, const xiiGALBufferData *pInitialData=nullptr, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind=xiiGALExternalMemoryKind::None) |
| | This creates a new buffer object.
|
| |
| xiiSharedPtr< xiiGALTexture > | CreateTexture (const xiiGALTextureCreationDescription &description, const xiiGALTextureData *pInitialData=nullptr, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind=xiiGALExternalMemoryKind::None) |
| | This creates a new texture object.
|
| |
| xiiSharedPtr< xiiGALSampler > | CreateSampler (const xiiGALSamplerCreationDescription &description) |
| | This creates a new sampler object.
|
| |
| xiiSharedPtr< xiiGALQuery > | CreateQuery (const xiiGALQueryCreationDescription &description) |
| | This creates a new query object.
|
| |
| xiiSharedPtr< xiiGALFence > | CreateFence (const xiiGALFenceCreationDescription &description) |
| | This creates a new fence object.
|
| |
| xiiSharedPtr< xiiGALRenderPass > | CreateRenderPass (const xiiGALRenderPassCreationDescription &description) |
| | This creates a new render pass object.
|
| |
| xiiSharedPtr< xiiGALFramebuffer > | CreateFramebuffer (const xiiGALFramebufferCreationDescription &description) |
| | This creates a new frame buffer object.
|
| |
| xiiSharedPtr< xiiGALBottomLevelAS > | CreateBottomLevelAS (const xiiGALBottomLevelASCreationDescription &description) |
| | This creates a new bottom-level acceleration structure object.
|
| |
| xiiSharedPtr< xiiGALTopLevelAS > | CreateTopLevelAS (const xiiGALTopLevelASCreationDescription &description) |
| | This creates a new top-level acceleration structure object.
|
| |
| xiiSharedPtr< xiiGALPipelineResourceSignature > | CreatePipelineResourceSignature (xiiGALPipelineResourceSignatureCreationDescription &description) |
| | This creates a new pipeline resource signature object.
|
| |
| xiiSharedPtr< xiiGALGraphicsPipelineState > | CreateGraphicsPipelineState (const xiiGALGraphicsPipelineStateCreationDescription &description) |
| | This creates a new graphics pipeline state object.
|
| |
| xiiSharedPtr< xiiGALComputePipelineState > | CreateComputePipelineState (const xiiGALComputePipelineStateCreationDescription &description) |
| | This creates a new compute pipeline state object.
|
| |
| xiiSharedPtr< xiiGALRayTracingPipelineState > | CreateRayTracingPipelineState (const xiiGALRayTracingPipelineStateCreationDescription &description) |
| | This creates a new ray tracing pipeline state object.
|
| |
| xiiSharedPtr< xiiGALTilePipelineState > | CreateTilePipelineState (const xiiGALTilePipelineStateCreationDescription &description) |
| | This creates a new tile pipeline state object.
|
| |
|
XII_ALWAYS_INLINE xiiStringView | GetDebugName () const |
| | Returns the debug name of this resource.
|
| |
|
void | SetDebugName (xiiStringView sDebugName) const |
| | Sets the debug name for this resource.
|
| |
|
virtual const xiiRTTI * | GetDynamicRTTI () const |
| |
|
bool | IsInstanceOf (const xiiRTTI *pType) const |
| | Returns whether the type of this instance is of the given type or derived from it.
|
| |
|
template<typename T> |
| XII_ALWAYS_INLINE bool | IsInstanceOf () const |
| | Returns whether the type of this instance is of the given type or derived from it.
|
| |
|
virtual | ~xiiRefCounted ()=default |
| | Adds a virtual destructor.
|
| |
|
| xiiRefCountingImpl ()=default |
| | Constructor.
|
| |
|
| xiiRefCountingImpl (const xiiRefCountingImpl &rhs) |
| |
|
void | operator= (const xiiRefCountingImpl &rhs) |
| |
|
xiiUInt32 | AddRef () const |
| | Increments the reference counter. Returns the new reference count.
|
| |
|
xiiUInt32 | ReleaseRef () const |
| | Decrements the reference counter. Returns the new reference count.
|
| |
|
bool | IsReferenced () const |
| | Returns true if the reference count is greater than 0, false otherwise.
|
| |
|
xiiUInt32 | GetRefCount () const |
| | Returns the current reference count.
|
| |