Search Results for

    Show / Hide Table of Contents

    Class GPUDeviceVulkan

    Implementation of Graphics Device for Vulkan backend.

    Inheritance
    Object
    ScriptingObject
    GPUDevice
    GPUDeviceVulkan
    Inherited Members
    GPUDevice::_drawGpuEventIndex
    GPUDevice::_featureLevel
    ScriptingObject::_gcHandle
    ScriptingObject::_id
    GPUDevice::_isRendering
    GPUDevice::_rendererType
    GPUDevice::_res
    GPUDevice::_resources
    GPUDevice::_resourcesLock
    GPUDevice::_shaderProfile
    GPUDevice::_state
    ScriptingObject::_type
    GPUDevice::_wasVSyncUsed
    GPUDevice::AddResource(GPUResource* resource)
    ScriptingObject::CanCast(const ScriptingTypeHandle& from, const ScriptingTypeHandle& to)
    ScriptingObject::CanCast(const MClass* from, const MClass* to)
    GPUDevice::CanDraw()
    ScriptingObject::Cast(ScriptingObject* obj)
    ScriptingObject::ChangeID(const Guid& newId)
    ScriptingObject::CreateManaged()
    ScriptingObject::CreateManagedInternal()
    GPUDevice::CreateTasksContext()
    GPUDevice::CreateTasksExecutor()
    GPUDevice::CreateVertexLayout(const Array<struct VertexElement, FixedAllocation<GPU_MAX_VS_ELEMENTS>>& elements, bool explicitOffsets=false)
    GPUDevice::CurrentTask
    ScriptingObject::Deleted
    Object::DeleteObject(float timeToLive = 0.0f, bool useGameTime=false)
    Object::DeleteObjectNow()
    ScriptingObject::DestroyManaged()
    GPUDeviceVulkan
    GPUDevice::Draw()
    GPUDevice::DrawEnd()
    GPUDevice::DumpResourcesToLog()
    GPUDevice::FeaturesPerFormat[static_cast<int32>(PixelFormat::MAX)
    Object::Flags
    ScriptingObject::FromInterface(void* interfaceObj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::FromInterface(T* interfaceObj)
    ScriptingObject::GetClass()
    GPUDevice::GetClearPS()
    GPUDevice::GetCopyLinearPS()
    GPUDevice::GetDecodeNV12PS()
    GPUDevice::GetDecodeYUY2PS()
    GPUDevice::GetDefaultBlackTexture()
    GPUDevice::GetDefaultDeformableMaterial()
    GPUDevice::GetDefaultMaterial()
    GPUDevice::GetDefaultNormalMap()
    GPUDevice::GetDefaultWhiteTexture()
    GPUDevice::GetFeatureLevel()
    GPUDevice::GetFormatFeatures(const PixelFormat format)
    GPUDevice::GetFullscreenTriangleVB()
    ScriptingObject::GetID()
    ScriptingObject::GetManagedInstance()
    GPUDevice::GetMemoryUsage()
    ScriptingObject::GetOrCreateManagedInstance()
    GPUDevice::GetRendererType()
    GPUDevice::GetResources()
    GPUDevice::GetShaderProfile()
    GPUDevice::GetState()
    GPUDevice::GetTasksManager()
    ScriptingObject::GetType()
    ScriptingObject::GetTypeHandle()
    GPUDevice::GPUDevice(RendererType type, ShaderProfile profile)
    ScriptingObject::HasManagedInstance()
    ScriptingObject::Is(const ScriptingTypeHandle& type)
    ScriptingObject::Is(const MClass* type)
    ScriptingObject::Is()
    GPUDevice::IsDebugToolAttached
    ScriptingObject::IsRegistered()
    GPUDevice::IsRendering()
    GPUDevice::Limits
    GPUDevice::LoadContent()
    GPUDevice::Locker
    ScriptingObject::NewObject(const ScriptingTypeHandle& typeHandle)
    ScriptingObject::NewObject()
    ScriptingObject::OnDeleteObject()
    ScriptingObject::OnManagedInstanceDeleted()
    GPUDevice::OnRequestingExit()
    ScriptingObject::OnScriptingDispose()
    GPUDevice::preDispose()
    GPUDevice::QuadShader
    ScriptingObject::RegisterObject()
    GPUDevice::RemoveResource(GPUResource* resource)
    GPUDevice::RenderBegin()
    GPUDevice::RenderEnd()
    ScriptingObject::ScriptingObject(const SpawnParams& params)
    ScriptingObject::SetManagedInstance(MObject* instance)
    GPUDeviceVulkan
    ScriptingObject::ToInterface(ScriptingObject* obj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::ToInterface(ScriptingObject* obj)
    ScriptingObject::ToManaged(const ScriptingObject* obj)
    ScriptingObject::ToNative(MObject* obj)
    ScriptingObject::ToString()
    GPUDevice::TotalGraphicsMemory
    ScriptingObject::UnregisterObject()
    GPUDeviceVulkan
    GPUDevice::VideoOutputModes
    GPUDevice::WasVSyncUsed()
    GPUDevice::~GPUDevice()
    Object::~Object()
    ScriptingObject::~ScriptingObject()
    Assembly: FlaxEngine.dll
    File: Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h
    Syntax
    public class GPUDeviceVulkan : public GPUDevice

    Constructors

    ~GPUDeviceVulkan()

    Finalizes an instance of the GPUDeviceVulkan class.

    Declaration
    public ~GPUDeviceVulkan()

    GPUDeviceVulkan(ShaderProfile shaderProfile, GPUAdapterVulkan* adapter)

    Initializes a new instance of the GPUDeviceVulkan class.

    Declaration
    public GPUDeviceVulkan(ShaderProfile shaderProfile, GPUAdapterVulkan* adapter)
    Parameters
    ShaderProfile shaderProfile

    The shader profile.

    GPUAdapterVulkan adapter

    The GPU device adapter.

    Fields

    Adapter

    The Vulkan adapter.

    Declaration
    public GPUAdapterVulkan* Adapter = nullptr
    Field Value
    GPUAdapterVulkan

    Allocator

    The Vulkan memory allocator.

    Declaration
    public VmaAllocator Allocator = VK_NULL_HANDLE
    Field Value
    VmaAllocator

    ComputeQueue

    The compute queue.

    Declaration
    public QueueVulkan* ComputeQueue = nullptr
    Field Value
    QueueVulkan

    DeferredDeletionQueue

    The Vulkan resources deferred deletion queue.

    Declaration
    public DeferredDeletionQueueVulkan DeferredDeletionQueue
    Field Value
    DeferredDeletionQueueVulkan

    DescriptorPoolsManager

    The descriptor pools manager.

    Declaration
    public DescriptorPoolsManagerVulkan* DescriptorPoolsManager = nullptr
    Field Value
    DescriptorPoolsManagerVulkan

    Device

    The Vulkan device.

    Declaration
    public VkDevice Device = VK_NULL_HANDLE
    Field Value
    VkDevice

    FenceManager

    The Vulkan fence manager.

    Declaration
    public FenceManagerVulkan FenceManager
    Field Value
    FenceManagerVulkan

    GraphicsQueue

    The graphics queue.

    Declaration
    public QueueVulkan* GraphicsQueue = nullptr
    Field Value
    QueueVulkan

    HelperResources

    The helper device resources manager.

    Declaration
    public HelperResourcesVulkan HelperResources
    Field Value
    HelperResourcesVulkan

    Instance

    The Vulkan instance.

    Declaration
    public static VkInstance Instance
    Field Value
    VkInstance

    InstanceExtensions

    The Vulkan instance extensions.

    Declaration
    public static Array<char* > InstanceExtensions
    Field Value
    Array<char >

    InstanceLayers

    The Vulkan instance layers.

    Declaration
    public static Array<char* > InstanceLayers
    Field Value
    Array<char >

    MainContext

    The main Vulkan commands context.

    Declaration
    public GPUContextVulkan* MainContext = nullptr
    Field Value
    GPUContextVulkan

    OptionalDeviceExtensions

    Declaration
    public static OptionalVulkanDeviceExtensions OptionalDeviceExtensions
    Field Value
    OptionalVulkanDeviceExtensions

    PhysicalDeviceFeatures

    The physical device enabled features.

    Declaration
    public VkPhysicalDeviceFeatures PhysicalDeviceFeatures
    Field Value
    VkPhysicalDeviceFeatures

    PhysicalDeviceLimits

    The physical device limits.

    Declaration
    public VkPhysicalDeviceLimits PhysicalDeviceLimits
    Field Value
    VkPhysicalDeviceLimits

    PipelineCache

    The pipeline cache.

    Declaration
    public VkPipelineCache PipelineCache = VK_NULL_HANDLE
    Field Value
    VkPipelineCache

    PresentQueue

    The present queue.

    Declaration
    public QueueVulkan* PresentQueue = nullptr
    Field Value
    QueueVulkan

    QueriesToReset

    Declaration
    public Array<QueryPoolVulkan* > QueriesToReset
    Field Value
    Array<QueryPoolVulkan >

    QueueFamilyProps

    The Vulkan device queues family properties.

    Declaration
    public Array<VkQueueFamilyProperties> QueueFamilyProps
    Field Value
    Array<VkQueueFamilyProperties>

    StagingManager

    The staging buffers manager.

    Declaration
    public StagingManagerVulkan StagingManager
    Field Value
    StagingManagerVulkan

    TimestampQueryPools

    Declaration
    public Array<BufferedQueryPoolVulkan* > TimestampQueryPools
    Field Value
    Array<BufferedQueryPoolVulkan >

    TransferQueue

    The transfer queue.

    Declaration
    public QueueVulkan* TransferQueue = nullptr
    Field Value
    QueueVulkan

    UniformBufferUploader

    The uniform buffers uploader.

    Declaration
    public UniformBufferUploaderVulkan* UniformBufferUploader = nullptr
    Field Value
    UniformBufferUploaderVulkan

    Methods

    Create()

    Declaration
    public static GPUDevice* Create()
    Returns
    GPUDevice

    CreateBuffer(const StringView& name)

    Creates the buffer.

    Declaration
    public virtual GPUBuffer* CreateBuffer(const StringView& name) override
    Parameters
    StringView name

    The resource name.

    Returns
    GPUBuffer

    The buffer.

    Overrides
    GPUDevice::CreateBuffer(const StringView& name=StringView::Empty)

    CreateConstantBuffer(uint32 size, const StringView& name)

    Creates the constant buffer.

    Declaration
    public virtual GPUConstantBuffer* CreateConstantBuffer(uint32 size, const StringView& name) override
    Parameters
    uint32 size

    The buffer size (in bytes).

    StringView name

    The resource name.

    Returns
    GPUConstantBuffer

    The constant buffer.

    Overrides
    GPUDevice::CreateConstantBuffer(uint32 size, const StringView& name=StringView::Empty)

    CreatePipelineState()

    Creates the GPU pipeline state object.

    Declaration
    public virtual GPUPipelineState* CreatePipelineState() override
    Returns
    GPUPipelineState

    The pipeline state.

    Overrides
    GPUDevice::CreatePipelineState()

    CreateSampler()

    Creates the texture sampler.

    Declaration
    public virtual GPUSampler* CreateSampler() override
    Returns
    GPUSampler

    The sampler.

    Overrides
    GPUDevice::CreateSampler()

    CreateShader(const StringView& name)

    Creates the shader.

    Declaration
    public virtual GPUShader* CreateShader(const StringView& name) override
    Parameters
    StringView name

    The resource name.

    Returns
    GPUShader

    The shader.

    Overrides
    GPUDevice::CreateShader(const StringView& name=StringView::Empty)

    CreateSwapChain(Window* window)

    Creates the native window swap chain.

    Declaration
    public virtual GPUSwapChain* CreateSwapChain(Window* window) override
    Parameters
    Window window

    The output window.

    Returns
    GPUSwapChain

    The native window swap chain.

    Overrides
    GPUDevice::CreateSwapChain(Window* window)

    CreateTexture(const StringView& name)

    Creates the texture.

    Declaration
    public virtual GPUTexture* CreateTexture(const StringView& name) override
    Parameters
    StringView name

    The resource name.

    Returns
    GPUTexture

    The texture.

    Overrides
    GPUDevice::CreateTexture(const StringView& name=StringView::Empty)

    CreateTimerQuery()

    Creates the timer query object.

    Declaration
    public virtual GPUTimerQuery* CreateTimerQuery() override
    Returns
    GPUTimerQuery

    The timer query.

    Overrides
    GPUDevice::CreateTimerQuery()

    CreateVertexLayout(const VertexElements& elements, bool explicitOffsets)

    Declaration
    public GPUVertexLayout* CreateVertexLayout(const VertexElements& elements, bool explicitOffsets) override
    Parameters
    VertexElements elements

    bool explicitOffsets

    Returns
    GPUVertexLayout

    Dispose()

    Clean all allocated data by device

    Declaration
    public virtual void Dispose() override
    Overrides
    GPUDevice::Dispose()

    DrawBegin()

    Called during Draw method before any frame rendering initialization. Cannot be used to submit commands to GPU.

    Declaration
    public virtual void DrawBegin() override
    Overrides
    GPUDevice::DrawBegin()

    FindAvailableQueryPool(Array<BufferedQueryPoolVulkan* >& pools, VkQueryType queryType)

    Declaration
    public BufferedQueryPoolVulkan* FindAvailableQueryPool(Array<BufferedQueryPoolVulkan* >& pools, VkQueryType queryType)
    Parameters
    Array<BufferedQueryPoolVulkan > pools

    VkQueryType queryType

    Returns
    BufferedQueryPoolVulkan

    FindAvailableTimestampQueryPool()

    Declaration
    public BufferedQueryPoolVulkan* FindAvailableTimestampQueryPool()
    Returns
    BufferedQueryPoolVulkan

    GetAdapter()

    Gets the adapter device.

    Declaration
    public virtual GPUAdapter* GetAdapter() const override
    Returns
    GPUAdapter

    Overrides
    GPUDevice::GetAdapter()

    GetClosestSupportedPixelFormat(PixelFormat format, GPUTextureFlags flags, bool optimalTiling)

    Finds the closest pixel format that a specific Vulkan device supports.

    Declaration
    public PixelFormat GetClosestSupportedPixelFormat(PixelFormat format, GPUTextureFlags flags, bool optimalTiling)
    Parameters
    PixelFormat format

    The input format.

    GPUTextureFlags flags

    The texture usage flags.

    bool optimalTiling

    If set to true the optimal tiling should be used, otherwise use linear tiling.

    Returns
    PixelFormat

    The output format.

    GetMainContext()

    Gets the main GPU context.

    Declaration
    public virtual GPUContext* GetMainContext() override
    Returns
    GPUContext

    Overrides
    GPUDevice::GetMainContext()

    GetNativePtr()

    Gets the native pointer to the underlying graphics device. It's a low-level platform-specific handle.

    Declaration
    public virtual void* GetNativePtr() const override
    Returns
    void

    Overrides
    GPUDevice::GetNativePtr()

    GetOrCreateFramebuffer(FramebufferVulkan::Key& key, VkExtent2D& extent, uint32 layers)

    Declaration
    public FramebufferVulkan* GetOrCreateFramebuffer(FramebufferVulkan::Key& key, VkExtent2D& extent, uint32 layers)
    Parameters
    FramebufferVulkan::Key key

    VkExtent2D extent

    uint32 layers

    Returns
    FramebufferVulkan

    GetOrCreateLayout(DescriptorSetLayoutInfoVulkan& key)

    Declaration
    public PipelineLayoutVulkan* GetOrCreateLayout(DescriptorSetLayoutInfoVulkan& key)
    Parameters
    DescriptorSetLayoutInfoVulkan key

    Returns
    PipelineLayoutVulkan

    GetOrCreateRenderPass(RenderTargetLayoutVulkan& layout)

    Declaration
    public RenderPassVulkan* GetOrCreateRenderPass(RenderTargetLayoutVulkan& layout)
    Parameters
    RenderTargetLayoutVulkan layout

    Returns
    RenderPassVulkan

    Init()

    Init device resources

    Declaration
    public virtual bool Init() override
    Returns
    bool

    True if cannot init, otherwise false.

    Overrides
    GPUDevice::Init()

    OnImageViewDestroy(VkImageView imageView)

    Declaration
    public void OnImageViewDestroy(VkImageView imageView)
    Parameters
    VkImageView imageView

    SavePipelineCache()

    Saves the pipeline cache.

    Declaration
    public bool SavePipelineCache()
    Returns
    bool

    SetupPresentQueue(VkSurfaceKHR surface)

    Setups the present queue to be ready for the given window surface.

    Declaration
    public void SetupPresentQueue(VkSurfaceKHR surface)
    Parameters
    VkSurfaceKHR surface

    The surface.

    WaitForGPU()

    Wait for GPU end doing submitted work

    Declaration
    public virtual void WaitForGPU() override
    Overrides
    GPUDevice::WaitForGPU()
    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat