diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 5b8945b5..6cdd8a3e 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -128,17 +128,14 @@ void VulkanExampleBase::createCommandBuffers() VK_COMMAND_BUFFER_LEVEL_PRIMARY, (uint32_t)drawCmdBuffers.size()); - VkResult vkRes = vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, drawCmdBuffers.data()); - assert(!vkRes); + VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, drawCmdBuffers.data())); // Command buffers for submitting present barriers cmdBufAllocateInfo.commandBufferCount = 1; // Pre present - vkRes = vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &prePresentCmdBuffer); - assert(!vkRes); + VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &prePresentCmdBuffer)); // Post present - vkRes = vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &postPresentCmdBuffer); - assert(!vkRes); + VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &postPresentCmdBuffer)); } void VulkanExampleBase::destroyCommandBuffers() @@ -162,36 +159,28 @@ void VulkanExampleBase::createSetupCommandBuffer() VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1); - VkResult vkRes = vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &setupCmdBuffer); - assert(!vkRes); + VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &setupCmdBuffer)); VkCommandBufferBeginInfo cmdBufInfo = {}; cmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - vkRes = vkBeginCommandBuffer(setupCmdBuffer, &cmdBufInfo); - assert(!vkRes); + VK_CHECK_RESULT(vkBeginCommandBuffer(setupCmdBuffer, &cmdBufInfo)); } void VulkanExampleBase::flushSetupCommandBuffer() { - VkResult err; - if (setupCmdBuffer == VK_NULL_HANDLE) return; - err = vkEndCommandBuffer(setupCmdBuffer); - assert(!err); + VK_CHECK_RESULT(vkEndCommandBuffer(setupCmdBuffer)); VkSubmitInfo submitInfo = {}; submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; submitInfo.commandBufferCount = 1; submitInfo.pCommandBuffers = &setupCmdBuffer; - err = vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE); - assert(!err); - - err = vkQueueWaitIdle(queue); - assert(!err); + VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE)); + VK_CHECK_RESULT(vkQueueWaitIdle(queue)); vkFreeCommandBuffers(device, cmdPool, 1, &setupCmdBuffer); setupCmdBuffer = VK_NULL_HANDLE; @@ -246,8 +235,7 @@ void VulkanExampleBase::createPipelineCache() { VkPipelineCacheCreateInfo pipelineCacheCreateInfo = {}; pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; - VkResult err = vkCreatePipelineCache(device, &pipelineCacheCreateInfo, nullptr, &pipelineCache); - assert(!err); + VK_CHECK_RESULT(vkCreatePipelineCache(device, &pipelineCacheCreateInfo, nullptr, &pipelineCache)); } void VulkanExampleBase::prepare() @@ -258,7 +246,7 @@ void VulkanExampleBase::prepare() } if (enableDebugMarkers) { - vkDebug::setupDebugMarkers(device); + vkDebug::debugReport::setupDebugMarkers(device); } createCommandPool(); createSetupCommandBuffer(); @@ -454,7 +442,7 @@ void VulkanExampleBase::renderLoop() lastFPS = frameCounter; updateTextOverlay(); fpsTimer = 0.0f; - frameCounter = 0.0f; + frameCounter = 0; } } #elif defined(__ANDROID__) @@ -512,7 +500,7 @@ void VulkanExampleBase::renderLoop() lastFPS = frameCounter; updateTextOverlay(); fpsTimer = 0.0f; - frameCounter = 0.0f; + frameCounter = 0; } // Check gamepad state const float deadZone = 0.0015f; @@ -583,7 +571,7 @@ void VulkanExampleBase::renderLoop() lastFPS = frameCounter; updateTextOverlay(); fpsTimer = 0.0f; - frameCounter = 0.0f; + frameCounter = 0; } } #endif @@ -593,8 +581,7 @@ void VulkanExampleBase::submitPrePresentBarrier(VkImage image) { VkCommandBufferBeginInfo cmdBufInfo = vkTools::initializers::commandBufferBeginInfo(); - VkResult vkRes = vkBeginCommandBuffer(prePresentCmdBuffer, &cmdBufInfo); - assert(!vkRes); + VK_CHECK_RESULT(vkBeginCommandBuffer(prePresentCmdBuffer, &cmdBufInfo)); VkImageMemoryBarrier prePresentBarrier = vkTools::initializers::imageMemoryBarrier(); prePresentBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; @@ -615,23 +602,20 @@ void VulkanExampleBase::submitPrePresentBarrier(VkImage image) 0, nullptr, // No buffer barriers, 1, &prePresentBarrier); - vkRes = vkEndCommandBuffer(prePresentCmdBuffer); - assert(!vkRes); + VK_CHECK_RESULT(vkEndCommandBuffer(prePresentCmdBuffer)); VkSubmitInfo submitInfo = vkTools::initializers::submitInfo(); submitInfo.commandBufferCount = 1; submitInfo.pCommandBuffers = &prePresentCmdBuffer; - vkRes = vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE); - assert(!vkRes); + VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE)); } void VulkanExampleBase::submitPostPresentBarrier(VkImage image) { VkCommandBufferBeginInfo cmdBufInfo = vkTools::initializers::commandBufferBeginInfo(); - VkResult vkRes = vkBeginCommandBuffer(postPresentCmdBuffer, &cmdBufInfo); - assert(!vkRes); + VK_CHECK_RESULT(vkBeginCommandBuffer(postPresentCmdBuffer, &cmdBufInfo)); VkImageMemoryBarrier postPresentBarrier = vkTools::initializers::imageMemoryBarrier(); postPresentBarrier.srcAccessMask = 0; @@ -652,15 +636,13 @@ void VulkanExampleBase::submitPostPresentBarrier(VkImage image) 0, nullptr, // No buffer barriers, 1, &postPresentBarrier); - vkRes = vkEndCommandBuffer(postPresentCmdBuffer); - assert(!vkRes); + VK_CHECK_RESULT(vkEndCommandBuffer(postPresentCmdBuffer)); VkSubmitInfo submitInfo = vkTools::initializers::submitInfo(); submitInfo.commandBufferCount = 1; submitInfo.pCommandBuffers = &postPresentCmdBuffer; - vkRes = vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE); - assert(!vkRes); + VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE)); } VkSubmitInfo VulkanExampleBase::prepareSubmitInfo( @@ -671,7 +653,7 @@ VkSubmitInfo VulkanExampleBase::prepareSubmitInfo( submitInfo.pWaitDstStageMask = pipelineStages; submitInfo.waitSemaphoreCount = 1; submitInfo.pWaitSemaphores = &semaphores.presentComplete; - submitInfo.commandBufferCount = commandBuffers.size(); + submitInfo.commandBufferCount = static_cast(commandBuffers.size()); submitInfo.pCommandBuffers = commandBuffers.data(); submitInfo.signalSemaphoreCount = 1; submitInfo.pSignalSemaphores = &semaphores.renderComplete; @@ -871,8 +853,7 @@ void VulkanExampleBase::initVulkan(bool enableValidation) // Physical device uint32_t gpuCount = 0; // Get number of available physical devices - err = vkEnumeratePhysicalDevices(instance, &gpuCount, nullptr); - assert(!err); + VK_CHECK_RESULT(vkEnumeratePhysicalDevices(instance, &gpuCount, nullptr)); assert(gpuCount > 0); // Enumerate devices std::vector physicalDevices(gpuCount); @@ -913,8 +894,7 @@ void VulkanExampleBase::initVulkan(bool enableValidation) queueCreateInfo.queueCount = 1; queueCreateInfo.pQueuePriorities = queuePriorities.data(); - err = createDevice(queueCreateInfo, enableValidation); - assert(!err); + VK_CHECK_RESULT(createDevice(queueCreateInfo, enableValidation)); // Store properties (including limits) and features of the phyiscal device // So examples can check against them and see if a feature is actually supported @@ -963,7 +943,8 @@ void VulkanExampleBase::setupConsole(std::string title) { AllocConsole(); AttachConsole(GetCurrentProcessId()); - freopen("CON", "w", stdout); + FILE *stream; + freopen_s(&stream, "CONOUT$", "w+", stdout); SetConsoleTitle(TEXT(title.c_str())); if (enableValidation) { @@ -1502,8 +1483,7 @@ void VulkanExampleBase::createCommandPool() cmdPoolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; cmdPoolInfo.queueFamilyIndex = swapChain.queueNodeIndex; cmdPoolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - VkResult vkRes = vkCreateCommandPool(device, &cmdPoolInfo, nullptr, &cmdPool); - assert(!vkRes); + VK_CHECK_RESULT(vkCreateCommandPool(device, &cmdPoolInfo, nullptr, &cmdPool)); } void VulkanExampleBase::setupDepthStencil() @@ -1541,20 +1521,14 @@ void VulkanExampleBase::setupDepthStencil() depthStencilView.subresourceRange.layerCount = 1; VkMemoryRequirements memReqs; - VkResult err; - err = vkCreateImage(device, &image, nullptr, &depthStencil.image); - assert(!err); + VK_CHECK_RESULT(vkCreateImage(device, &image, nullptr, &depthStencil.image)); vkGetImageMemoryRequirements(device, depthStencil.image, &memReqs); mem_alloc.allocationSize = memReqs.size; - getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, &mem_alloc.memoryTypeIndex); - err = vkAllocateMemory(device, &mem_alloc, nullptr, &depthStencil.mem); - assert(!err); + mem_alloc.memoryTypeIndex = getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK_RESULT(vkAllocateMemory(device, &mem_alloc, nullptr, &depthStencil.mem)); - vkDebug::SetObjectName(device, depthStencil.image, "Backbuffer depth-stencil"); - - err = vkBindImageMemory(device, depthStencil.image, depthStencil.mem, 0); - assert(!err); + VK_CHECK_RESULT(vkBindImageMemory(device, depthStencil.image, depthStencil.mem, 0)); vkTools::setImageLayout( setupCmdBuffer, depthStencil.image, @@ -1563,8 +1537,7 @@ void VulkanExampleBase::setupDepthStencil() VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); depthStencilView.image = depthStencil.image; - err = vkCreateImageView(device, &depthStencilView, nullptr, &depthStencil.view); - assert(!err); + VK_CHECK_RESULT(vkCreateImageView(device, &depthStencilView, nullptr, &depthStencil.view)); } void VulkanExampleBase::setupFrameBuffer() @@ -1589,8 +1562,7 @@ void VulkanExampleBase::setupFrameBuffer() for (uint32_t i = 0; i < frameBuffers.size(); i++) { attachments[0] = swapChain.buffers[i].view; - VkResult err = vkCreateFramebuffer(device, &frameBufferCreateInfo, nullptr, &frameBuffers[i]); - assert(!err); + VK_CHECK_RESULT(vkCreateFramebuffer(device, &frameBufferCreateInfo, nullptr, &frameBuffers[i])); } } @@ -1648,10 +1620,7 @@ void VulkanExampleBase::setupRenderPass() renderPassInfo.dependencyCount = 0; renderPassInfo.pDependencies = NULL; - VkResult err; - - err = vkCreateRenderPass(device, &renderPassInfo, nullptr, &renderPass); - assert(!err); + VK_CHECK_RESULT(vkCreateRenderPass(device, &renderPassInfo, nullptr, &renderPass)); } void VulkanExampleBase::windowResize()