标签: moltenvk

MoltenVK 上有关 VK_KHR_portability_subset 的 Vulkan 验证警告 catch-22

我在 Big Sur(2014 年中 15" Retina)上使用 Vulkan 1.2.170 和 MoltenVK(和 GLFW)。我创建了实例,VK_LAYER_KHRONOS_validation当我调用时,vkCreateDevice我收到警告

VUID-VkDeviceCreateInfo-pProperties-04451(ERROR / SPEC): msgNum: 976972960 - Validation Error:
 [ VUID-VkDeviceCreateInfo-pProperties-04451 ] Object 0: handle = 0x10cfaad00, 
type = VK_OBJECT_TYPE_PHYSICAL_DEVICE; | MessageID = 0x3a3b6ca0 | vkCreateDevice: 
VK_KHR_portability_subset must be enabled because physical device VkPhysicalDevice 0x10cfaad00[] 
supports it The Vulkan spec states: If the [VK_KHR_portability_subset] extension is included in 
pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensions must include 
"VK_KHR_portability_subset".
Run Code Online (Sandbox Code Playgroud)

好吧,好吧,我将它作为唯一的扩展添加到扩展参数中。然后它说

Missing extension required by the device extension VK_KHR_portability_subset:
VK_KHR_get_physical_device_properties2.
Run Code Online (Sandbox Code Playgroud)

和段错误。如果我添加 …

vulkan moltenvk

9
推荐指数
1
解决办法
2583
查看次数

M1 mac 上的设备扩展验证错误

因此,我尝试在配备 M1 处理器的 Mac 上遵循 Vulkan 教程,但遇到了设备创建问题。

因此,根据教程,我设置设备启用的扩展,如下所示:

const std::vector<const char*> deviceExtensions = {
    VK_KHR_SWAPCHAIN_EXTENSION_NAME,
};

VkDeviceCreateInfo createInfo = {};
createInfo.enabledExtensionCount = static_cast<uint32_t>(deviceExtensions.size());
createInfo.ppEnabledExtensionNames = deviceExtensions.data();

Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下验证错误:

验证层:验证错误:[VUID-VkDeviceCreateInfo-pProperties-04451]对象0:句柄= 0x11bd84d40,类型= VK_OBJECT_TYPE_PHYSICAL_DEVICE;| 消息 ID = 0x3a3b6ca0 | vkCreateDevice:必须启用 VK_KHR_portability_subset,因为物理设备 VkPhysicalDevice 0x11bd84d40[] 支持它 Vulkan 规范规定:如果 VK_KHR_portability_subset 扩展包含在 vkEnumerateDeviceExtensionProperties 的 pProperties 中,则 ppEnabledExtensionNames 必须包含“VK_KHR_portability_subset”( https://vulkan.lunarg.com/doc/查看/1.3.211.0/mac/1.3-extensions/vkspec.html#VUID-VkDeviceCreateInfo-pProperties-04451

验证层: vkCreateDevice:尝试从 VkPhysicalDevice 创建 VkDevice,该 VkPhysicalDevice 来自可移植性驱动程序,但未设置 VkInstanceCreateInfo 标志中的 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR 位并启用 VK_KHR_portability_enumeration 扩展。在加载程序的未来版本中,将不会枚举此 VkPhysicalDevice。

所以我尝试添加VK_KHR_portability_subset第一个错误中提到的扩展名:

const std::vector<const char*> deviceExtensions = {
    VK_KHR_SWAPCHAIN_EXTENSION_NAME,
    "VK_KHR_portability_subset",
}; …
Run Code Online (Sandbox Code Playgroud)

macos vulkan moltenvk

5
推荐指数
1
解决办法
2276
查看次数

VK_ERROR_INCOMPATIBLE_DRIVER 与 Mac OS 和 Vulkan MoltenVK

我正在尝试在我的 mac 操作系统上使用 Vulkan API(使用我的 Intel HD Graphics 5000 1536 Mo)。但是当我创建一个实例时VkCreateInstance(...)

结果 VkCreateInstance(...)是 VK_ERROR_INCOMPATIBLE_DRIVER。

这是我初始化 VkInstance 的代码:

    VkApplicationInfo vkAppInfo    = {};
    vkAppInfo.sType                = VK_STRUCTURE_TYPE_APPLICATION_INFO;
    vkAppInfo.pApplicationName     = "S2Engine";
    vkAppInfo.applicationVersion   = VK_MAKE_VERSION(1, 0, 0);
    vkAppInfo.pEngineName          = "No Engine"; //TODO plus tard
    vkAppInfo.engineVersion        = VK_MAKE_VERSION(1, 0, 0);
    vkAppInfo.apiVersion           = VK_API_VERSION_1_0;



    //Obligatoire
    VkInstanceCreateInfo vkInstanceCreateInfo = {};
    vkInstanceCreateInfo.sType                = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
    vkInstanceCreateInfo.pApplicationInfo     = &vkAppInfo;

    uint32_t glfwExtensionCount               = 0;
    const char** glfwExtensions                  ;

    glfwExtensions                            = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);

    vkInstanceCreateInfo.enabledExtensionCount      = glfwExtensionCount;
    vkInstanceCreateInfo.ppEnabledExtensionNames    = glfwExtensions;

    vkInstanceCreateInfo.enabledLayerCount = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ macos sdk vulkan moltenvk

4
推荐指数
2
解决办法
3813
查看次数

标签 统计

moltenvk ×3

vulkan ×3

macos ×2

c++ ×1

sdk ×1