小编Lac*_*o97的帖子

Wat不会“ vkCreateSwapchainKHR:内部可绘制创建失败”。手段

我一直坚持交换链的创建,我也不知道为什么。我启用了验证层,而我得到的最好的答案是:

  • vkCreateSwapchainKHR:内部可绘制创建失败

我有Nvidia GTX960卡。我在上面运行了一些vulkan示例,因此它必须支持vulkan。

这是我的交换链创建器函数:

void Renderer::createSwapChain(VkSwapchainKHR *swapchain,VkPhysicalDevice *dev,VkDevice *vulk_dev,VkSurfaceKHR *surface, uint32_t family_index,VkExtent2D *extent) {
    uint32_t format_count;
    VkFormat format;

    VkBool32 support;
    vkGetPhysicalDeviceSurfaceSupportKHR(*dev, family_index, *surface, &support);
    if (!support) {
        fprintf(*Renderer::error_log, "%d :Surface is not supported.", __LINE__);
        fclose(*Renderer::error_log);
        exit(-1);
    }

    vkGetPhysicalDeviceSurfaceFormatsKHR(*dev, *surface, &format_count, nullptr);
    vector<VkSurfaceFormatKHR> surface_format(format_count);
    vkGetPhysicalDeviceSurfaceFormatsKHR(*dev, *surface, &format_count, surface_format.data());

    if( 1 == format_count && surface_format[0].format == VK_FORMAT_UNDEFINED) {
        format = VK_FORMAT_B8G8R8A8_UNORM;
        infos.format.color_format = VK_FORMAT_B8G8R8A8_UNORM;
    }else {
        format = surface_format[0].format;
    }

    VkFormat depth_format = VK_FORMAT_D16_UNORM;
    VkFormatProperties format_props;
    vkGetPhysicalDeviceFormatProperties(*dev, depth_format, &format_props);
    if (format_props.linearTilingFeatures …
Run Code Online (Sandbox Code Playgroud)

vulkan

4
推荐指数
1
解决办法
832
查看次数

标签 统计

vulkan ×1