added lot of debug output based VkDebugUtils
This commit is contained in:
@@ -23,7 +23,7 @@ GPUDevice::GPUDevice(GPUDeviceAttribute *da)
|
||||
sc_rt=nullptr;
|
||||
Resize(attr->surface_caps.currentExtent);
|
||||
|
||||
texture_cmd_buf=CreateTextureCommandBuffer();
|
||||
texture_cmd_buf=CreateTextureCommandBuffer(attr->physical_device->GetDeviceName()+AnsiString(":TexCmdBuffer"));
|
||||
texture_queue=CreateQueue();
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ bool GPUDevice::Resize(const VkExtent2D &extent)
|
||||
return(sc_rt);
|
||||
}
|
||||
|
||||
VkCommandBuffer GPUDevice::CreateCommandBuffer()
|
||||
VkCommandBuffer GPUDevice::CreateCommandBuffer(const AnsiString &name)
|
||||
{
|
||||
if(!attr->cmd_pool)
|
||||
return(VK_NULL_HANDLE);
|
||||
@@ -68,21 +68,31 @@ VkCommandBuffer GPUDevice::CreateCommandBuffer()
|
||||
if(res!=VK_SUCCESS)
|
||||
return(VK_NULL_HANDLE);
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(attr->debug_maker)
|
||||
attr->debug_maker->SetCommandBuffer(cmd_buf,"[debug maker] "+name);
|
||||
|
||||
if(attr->debug_utils)
|
||||
attr->debug_utils->SetCommandBuffer(cmd_buf,"[debug utils] "+name);
|
||||
|
||||
#endif//_DEBUG
|
||||
|
||||
return cmd_buf;
|
||||
}
|
||||
|
||||
RenderCmdBuffer *GPUDevice::CreateRenderCommandBuffer()
|
||||
RenderCmdBuffer *GPUDevice::CreateRenderCommandBuffer(const AnsiString &name)
|
||||
{
|
||||
VkCommandBuffer cb=CreateCommandBuffer();
|
||||
VkCommandBuffer cb=CreateCommandBuffer(name);
|
||||
|
||||
if(cb==VK_NULL_HANDLE)return(nullptr);
|
||||
|
||||
return(new RenderCmdBuffer(attr,cb));
|
||||
}
|
||||
|
||||
TextureCmdBuffer *GPUDevice::CreateTextureCommandBuffer()
|
||||
TextureCmdBuffer *GPUDevice::CreateTextureCommandBuffer(const AnsiString &name)
|
||||
{
|
||||
VkCommandBuffer cb=CreateCommandBuffer();
|
||||
VkCommandBuffer cb=CreateCommandBuffer(name);
|
||||
|
||||
if(cb==VK_NULL_HANDLE)return(nullptr);
|
||||
|
||||
|
@@ -321,6 +321,28 @@ GPUDevice *VulkanDeviceCreater::CreateRenderDevice()
|
||||
|
||||
auto_delete.Discard(); //discard autodelete
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(device_attr->debug_maker)
|
||||
{
|
||||
device_attr->debug_maker->SetPhysicalDevice(*physical_device,"[debug maker] Physical Device:"+AnsiString(physical_device->GetDeviceName()));
|
||||
device_attr->debug_maker->SetDevice(device_attr->device,"[debug maker] Device:"+AnsiString(physical_device->GetDeviceName()));
|
||||
device_attr->debug_maker->SetSurfaceKHR(surface,"[debug maker] Surface");
|
||||
device_attr->debug_maker->SetCommandPool(device_attr->cmd_pool,"[debug maker] Main Command Pool");
|
||||
device_attr->debug_maker->SetDescriptorPool(device_attr->desc_pool,"[debug maker] Main Descriptor Pool");
|
||||
device_attr->debug_maker->SetPipelineCache(device_attr->pipeline_cache,"[debug maker] Main Pipeline Cache");
|
||||
}
|
||||
|
||||
if(device_attr->debug_utils)
|
||||
{
|
||||
device_attr->debug_utils->SetPhysicalDevice(*physical_device,"[debug utils] Physical Device:"+AnsiString(physical_device->GetDeviceName()));
|
||||
device_attr->debug_utils->SetDevice(device_attr->device,"[debug utils] Device:"+AnsiString(physical_device->GetDeviceName()));
|
||||
device_attr->debug_utils->SetSurfaceKHR(surface,"[debug utils] Surface");
|
||||
device_attr->debug_utils->SetCommandPool(device_attr->cmd_pool,"[debug utils] Main Command Pool");
|
||||
device_attr->debug_utils->SetDescriptorPool(device_attr->desc_pool,"[debug utils] Main Descriptor Pool");
|
||||
device_attr->debug_utils->SetPipelineCache(device_attr->pipeline_cache,"[debug utils] Main Pipeline Cache");
|
||||
}
|
||||
#endif//_DEBUG
|
||||
|
||||
return(new GPUDevice(device_attr));
|
||||
}
|
||||
|
||||
|
@@ -11,6 +11,13 @@ void GPUDevice::InitRenderPassManage()
|
||||
SwapchainRenderbufferInfo rbi(attr->surface_format.format,attr->physical_device->GetDepthFormat());
|
||||
|
||||
device_render_pass=render_pass_manage->AcquireRenderPass(&rbi);
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(attr->debug_maker)
|
||||
attr->debug_maker->SetRenderPass(device_render_pass->GetVkRenderPass(),"[debug maker] MainDeviceRenderPass");
|
||||
if(attr->debug_utils)
|
||||
attr->debug_utils->SetRenderPass(device_render_pass->GetVkRenderPass(),"[debug utils] MainDeviceRenderPass");
|
||||
#endif//_DEBUG
|
||||
}
|
||||
|
||||
void GPUDevice::ClearRenderPassManage()
|
||||
|
@@ -65,13 +65,23 @@ namespace
|
||||
|
||||
result=vkCreateSwapchainKHR(dev_attr->device,&swapchain_ci,nullptr,&swap_chain);
|
||||
|
||||
if(result==VK_SUCCESS)
|
||||
return(swap_chain);
|
||||
if(result!=VK_SUCCESS)
|
||||
{
|
||||
//LOG_ERROR(OS_TEXT("vkCreateSwapchainKHR failed, result = ")+OSString(result));
|
||||
os_err<<"vkCreateSwapchainKHR failed, result="<<result<<std::endl;
|
||||
|
||||
//LOG_ERROR(OS_TEXT("vkCreateSwapchainKHR failed, result = ")+OSString(result));
|
||||
os_err<<"vkCreateSwapchainKHR failed, result="<<result<<std::endl;
|
||||
return(VK_NULL_HANDLE);
|
||||
}
|
||||
|
||||
return(VK_NULL_HANDLE);
|
||||
#ifdef _DEBUG
|
||||
if(dev_attr->debug_maker)
|
||||
dev_attr->debug_maker->SetSwapchainKHR(swap_chain,"[debug maker] SwapChain");
|
||||
|
||||
if(dev_attr->debug_utils)
|
||||
dev_attr->debug_utils->SetSwapchainKHR(swap_chain,"[debug utils] SwapChain");
|
||||
#endif//_DEBUG
|
||||
|
||||
return(swap_chain);
|
||||
}
|
||||
}//namespace
|
||||
|
||||
@@ -90,6 +100,21 @@ bool GPUDevice::CreateSwapchainFBO(Swapchain *swapchain)
|
||||
if(!swapchain->sc_depth)
|
||||
return(false);
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(attr->debug_maker)
|
||||
{
|
||||
attr->debug_maker->SetImage(swapchain->sc_depth->GetImage(),"[debug maker] SwapchainDepthImage");
|
||||
attr->debug_maker->SetDeviceMemory(swapchain->sc_depth->GetDeviceMemory(),"[debug maker] SwapchainDepthMemory");
|
||||
}
|
||||
|
||||
if(attr->debug_utils)
|
||||
{
|
||||
attr->debug_utils->SetImage(swapchain->sc_depth->GetImage(),"[debug utils] SwapchainDepthImage");
|
||||
attr->debug_utils->SetImageView(swapchain->sc_depth->GetVulkanImageView(),"[debug utils] SwapchainDepthImageView");
|
||||
attr->debug_utils->SetDeviceMemory(swapchain->sc_depth->GetDeviceMemory(),"[debug utils] SwapchainDepthMemory");
|
||||
}
|
||||
#endif//_DEBUG
|
||||
|
||||
swapchain->sc_color =hgl_zero_new<Texture2D *>(swapchain->color_count);
|
||||
swapchain->sc_fbo =hgl_zero_new<Framebuffer *>(swapchain->color_count);
|
||||
|
||||
@@ -103,6 +128,25 @@ bool GPUDevice::CreateSwapchainFBO(Swapchain *swapchain)
|
||||
swapchain->sc_fbo[i]=CreateFBO( device_render_pass,
|
||||
swapchain->sc_color[i]->GetImageView(),
|
||||
swapchain->sc_depth->GetImageView());
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(attr->debug_maker)
|
||||
{
|
||||
attr->debug_maker->SetImage(swapchain->sc_color[i]->GetImage(),"[debug maker] SwapchainColorImage_"+AnsiString::numberOf(i));
|
||||
attr->debug_maker->SetDeviceMemory(swapchain->sc_color[i]->GetDeviceMemory(),"[debug maker] SwapchainColorMemory_"+AnsiString::numberOf(i));
|
||||
|
||||
attr->debug_maker->SetFramebuffer(swapchain->sc_fbo[i]->GetFramebuffer(),"[debug maker] SwapchainFBO_"+AnsiString::numberOf(i));
|
||||
}
|
||||
|
||||
if(attr->debug_utils)
|
||||
{
|
||||
attr->debug_utils->SetImage(swapchain->sc_color[i]->GetImage(),"[debug utils] SwapchainColorImage_"+AnsiString::numberOf(i));
|
||||
attr->debug_utils->SetImageView(swapchain->sc_color[i]->GetVulkanImageView(),"[debug utils] SwapchainColorImageView_"+AnsiString::numberOf(i));
|
||||
attr->debug_utils->SetDeviceMemory(swapchain->sc_color[i]->GetDeviceMemory(),"[debug utils] SwapchainColorMemory_"+AnsiString::numberOf(i));
|
||||
|
||||
attr->debug_utils->SetFramebuffer(swapchain->sc_fbo[i]->GetFramebuffer(),"[debug utils] SwapchainFBO_"+AnsiString::numberOf(i));
|
||||
}
|
||||
#endif//_DEBUG
|
||||
}
|
||||
|
||||
return(true);
|
||||
|
@@ -43,9 +43,16 @@ bool Primitive::Set(const AnsiString &name,VBO *vbo,VkDeviceSize offset)
|
||||
auto *da=device->GetDeviceAttribute();
|
||||
|
||||
if(da->debug_maker)
|
||||
da->debug_maker->SetBuffer(vbo->GetBuffer(),"[debug maker] "+prim_name+":VBO:"+name);
|
||||
{
|
||||
da->debug_maker->SetBuffer(vbo->GetBuffer(),"[debug maker] "+prim_name+":VBO:Buffer:"+name);
|
||||
da->debug_maker->SetDeviceMemory(vbo->GetVkMemory(),"[debug maker] "+prim_name+":VBO:Memory:"+name);
|
||||
}
|
||||
|
||||
if(da->debug_utils)
|
||||
da->debug_utils->SetBuffer(vbo->GetBuffer(),"[debug utils] "+prim_name+":VBO:"+name);
|
||||
{
|
||||
da->debug_utils->SetBuffer(vbo->GetBuffer(),"[debug utils] "+prim_name+":VBO:Buffer:"+name);
|
||||
da->debug_utils->SetDeviceMemory(vbo->GetVkMemory(),"[debug utils] "+prim_name+":VBO:Memory:"+name);
|
||||
}
|
||||
#endif//_DEBUG
|
||||
|
||||
return(true);
|
||||
@@ -87,9 +94,16 @@ bool Primitive::Set(IndexBuffer *ib,VkDeviceSize offset)
|
||||
auto *da=device->GetDeviceAttribute();
|
||||
|
||||
if(da->debug_maker)
|
||||
da->debug_maker->SetBuffer(ib->GetBuffer(),"[debug maker] "+prim_name+":IBO");
|
||||
{
|
||||
da->debug_maker->SetBuffer(ib->GetBuffer(),"[debug maker] "+prim_name+":IBO:Buffer");
|
||||
da->debug_maker->SetDeviceMemory(ib->GetVkMemory(),"[debug maker] "+prim_name+":IBO:Memory");
|
||||
}
|
||||
|
||||
if(da->debug_utils)
|
||||
da->debug_utils->SetBuffer(ib->GetBuffer(),"[debug utils] "+prim_name+":IBO");
|
||||
{
|
||||
da->debug_utils->SetBuffer(ib->GetBuffer(),"[debug utils] "+prim_name+":IBO:Buffer");
|
||||
da->debug_utils->SetDeviceMemory(ib->GetVkMemory(),"[debug utils] "+prim_name+":IBO:Memory");
|
||||
}
|
||||
#endif//_DEBUG
|
||||
return(true);
|
||||
}
|
||||
|
@@ -174,9 +174,17 @@ Texture2DArray *RenderResource::CreateTexture2DArray(const AnsiString &name,cons
|
||||
GPUDeviceAttribute *da=device->GetDeviceAttribute();
|
||||
|
||||
if(da->debug_maker)
|
||||
da->debug_maker->SetImage(ta->GetImage(),"[debug maker] Tex2DArray:"+name);
|
||||
{
|
||||
da->debug_maker->SetImage(ta->GetImage(),"[debug maker] Tex2DArrayImage:"+name);
|
||||
da->debug_maker->SetDeviceMemory(ta->GetDeviceMemory(),"[debug maker] Tex2DArrayMemory:"+name);
|
||||
}
|
||||
|
||||
if(da->debug_utils)
|
||||
da->debug_utils->SetImage(ta->GetImage(),"[debug utils] Tex2DArray:"+name);
|
||||
{
|
||||
da->debug_utils->SetImage(ta->GetImage(),"[debug utils] Tex2DArrayImage:"+name);
|
||||
da->debug_utils->SetImageView(ta->GetVulkanImageView(),"[debug utils] Tex2DArrayImageView:"+name);
|
||||
da->debug_utils->SetDeviceMemory(ta->GetDeviceMemory(),"[debug utils] Tex2DArrayMemory:"+name);
|
||||
}
|
||||
#endif//_DEBUG
|
||||
|
||||
return ta;
|
||||
|
Reference in New Issue
Block a user