8 #ifndef LLUVIA_CORE_VULKAN_DEVICE_H_
9 #define LLUVIA_CORE_VULKAN_DEVICE_H_
19 class ImageDescriptor;
29 class Device :
public std::enable_shared_from_this<ll::vulkan::Device> {
37 const vk::PhysicalDevice& physicalDevice,
38 const uint32_t computeQueueFamilyIndex,
39 const std::shared_ptr<ll::vulkan::Instance>& instance);
45 vk::Device&
get() noexcept;
61 vk::PhysicalDevice m_physicalDevice;
62 vk::PhysicalDeviceLimits m_physicalDeviceLimits;
63 vk::CommandPool m_commandPool;
66 uint32_t m_computeQueueFamilyIndex;
74 std::shared_ptr<
ll::vulkan::
Instance> m_instance;
Class for command buffer.
Definition: CommandBuffer.h:63
Stores all relevant information for creating ll::Image objects.
Definition: ImageDescriptor.h:189
vk::Device & get() noexcept
Device & operator=(const Device &device)=delete
Device(const Device &device)=delete
bool isImageDescriptorSupported(const ll::ImageDescriptor &descriptor) const noexcept
Device(const vk::Device &device, const vk::PhysicalDevice &physicalDevice, const uint32_t computeQueueFamilyIndex, const std::shared_ptr< ll::vulkan::Instance > &instance)
void run(const ll::CommandBuffer &cmdBuffer)
const vk::PhysicalDeviceLimits & getPhysicalDeviceLimits() noexcept
ll::vec3ui getComputeLocalShape(ll::ComputeDimension dimension) const noexcept
Device(Device &&device)=delete
std::unique_ptr< ll::CommandBuffer > createCommandBuffer()
uint32_t getComputeFamilyQueueIndex() const noexcept
vk::PhysicalDevice & getPhysicalDevice() noexcept
Device & operator=(Device &&device)=delete
vk::CommandPool & getCommandPool() noexcept
Definition: Instance.h:19
ll::vec3ui computeOptimalLocalShape(ll::ComputeDimension dimension, uint32_t maxInvocations, const ll::vec3ui &maxSize)
ComputeDimension
Supported compute dimensions.
Definition: ComputeDimension.h:21