Commit: 2be13e1b9f2735660fb147048f35d23628023214 ("- changed shader loader to load only one shader at a time")
Compile environment: VS 2022, building x64
Bug: When the Vulkan renderer is selected, GZDoom crashes to desktop with a write AV to a null address, right after maximizing the window on startup, but before showing the menu screen. The GL renderer is unaffected.
I'm running self-built binaries, so I don't think you can use my dump files directly. Here's a snapshot of what I can see in the debugger:
Exception:
Code: Select all
Unhandled exception at 0x00007FF74F9676D7 (gzdoom.exe) in minidump.mdmp: 0xC0000005: Access violation writing location 0x0000000000000000.
Code: Select all
> [Inline Frame] gzdoom.exe!std::_Compressed_pair<std::default_delete<VulkanShader>,VulkanShader *,1>::{ctor}(std::_One_then_variadic_args_t) Line 1375 C++
[Inline Frame] gzdoom.exe!std::unique_ptr<VulkanShader,std::default_delete<VulkanShader>>::{ctor}(std::unique_ptr<VulkanShader,std::default_delete<VulkanShader>> &&) Line 3197 C++
[Inline Frame] gzdoom.exe!std::_Construct_in_place(VkShaderProgram &) Line 149 C++
[Inline Frame] gzdoom.exe!std::vector<VkShaderProgram,std::allocator<VkShaderProgram>>::_Emplace_back_with_unused_capacity(VkShaderProgram &&) Line 821 C++
[Inline Frame] gzdoom.exe!std::vector<VkShaderProgram,std::allocator<VkShaderProgram>>::_Emplace_one_at_back(VkShaderProgram &&) Line 806 C++
[Inline Frame] gzdoom.exe!std::vector<VkShaderProgram,std::allocator<VkShaderProgram>>::emplace_back(VkShaderProgram &&) Line 888 C++
[Inline Frame] gzdoom.exe!std::vector<VkShaderProgram,std::allocator<VkShaderProgram>>::push_back(VkShaderProgram &&) Line 902 C++
gzdoom.exe!VkShaderManager::CompileNextShader() Line 96 C++
gzdoom.exe!D_InitGame(const FIWADInfo * iwad_info, TArray<FString,FString> & allwads, TArray<FString,FString> & pwads) Line 3359 C++
gzdoom.exe!D_DoomMain_Internal() Line 3586 C++
gzdoom.exe!GameMain() Line 3624 C++
gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 981 C++
gzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1272 C++
Code: Select all
+ _Val1 default_delete std::default_delete<VulkanShader> &&
forward forward (0) FParser::<unnamed-enum-forward>
+ this 0x880008dd70751b7c default_delete std::_Compressed_pair<std::default_delete<VulkanShader>,VulkanShader *,1> *