VkLayer_param_checker.dll访问冲突
VkLayer_param_checker.dll Access Violation
我使用 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 文件存在于显式层下的注册表中,文件本身看起来不错。
我还在视觉工作室中收到消息,表明 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
,否则该层会将其标记为这样并实际为我提供该输出。(但我不是怪它(
从技术上讲,我本可以避免这种情况。假设它会为空或只是""
是我自己的错.我敢肯定,我也在某处读到您必须确保所有 Vulkan 结构中的所有内容都已分配给。
我希望这可以防止人们犯同样的错误,或者如果您有类似的东西并遇到这个问题,它会鼓励您检查您的变量!
相关文章:
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 从Delphi调用C++DLL时发生访问冲突
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 如果使用低于 VS2015 的 vc++ 编译器版本编译,则 DLL 中的访问冲突
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- C++ python 中的函数来自使用 ctypes 的.dll - 找不到函数和访问冲突
- 使用参数的 C# 委托回调会导致从 DLL 调用时C++访问冲突
- 实验室中0x6BE20E11 (ucrtbased.dll) 的未处理异常.exe: 0xC0000005:访问冲突读取
- 将静态库转换为 DLL 会导致在 main 之前出现访问冲突
- 在 "<name>.exe" 中0x00007FFF168E1657 (vcruntime140d.dll) 引发异常:0xC0000005:访问冲突写入位置0x0000000000000
- 从C#返回调用C++dll函数的值时发生访问冲突
- OpenGL:glDrawArrays()引发异常(nvoglv32.dll)读取位置0x00000000时发生访问冲突
- C# 到非托管 C++ DLL 访问冲突/"frame not in module"
- 使用boost::signals2并卸载DLL时发生访问冲突
- VkLayer_param_checker.dll访问冲突
- 注入DLL的函数中出现访问冲突异常(5)
- 使用 DLL 中的C++函数进行访问冲突
- 将 LPTSTR 参数传递给 DLL 会在项目中C++出现访问冲突
- 在 .Net 应用程序中调用 C++ DLL 时出现系统访问冲突异常