Vulkan vkCreateWin32SurfaceKHR无法加载

时间:2017-05-10 18:16:06

标签: c++ vulkan

嘿,我试图用Vulkan创建一个Windows Surface 但是,即使扩展名已正确加载,vkGetInstanceProcAddr也无法加载vkCreateWin32SurfaceKHR函数。

编辑: 在这里我尝试获取函数指针: vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)vkGetInstanceProcAddr(vulkanInstance.instance, "vkCreateWin32SurfaceKHR");

4 个答案:

答案 0 :(得分:2)

您是否使用以下方法启用了相应的扩展程序实例创建时的const VK_KHR_WIN32_SURFACE_EXTENSION_NAME

另请注意,除非您将vkCreateWin32SurfaceKHR定义为核心的一部分,否则无需手动获取VK_NO_PROTOTYPES的函数指针。

如果您已启用扩展程序但仍未获得有效的功能指针,请检查您的驱动程序是否已正确安装,尤其是没有旧的ICD注册可能会导致问题。 LunarG Vulkan SDK包含一个名为“via”的工具(在bin文件夹中)来检查您的Vulkan安装。

答案 1 :(得分:0)

如果您使用C ++ API而不是C语言,那么更简单的方法是通过SDK中提供的library(MASS) set.seed(1234) sim <- function(sd, n, p) { X <- matrix(rnorm(n * p), n, p) mu <- 2 + 2*X[,1] + 0.8*X[,2] - 1.2*X[,p] Y <- rnorm(n, mean=mu, sd=rep(sd,n)) df <- data.frame(Y,X) r <- lm(Y~., data=df) r0 <- lm(Y~1, data=df) res <- stepAIC(r0, k=2, direction="forward", scope=list(lower=~1, upper=r), trace=F) return(res$coefficients) } n <- 100 p <- 15 sim(1, n, p) oo1 <- lapply(1:100, sim, n, p) 文件。

vulkan.hpp#define VK_USE_PLATFORM_WIN32_KHR可以拥有vk::Instance会员功能。这有助于减轻自己抓取函数指针的需要。

答案 2 :(得分:0)

您是... 13:56:13 GET 304 3 ms 13:56:18 GET 304 4 ms 13:56:18 POST - - 13:56:23 GET 304 4 ms 13:56:28 GET 304 0 ms 13:56:32 GET 304 3 ms 13:56:38 GET 304 6 ms 13:56:42 GET 304 4 ms 13:56:48 GET 304 9 ms 13:56:53 GET 304 2 ms 13:56:54 POST - - 13:56:58 GET 304 2 ms 13:57:01 GET 200 2 ms 13:57:03 GET 304 6 ms 13:57:08 GET 304 4 ms 13:57:12 GET 304 3 ms 13:57:18 POST - - 13:57:21 GET 304 8 ms 13:57:21 GET 304 8 ms 13:57:23 GET 304 4 ms ... 源文件中的#include标头吗?

vulkan_win32.h来自扩展名,因此在核心vulkan标头中未定义。

答案 3 :(得分:0)

在此...上,如果在调用vkCreateWin32SurfaceKHR时收到错误,请确保已在VkWin32SurfaceCreateInfoKHR结构上定义了sType。即使它是VkWin32SurfaceCreateInfoKHR结构,也要忘记stype足以使其失败。