optimized image_count of Swapchain
This commit is contained in:
parent
63dac1ef74
commit
b47b096039
@ -1,7 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/platform/Window.h>
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/graph/VKCommandBuffer.h>
|
||||
#include<hgl/graph/module/GraphModuleManager.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
@ -16,12 +16,6 @@ VK_NAMESPACE_BEGIN
|
||||
*
|
||||
* 2.多帧渲染目标,即有多帧数据,每次渲染都是指定帧,典型的是Swapchain
|
||||
*
|
||||
* 但不管是单帧还是多帧,又有两种情况:
|
||||
*
|
||||
* 1.单个颜色缓冲区
|
||||
*
|
||||
* 2.多个颜色缓冲区,典型如PBR GBuffer
|
||||
*
|
||||
* 所以RenderTarget的其实是一个多态类,根据不同的情况,有不同的实现
|
||||
*/
|
||||
|
||||
|
@ -24,11 +24,21 @@ namespace
|
||||
{
|
||||
VkSwapchainCreateInfoKHR swapchain_ci;
|
||||
|
||||
uint32_t image_count;
|
||||
|
||||
if(dev_attr->surface_caps.maxImageCount<3)
|
||||
image_count=dev_attr->surface_caps.maxImageCount;
|
||||
else
|
||||
if(dev_attr->surface_caps.maxImageCount>3)
|
||||
image_count=3;
|
||||
else
|
||||
image_count=dev_attr->surface_caps.minImageCount;
|
||||
|
||||
swapchain_ci.sType =VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
||||
swapchain_ci.pNext =nullptr;
|
||||
swapchain_ci.flags =0;
|
||||
swapchain_ci.surface =dev_attr->surface;
|
||||
swapchain_ci.minImageCount =dev_attr->surface_caps.minImageCount;
|
||||
swapchain_ci.minImageCount =image_count;
|
||||
swapchain_ci.imageFormat =dev_attr->surface_format.format;
|
||||
swapchain_ci.imageColorSpace =dev_attr->surface_format.colorSpace;
|
||||
swapchain_ci.imageExtent =dev_attr->surface_caps.currentExtent;
|
||||
|
Loading…
x
Reference in New Issue
Block a user