2#include <UnCompute/Acceleration/AdapterInfo.h>
3#include <UnCompute/Acceleration/IDeviceFactory.h>
4#include <UnCompute/Backend/IDeviceObject.h>
5#include <UnCompute/Containers/ArraySlice.h>
6#include <UnCompute/Containers/HeapArray.h>
7#include <UnCompute/VulkanBackend/VulkanInclude.h>
14 VkInstance m_Instance;
15 VkDebugReportCallbackEXT m_Debug;
26 void Reset()
override;
32 return m_PhysicalDevices;
37 return m_PhysicalDeviceProperties;
This class represents a non-owning slice of contiguously stored elements.
Definition: ArraySlice.h:12
Fixed-size heap-allocated array.
Definition: HeapArray.h:14
Interface for all backend-specific compute devices.
Definition: IComputeDevice.h:38
An interface for kernel compiler that is used for compiling compute shader source into backend's nati...
Definition: IKernelCompiler.h:74
Base class for dynamic reference counted objects.
Definition: Object.h:51
This class holds a Vulkan API instance.
Definition: VulkanDeviceFactory.h:13
void Reset() override
Reset the compute device factory.
Definition: VulkanDeviceFactory.cpp:175
ArraySlice< const AdapterInfo > EnumerateAdapters() override
Get all adapters supported by the specified backend.
Definition: VulkanDeviceFactory.cpp:196
ResultCode Init(const DeviceFactoryDesc &desc) override
Create a VkInstance, VkDebugReportCallbackEXT (if needed) and get physical device properties.
Definition: VulkanDeviceFactory.cpp:55
BackendKind GetBackendKind() const override
Get kind of backend for the compute devices created by this factory.
Definition: VulkanDeviceFactory.cpp:201
ResultCode CreateDevice(IComputeDevice **ppDevice) override
Create a compute device.
Definition: VulkanDeviceFactory.cpp:206
ResultCode CreateKernelCompiler(IKernelCompiler **ppCompiler) override
Create a kernel compiler.
Definition: VulkanDeviceFactory.cpp:221
IDeviceFactory descriptor.
Definition: IDeviceFactory.h:19