Click or drag to resize
Ab4d.SharpEngine logo

VulkanDevice Methods

The VulkanDevice type exposes the following members.

Methods
 NameDescription
Public methodAllocateMemory(Buffer, MemoryPropertyFlags, Boolean, String) 
Public methodAllocateMemory(Image, MemoryPropertyFlags, Boolean, String) 
Public methodAllocateMemory(MemoryRequirements, MemoryPropertyFlags, Boolean, Boolean, String) 
Public methodAllocateMemory(UInt32, UInt32, Int32, Boolean, Boolean, String) 
Public methodAllocateShaderSpecializationInfoT(T, Int32, String) 
Public methodAllocateShaderSpecializationInfoT(T, Int32, String) 
Public methodBeginGraphicsCommands 
Public methodBeginStagingCommands 
Public methodCacheObject CacheObject sets the specified objectToCache to the specified key in the dictionary used by this VulkanDevice. The cached object can be retrieved by GetCachedObjectT(String) or removed by RemoveCachedObject(String) method. This method is thread safe and can be called from any thread.
Public methodCalculateMipLevelsCount 
Public methodStatic memberCheckDeviceMinimumRequirements(VulkanInstance, PhysicalDevice, Boolean) Returns true if the specified physicalDevice is supported to run Ab4d.SharpEngine.
Public methodStatic memberCheckDeviceMinimumRequirements(PhysicalDeviceDetails, SurfaceDetails, Boolean, Boolean) Returns true if the physicalDevice (specified in physicalDeviceDetails) is supported to run SharpEngine. When isSurfaceSupportRequired is true, then also the vulkanSurface is checked.
Public methodStatic memberCheckDeviceMinimumRequirements(VulkanInstance, PhysicalDevice, SurfaceKHR, Boolean, Boolean) Returns true if the specified physicalDevice is supported to run Ab4d.SharpEngine. When isSurfaceSupportRequired is true, then also the vulkanSurface is checked.
Public methodCheckIsOnMainThread CheckIsOnMainThread method thrown an exception when the current thread is not main thread.
Public methodCopyBuffer 
Public methodCopyDataToGpuImage(GpuImage, GpuBuffer, Boolean, ImageLayout, AccessFlags, PipelineStageFlags) 
Public methodCopyDataToGpuImage(GpuImage, Int32, Int32, Int32, DeviceMemory, Int32, Byte, ImageLayout, AccessFlags, PipelineStageFlags) 
Public methodCopyDataToGpuImage(Image, Int32, Int32, Int32, AccessFlags, ImageLayout, PipelineStageFlags, DeviceMemory, Int32, Byte, ImageLayout, AccessFlags, PipelineStageFlags) 
Public methodCopyDataToImage 
Public methodCopyGpuImage 
Public methodCopyImage(Image, ImageLayout, AccessFlags, PipelineStageFlags, Image, Int32, Int32, AccessFlags, ImageLayout, PipelineStageFlags, Boolean, ImageLayout, NullableSemaphore, NullableSemaphore) 
Public methodCopyImage(Image, ImageLayout, AccessFlags, PipelineStageFlags, Image, ImageCopy, ImageLayout, AccessFlags, PipelineStageFlags, Boolean, ImageLayout, AccessFlags, PipelineStageFlags, NullableSemaphore, NullableSemaphore) 
Public methodCopyToGpuImage 
Public methodStatic memberCreate(ActionEngineCreateOptions, String) Creates an instance of VulkanDevice by using an action that defines the EngineCreateOptions. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(EngineCreateOptions, String) Creates an instance of VulkanDevice. Optionally the EngineCreateOptions can be used to specify the creation options. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(SurfaceKHR, EngineCreateOptions, String) Creates an instance of VulkanDevice that will use the Vulkan surface that is defined by the SurfaceKHR. Optionally the EngineCreateOptions can be used to specify the creation options. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(SurfaceKHR, ActionEngineCreateOptions, String) Creates an instance of VulkanDevice that will use the Vulkan surface that is defined by the SurfaceKHR and will configure the EngineCreateOptions by using the specified configure action. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(VulkanSurfaceProvider, EngineCreateOptions, String) Creates an instance of VulkanDevice that will use the Vulkan surface that is defined by the VulkanSurfaceProvider. Optionally the EngineCreateOptions can be used to specify the creation options. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(VulkanSurfaceProvider, ActionEngineCreateOptions, String) Creates an instance of VulkanDevice that will use the Vulkan surface that is defined by the VulkanSurfaceProvider and will configure the EngineCreateOptions by using the specified configure action. This method will also create a VulkanInstance if it was not created before.
Public methodStatic memberCreate(VulkanInstance, PhysicalDeviceDetails, EngineCreateOptions, SurfaceKHR, String) Creates a new VulkanDevice with specified VulkanInstance, PhysicalDeviceDetails, EngineCreateOptions and optional surface and name.
Public methodStatic memberCreate(VulkanInstance, PhysicalDevice, EngineCreateOptions, SurfaceKHR, String) Creates a new VulkanDevice with specified VulkanInstance, PhysicalDevice, EngineCreateOptions and optional surface and name.
Public methodCreateBufferT(Span, Void, T, BufferCreateInfo) 
Public methodCreateBufferT(T, BufferUsageFlags, Boolean, String) 
Public methodCreateBufferT(T, BufferUsageFlags, QueueFlags, MemoryPropertyFlags, String) 
Public methodCreateBufferT(T, BufferUsageFlags, Boolean, Boolean, String) 
Public methodCreateBuffers(Int32, Int32, BufferUsageFlags, Type, Int32, String) 
Public methodCreateBuffers(Int32, Int32, BufferUsageFlags, Type, Int32, Boolean, String) 
Public methodCreateCommandBuffers 
Public methodCreateCommandPool 
Public methodCreateDescriptorPool(DescriptorType, Int32, Boolean, String) 
Public methodCreateDescriptorPool(DescriptorType, Int32, Boolean, String) 
Public methodCreateDescriptorPool(DescriptorType, Int32, Boolean, String) 
Public methodCreateDescriptorSetLayout(DescriptorType, ShaderStageFlags, String) 
Public methodCreateDescriptorSetLayout(DescriptorType, ShaderStageFlags, Int32, String) 
Public methodCreateDescriptorSetLayout(DescriptorType, ShaderStageFlags, Int32, String) 
Public methodCreateDescriptorSets 
Public methodCreateDynamicUniformBuffers 
Public methodCreateFence 
Public methodCreateFrameBuffers(ImageView, ImageView, Int32, Int32, RenderPass, String) 
Public methodCreateFrameBuffers(ImageView, ImageView, Int32, Int32, RenderPass, Framebuffer, String) 
Public methodCreateGraphicsCommandPool 
Public methodCreateImageViews(Image, Format, ImageAspectFlags, String) 
Public methodCreateImageViews(Image, Format, ImageView, ImageAspectFlags, String) 
Public methodCreateMultiSampledFrameBuffers 
Public methodCreateMultiSampledRenderPass 
Public methodCreatePipelineLayout(DescriptorSetLayout, PushConstantRange, String) 
Public methodCreatePipelineLayout(DescriptorSetLayout, Int32, Int32, String) 
Public methodCreateSampler 
Public methodCreateSemaphore 
Public methodCreateStandardRenderPass 
Public methodCreateSwapChain 
Public methodCreateSwapChainImages(SwapchainKHR, String) 
Public methodCreateSwapChainImages(SwapchainKHR, Image, String) 
Public methodCreateUniformBuffers 
Public methodDispose Dispose
Protected methodDispose(Boolean) Dispose
(Overrides ComponentBaseDispose(Boolean))
Public methodDisposeVulkanResourceOnMainThreadAfterFrameRendered DisposeVulkanResourceOnMainThreadAfterFrameRendered method disposes the Vulkan resources with the specified type and handle on the main thread and after the rendering of the current frame is complete and the GPU resources for that frame are no longer used. If this is called on the main thread and if the current frame is already fully rendered (for example after calling WaitUntilIdle, then the specified Vulkan resource is immediately disposed. This method can be called from any thread.
Public methodDumpMemoryReport Writes string that contains details memory usage of this device.
Public methodDumpResources Writes string that contains details tracked resources (objected derived from ComponentBase) to the console (when the application is debugged in Visual Studio the result is written to Output window or Immediate Window if started from there; in Rider the result is written to Debug Output window). To get a meaningful result, enable tracking resource on application startup. This can be done by setting static ComponentBase.ResourcesTracker.IsTrackingResources to true.
Public methodDumpResourcesForDelayedDisposal Writes string that contains details about resources that are scheduled to be disposed when the background rendering of frames is completed.
Public methodEndGraphicsCommands(Boolean, Boolean) 
Public methodEndGraphicsCommands(Semaphore, Semaphore) 
Public methodEndStagingCommands 
Public methodExecuteOnMainThread ExecuteOnMainThread executes the specified action on the main thread (the same thread the VulkanDevice was created on). If this is called on the main thread, then the action is immediately executed, otherwise the action is saved and it will be executed when the RunAllUpdateActions method will be called (usually at the beginning of the update render phase). This method can be called from any thread.
Public methodExecuteOnMainThreadAfterFrameRendered ExecuteOnMainThreadAfterFrameRendered executes the specified action on the main thread (the same thread the VulkanDevice was created on) and after the rendering of the current frame is complete and the GPU resources for that frame are no longer used. If this is called on the main thread and if the current frame is already fully rendered (for example after calling WaitUntilIdle, then the action is immediately executed, otherwise the action is saved and it will be executed when on the main thread and after the frame is rendered. This method can be called from any thread.
Public methodFreeMemory 
Public methodGetCachedObjectT GetCachedObject gets the object that was previously stored by the to CacheObject(String, Object) method. If the key is not found a default value of T (null for reference types) is returned. This method is thread safe and can be called from any thread.
Public methodGetCachedObjectsReportString Returns a string that shows which objects are cached by this VulkanDevice.
Public methodGetMemoryReportString Gets a string that contains details memory usage of this device.
Public methodGetPipelineCache 
Public methodStatic memberGetPreTransform 
Public methodGetResourcesForDelayedDisposalString 
Public methodGetResourcesReportString Gets a string with report of tracked resources (objected derived from ComponentBase). To get a meaningful result, enable tracking resource on application startup. This can be done by setting static ComponentBase.ResourcesTracker.IsTrackingResources to true.
Public methodGetSupportedDepthStencilFormat 
Public methodStatic memberGetVulkanFormat 
Public methodInsertImageMemoryBarrier(CommandBuffer, GpuImage, AccessFlags, ImageLayout, PipelineStageFlags, Int32, Int32) 
Public methodInsertImageMemoryBarrier(CommandBuffer, Image, AccessFlags, AccessFlags, ImageLayout, ImageLayout, PipelineStageFlags, PipelineStageFlags) 
Public methodInsertImageMemoryBarrier(CommandBuffer, Image, AccessFlags, AccessFlags, ImageLayout, ImageLayout, PipelineStageFlags, PipelineStageFlags, ImageSubresourceRange) 
Public methodInsertImageMemoryBarrier(CommandBuffer, Image, AccessFlags, AccessFlags, ImageLayout, ImageLayout, PipelineStageFlags, PipelineStageFlags, Int32, Int32) 
Public methodIsOnMainThread Returns true if the current thread is the same as the thread that was used to create this VulkanDevice.
Public methodMapMemoryT 
Public methodMultiPassDataCopyWithStagingT 
Public methodReadDataWithStagingT 
Public methodReleaseShaderSpecializationInfo 
Public methodRemoveCachedObject RemoveCachedObject removes the specified key from the dictionary used by this VulkanDevice. This method is thread safe and can be called from any thread.
Public methodRunAllUpdateActions RunAllUpdateActions executes all the actions that were added by the ExecuteOnMainThread(Action) method.
Protected methodSetupRequestedDeviceFeatures 
Public methodTransitionImageToShaderReadOnlyOptimalLayout 
Public methodUnmapMemory 
Public methodUpdateDescriptorSets 
Public methodWaitUntilIdle 
Public methodWriteDataWithStagingT WriteDataWithStaging writes the specified data to the destination buffer with using staging buffer (when staging buffer is not specified, then the standard staging buffer for this device is used). When the staging buffer is smaller then the data size, then a new ad-hoc staging buffer is created and disposed after being used.
Top
See Also