嘿,我试图用Vulkan创建一个Windows Surface
但是,即使扩展名已正确加载,vkGetInstanceProcAddr
也无法加载vkCreateWin32SurfaceKHR
函数。
编辑:
在这里我尝试获取函数指针:
vkCreateWin32SurfaceKHR =
(PFN_vkCreateWin32SurfaceKHR)vkGetInstanceProcAddr(vulkanInstance.instance,
"vkCreateWin32SurfaceKHR");
答案 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足以使其失败。