gpt4 book ai didi

c++ - VkLayer_param_checker.dll 访问冲突

转载 作者:行者123 更新时间:2023-11-30 03:43:00 24 4
gpt4 key购买 nike

我使用 LunarG 安装程序设置了一个 Vulkan 1.0.5.0 程序,它可以在不启用任何层的情况下运行。

当我尝试启用其中之一时:

VK_LAYER_LUNARG_param_checker
VK_LAYER_LUNARG_api_dump
VK_LAYER_LUNARG_standard_validation

当我尝试调用 vkCreateInstance 时,我在 VkLayer_param_checker.dll 或 VkLayer_api_dump.dll 中遇到访问冲突。

如果我尝试单独加载任何一个作为唯一层,它们也会失败。

JSON 文件存在于 ExplicitLayers 下的注册表中,文件本身看起来很好。

我还在 visual studio 中收到有关 dll 已加载的消息。

这些层适用于较旧的 1.0.3.1 测试程序,这很奇怪,我能够启用以下所有功能:

VK_LAYER_LUNARG_device_limits
VK_LAYER_LUNARG_draw_state
VK_LAYER_LUNARG_image
VK_LAYER_LUNARG_mem_tracker
VK_LAYER_LUNARG_object_tracker
VK_LAYER_LUNARG_screenshot
VK_LAYER_LUNARG_swapchain
VK_LAYER_GOOGLE_threading
VK_LAYER_GOOGLE_unique_objects
VK_LAYER_VALVE_steam_overlay

层的加载是否有特定的顺序?我确定我在某处读过,但我找不到了。任何帮助表示赞赏。

最佳答案

我发现了问题。我有点不好意思承认这是一个未初始化的变量。

在我迁移到 Vulkan 1.0.8 之后,我可以找到并加载在调试中构建的正确 VkLayer_parameter_validation.dll。

问题是在我的应用程序信息中我未能分配 pEngineName。即使分配 "" 也会起作用。但是我没有分配任何东西。鉴于它是一个未分配的 const char*,它会立即将我们传送到未定义的行为领域。 Vulkan 也不能将它分配给 nullptr,否则该层会这样标记它并实际给了我那个输出。 (但我并没有将其归咎于此)

从技术上讲,我本可以避免这种情况。假设它为 null 或只是 "" 是我自己的错。我确定我还在某处读到,您必须确保在所有 Vulkan 结构中分配了所有内容。

我希望这可以防止人们犯同样的错误,或者如果您有任何类似的事情并遇到这个问题,它会鼓励您检查您的变量!

关于c++ - VkLayer_param_checker.dll 访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com