|
virtual xiiGALCommandQueue * | GetDefaultCommandQueue (xiiBitflags< xiiGALCommandQueueType > queueType) 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> |
void | SetVulkanObjectDebugName (ObjectHandle &vkObject, const char *szDebugName, VmaAllocation vmaAllocation={}) const |
|
template<typename T, typename = std::enable_if_t<std::is_class_v<T> && HasObjectType<T>::value>> |
void | SafeReleaseDeviceObject (T &&vkObject, VmaAllocation &&vmaAllocation=nullptr) |
|
template<typename T> |
void | ReclaimLater (T &&vkObject) |
|
void | ReclaimCommandBufferLater (xiiGALCommandBufferPoolVulkan *pCommandBufferPool, vk::CommandBuffer &&vkCommandBuffer) |
|
XII_ALWAYS_INLINE xiiAllocatorBase * | GetAllocator () const |
|
XII_ALWAYS_INLINE VmaAllocator | 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 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 const xiiGALQueueInformationVulkan & | GetGraphicsQueueInformation () const |
|
XII_ALWAYS_INLINE const xiiGALQueueInformationVulkan & | GetComputeQueueInformation () const |
|
XII_ALWAYS_INLINE const xiiGALQueueInformationVulkan & | GetTransferQueueInformation () const |
|
XII_ALWAYS_INLINE xiiGALDeviceVulkan::DebugMode | GetDebugMode () const |
|
XII_ALWAYS_INLINE xiiGALFencePoolVulkan * | GetVulkanFencePool () const |
|
XII_ALWAYS_INLINE xiiGALSemaphorePoolVulkan * | GetVulkanSemaphorePool () const |
|
XII_ALWAYS_INLINE xiiGALDescriptorSetPoolVulkan * | GetVulkanDescriptorSetPool () const |
|
XII_ALWAYS_INLINE xiiGALQueryPoolVulkan * | GetVulkanGraphicsCommandQueueQueryPool () const |
|
XII_ALWAYS_INLINE xiiGALQueryPoolVulkan * | GetVulkanComputeCommandQueueQueryPool () const |
|
XII_ALWAYS_INLINE xiiGALQueryPoolVulkan * | GetVulkanTransferCommandQueueQueryPool () const |
|
XII_ALWAYS_INLINE xiiGALQueryPoolVulkan * | GetQueryPoolForCommandQueue (xiiGALCommandQueueVulkan *pCommandQueueVulkan) const |
|
XII_ALWAYS_INLINE xiiUInt64 | GetFrameNumber () const |
|
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.
|
|
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< 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) |
| This creates a new buffer object.
|
|
xiiSharedPtr< xiiGALTexture > | CreateTexture (const xiiGALTextureCreationDescription &description, const xiiGALTextureData *pInitialData=nullptr) |
| 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.
|
|