Fix minor stuff

This commit is contained in:
Jérôme Leclercq 2020-09-04 16:14:11 +02:00
parent 33e60a97b6
commit 385927b05a
7 changed files with 46 additions and 54 deletions

View File

@ -8,8 +8,8 @@
namespace Nz
{
inline VulkanBuffer::VulkanBuffer(Vk::Device& device, BufferType type) :
m_device(device),
m_type(type)
m_type(type),
m_device(device)
{
}

View File

@ -120,14 +120,7 @@ namespace Nz
inline void CommandBuffer::BeginDebugRegion(const char* label)
{
Vk::Device* device = m_pool->GetDevice();
if (device->vkCmdBeginDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT debugLabel = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT };
debugLabel.pLabelName = label;
device->vkCmdBeginDebugUtilsLabelEXT(m_handle, &debugLabel);
}
return BeginDebugRegion(label, Nz::Color(0, 0, 0, 0));
}
inline void CommandBuffer::BeginDebugRegion(const char* label, Nz::Color color)
@ -135,12 +128,17 @@ namespace Nz
Vk::Device* device = m_pool->GetDevice();
if (device->vkCmdBeginDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT debugLabel = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT };
debugLabel.pLabelName = label;
debugLabel.color[0] = color.r / 255.f;
debugLabel.color[1] = color.g / 255.f;
debugLabel.color[2] = color.b / 255.f;
debugLabel.color[3] = color.a / 255.f;
VkDebugUtilsLabelEXT debugLabel = {
VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
nullptr,
label,
{
color.r / 255.f,
color.g / 255.f,
color.b / 255.f,
color.a / 255.f
}
};
device->vkCmdBeginDebugUtilsLabelEXT(m_handle, &debugLabel);
}
@ -299,14 +297,7 @@ namespace Nz
inline void CommandBuffer::InsertDebugLabel(const char* label)
{
Vk::Device* device = m_pool->GetDevice();
if (device->vkCmdInsertDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT debugLabel = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT };
debugLabel.pLabelName = label;
device->vkCmdInsertDebugUtilsLabelEXT(m_handle, &debugLabel);
}
return InsertDebugLabel(label, Nz::Color(0, 0, 0, 0));
}
inline void CommandBuffer::InsertDebugLabel(const char* label, Nz::Color color)
@ -314,12 +305,17 @@ namespace Nz
Vk::Device* device = m_pool->GetDevice();
if (device->vkCmdInsertDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT debugLabel = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT };
debugLabel.pLabelName = label;
debugLabel.color[0] = color.r / 255.f;
debugLabel.color[1] = color.g / 255.f;
debugLabel.color[2] = color.b / 255.f;
debugLabel.color[3] = color.a / 255.f;
VkDebugUtilsLabelEXT debugLabel = {
VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
nullptr,
label,
{
color.r / 255.f,
color.g / 255.f,
color.b / 255.f,
color.a / 255.f
}
};
device->vkCmdInsertDebugUtilsLabelEXT(m_handle, &debugLabel);
}

View File

@ -56,7 +56,7 @@ namespace Nz
~Instance();
bool Create(const VkInstanceCreateInfo& createInfo, const VkAllocationCallbacks* allocator = nullptr);
inline bool Create(const std::string& appName, UInt32 appVersion, const std::string& engineName, UInt32 engineVersion, const std::vector<const char*>& layers, const std::vector<const char*>& extensions, const VkAllocationCallbacks* allocator = nullptr);
inline bool Create(const std::string& appName, UInt32 appVersion, const std::string& engineName, UInt32 engineVersion, UInt32 apiVersion, const std::vector<const char*>& layers, const std::vector<const char*>& extensions, const VkAllocationCallbacks* allocator = nullptr);
inline void Destroy();
bool EnumeratePhysicalDevices(std::vector<VkPhysicalDevice>* physicalDevices);

View File

@ -12,7 +12,7 @@ namespace Nz
{
namespace Vk
{
inline bool Instance::Create(const std::string& appName, UInt32 appVersion, const std::string& engineName, UInt32 engineVersion, const std::vector<const char*>& layers, const std::vector<const char*>& extensions, const VkAllocationCallbacks* allocator)
inline bool Instance::Create(const std::string& appName, UInt32 appVersion, const std::string& engineName, UInt32 engineVersion, UInt32 apiVersion, const std::vector<const char*>& layers, const std::vector<const char*>& extensions, const VkAllocationCallbacks* allocator)
{
VkApplicationInfo appInfo =
{
@ -21,7 +21,8 @@ namespace Nz
appName.data(),
appVersion,
engineName.data(),
engineVersion
engineVersion,
apiVersion
};
VkInstanceCreateInfo instanceInfo =

View File

@ -21,8 +21,8 @@ namespace Nz
{
VkRenderWindow::VkRenderWindow(RenderWindow& owner) :
m_currentFrame(0),
m_depthStencilFormat(VK_FORMAT_MAX_ENUM),
m_owner(owner),
m_depthStencilFormat(VK_FORMAT_MAX_ENUM),
m_shouldRecreateSwapchain(false)
{
}
@ -221,22 +221,22 @@ namespace Nz
std::unique_ptr<CommandPool> VkRenderWindow::CreateCommandPool(QueueType queueType)
{
UInt32 queueFamilyIndex;
UInt32 queueFamilyIndex = [&] {
switch (queueType)
{
case QueueType::Compute:
queueFamilyIndex = m_device->GetDefaultFamilyIndex(QueueType::Compute);
break;
return m_device->GetDefaultFamilyIndex(QueueType::Compute);
case QueueType::Graphics:
queueFamilyIndex = m_graphicsQueue.GetQueueFamilyIndex();
break;
return m_graphicsQueue.GetQueueFamilyIndex();
case QueueType::Transfer:
queueFamilyIndex = m_transferQueue.GetQueueFamilyIndex();
break;
return m_transferQueue.GetQueueFamilyIndex();
}
throw std::runtime_error("invalid queue type " + std::to_string(UnderlyingCast(queueType)));
}();
return std::make_unique<VulkanCommandPool>(*m_device, queueFamilyIndex);
}
@ -509,7 +509,7 @@ namespace Nz
imageCount = surfaceCapabilities.maxImageCount;
VkExtent2D extent;
if (surfaceCapabilities.currentExtent.width == -1)
if (surfaceCapabilities.currentExtent.width == 0xFFFFFFFF)
{
extent.width = Nz::Clamp<Nz::UInt32>(size.x, surfaceCapabilities.minImageExtent.width, surfaceCapabilities.maxImageExtent.width);
extent.height = Nz::Clamp<Nz::UInt32>(size.y, surfaceCapabilities.minImageExtent.height, surfaceCapabilities.maxImageExtent.height);

View File

@ -49,12 +49,6 @@ namespace Nz
throw std::runtime_error("Unhandled framebuffer type " + std::to_string(UnderlyingCast(vkFramebuffer.GetType())));
}();
VkRect2D renderArea;
renderArea.offset.x = renderRect.x;
renderArea.offset.y = renderRect.y;
renderArea.extent.width = renderRect.width;
renderArea.extent.height = renderRect.height;
StackArray<VkClearValue> vkClearValues = NazaraStackArray(VkClearValue, clearValues.size());
std::size_t index = 0;

View File

@ -89,6 +89,7 @@ namespace Nz
default:
NazaraWarning("Device " + device.name + " has handled device type (0x" + String::Number(physDevice.properties.deviceType, 16) + ')');
// fallthrough
case VK_PHYSICAL_DEVICE_TYPE_OTHER:
device.type = RenderDeviceType::Unknown;
break;