MCPcopy Create free account
hub / github.com/baldurk/renderdoc / CreateCustomShaderTex

Method CreateCustomShaderTex

renderdoc/driver/vulkan/vk_debug.cpp:1021–1185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1019}
1020
1021void VulkanDebugManager::CreateCustomShaderTex(uint32_t width, uint32_t height, uint32_t mip)
1022{
1023 WrappedVulkan *driver = m_pDriver;
1024
1025 VkDevice dev = m_Device;
1026
1027 VkResult vkr = VK_SUCCESS;
1028
1029 if(m_Custom.TexImg != VK_NULL_HANDLE)
1030 {
1031 if(width == m_Custom.TexWidth && height == m_Custom.TexHeight)
1032 {
1033 // recreate framebuffer for this mip
1034 m_pDriver->vkDestroyFramebuffer(dev, m_Custom.TexFB, NULL);
1035
1036 // Create framebuffer rendering just to overlay image, no depth
1037 VkFramebufferCreateInfo fbinfo = {
1038 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
1039 NULL,
1040 0,
1041 m_Custom.TexRP,
1042 1,
1043 &m_Custom.TexImgView[mip],
1044 RDCMAX(1U, width >> mip),
1045 RDCMAX(1U, height >> mip),
1046 1,
1047 };
1048
1049 vkr = m_pDriver->vkCreateFramebuffer(m_Device, &fbinfo, NULL, &m_Custom.TexFB);
1050 CHECK_VKR(m_pDriver, vkr);
1051 return;
1052 }
1053
1054 m_pDriver->vkDestroyRenderPass(dev, m_Custom.TexRP, NULL);
1055 m_pDriver->vkDestroyFramebuffer(dev, m_Custom.TexFB, NULL);
1056 for(size_t i = 0; i < ARRAY_COUNT(m_Custom.TexImgView); i++)
1057 m_pDriver->vkDestroyImageView(dev, m_Custom.TexImgView[i], NULL);
1058 RDCEraseEl(m_Custom.TexImgView);
1059 m_pDriver->vkDestroyImage(dev, m_Custom.TexImg, NULL);
1060 }
1061
1062 m_Custom.TexWidth = width;
1063 m_Custom.TexHeight = height;
1064
1065 VkImageCreateInfo imInfo = {
1066 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
1067 NULL,
1068 0,
1069 VK_IMAGE_TYPE_2D,
1070 VK_FORMAT_R16G16B16A16_SFLOAT,
1071 {width, height, 1},
1072 CalcNumMips((int)width, (int)height, 1),
1073 1,
1074 VK_SAMPLE_COUNT_1_BIT,
1075 VK_IMAGE_TILING_OPTIMAL,
1076 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT |
1077 VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
1078 VK_SHARING_MODE_EXCLUSIVE,

Callers 1

ApplyCustomShaderMethod · 0.45

Calls 15

RDCMAXFunction · 0.85
CalcNumMipsFunction · 0.85
NameVulkanObjectFunction · 0.85
ToStrFunction · 0.85
ObjDispFunction · 0.85
vkDestroyFramebufferMethod · 0.80
vkCreateFramebufferMethod · 0.80
vkDestroyRenderPassMethod · 0.80
vkDestroyImageViewMethod · 0.80
vkDestroyImageMethod · 0.80
vkCreateImageMethod · 0.80

Tested by

no test coverage detected