Page MenuHomeWildfire Games

[WIP] Adds VK_EXT_memory_budget to Vulkan backend
Needs ReviewPublic

Authored by vladislavbelov on Sep 18 2023, 8:21 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Trac Tickets
#6864
Summary

It might allow more precise calculations for memory consumption. It could reduce the chance of a device lost like in #6864.

Test Plan
  1. Apply the patch and compile the game
  2. Enable all backend debug flags and disable descriptor indexing
  3. Run the game with a big map and try to change the shadows quality frequently

Event Timeline

vladislavbelov created this revision.Sep 18 2023, 8:21 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/7305/display/redirect

Successful build - Chance fights ever on the side of the prudent.

Debug:
    17>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DescriptorManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DeviceSelection.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RenderPassManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RingCommandContext.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SamplerManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SubmitScheduler.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SwapChain.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\Utilities.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\VMA.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    13>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
Release:
    18>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DescriptorManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DeviceSelection.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RingCommandContext.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RenderPassManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SubmitScheduler.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SamplerManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\Utilities.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\VMA.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SwapChain.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/8394/display/redirect

vladislavbelov updated this revision to Diff 22284.

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/7306/display/redirect

vladislavbelov retitled this revision from Adds VK_EXT_memory_budget to Vulkan backend to [WIP] Adds VK_EXT_memory_budget to Vulkan backend.Sep 18 2023, 8:37 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/7307/display/redirect

Successful build - Chance fights ever on the side of the prudent.

Debug:
    18>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DescriptorManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DeviceSelection.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RenderPassManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RingCommandContext.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SubmitScheduler.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SamplerManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SwapChain.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\Utilities.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\VMA.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
Release:
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DescriptorManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\DeviceSelection.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    18>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RingCommandContext.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\RenderPassManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SamplerManager.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SubmitScheduler.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\Utilities.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\VMA.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition (compiling source file ..\..\..\source\renderer\backend\vulkan\SwapChain.cpp) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]
    14>e:\jenkins\workspace\vs2015-differential\source\renderer\backend\vulkan\vma.h(117): warning C4005: 'VK_EXT_memory_budget': macro redefinition [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\graphics.vcxproj]

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/8395/display/redirect

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-clang8.txt
In file included from ../../../source/renderer/backend/vulkan/Device.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Device.h:24:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
builderr-debug-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/DeviceSelection.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1
 
builderr-release-clang8.txt
In file included from ../../../source/renderer/backend/vulkan/Device.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Device.h:24:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
builderr-release-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/DeviceSelection.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/8976/display/redirect

Successful build - Chance fights ever on the side of the prudent.

Debug:
    18>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]
Release:
    18>e:\jenkins\workspace\vs2015-differential\libraries\source\glad\src\vulkan.cpp(698): warning C4551: function call missing argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\gladwrapper.vcxproj]

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/8396/display/redirect

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-clang8.txt
In file included from ../../../source/renderer/backend/vulkan/Device.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Device.h:24:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
In file included from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
builderr-debug-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/DeviceSelection.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1
 
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/VMA.h:25:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1
 
builderr-release-clang8.txt
In file included from ../../../source/renderer/backend/vulkan/Device.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Device.h:24:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
In file included from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:
../../../source/renderer/backend/vulkan/VMA.h:117:9: warning: 'VK_EXT_memory_budget' macro redefined [-Wmacro-redefined]
#define VK_EXT_memory_budget 0
        ^
../../../libraries/source/glad/include/glad/vulkan.h:4181:9: note: previous definition is here
#define VK_EXT_memory_budget 1
        ^
1 warning generated.
builderr-release-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/DeviceSelection.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Device.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1
 
In file included from ../../../source/renderer/backend/vulkan/Texture.h:23:0,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../source/renderer/backend/vulkan/VMA.h:117:0: warning: "VK_EXT_memory_budget" redefined
 #define VK_EXT_memory_budget 0
 
In file included from ../../../source/renderer/backend/vulkan/VMA.h:25:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../libraries/source/glad/include/glad/vulkan.h:4181:0: note: this is the location of the previous definition
 #define VK_EXT_memory_budget 1

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/8977/display/redirect

abian added a subscriber: abian.Sep 18 2023, 9:11 PM

Thanks for this, @vladislavbelov. It's still easy for the application to crash with a VK_ERROR_DEVICE_LOST by resizing the window, but I do notice that your patch reduces the likelihood. I'm attaching here the usual files...

When compiling I get...

In file included from ../../../source/renderer/backend/vulkan/VMA.h:119,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SamplerManager.cpp:23:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
  194 |     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/Buffer.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/DescriptorManager.h:22,
                 from ../../../source/renderer/backend/vulkan/DescriptorManager.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/DeviceCommandContext.cpp:28:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/DeviceSelection.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Framebuffer.cpp:22:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.h:22,
                 from ../../../source/renderer/backend/vulkan/PipelineState.h:23,
                 from ../../../source/renderer/backend/vulkan/PipelineState.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/RenderPassManager.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.h:21,
                 from ../../../source/renderer/backend/vulkan/RingCommandContext.h:21,
                 from ../../../source/renderer/backend/vulkan/RingCommandContext.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SamplerManager.cpp:23:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.h:22,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.h:21,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SwapChain.cpp:26:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/Utilities.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/VMA.cpp:22:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
builderr-release-gcc7.txt
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/Buffer.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/DescriptorManager.h:22,
                 from ../../../source/renderer/backend/vulkan/DescriptorManager.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Device.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/DeviceCommandContext.cpp:28:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/DeviceSelection.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/Framebuffer.cpp:22:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.h:22,
                 from ../../../source/renderer/backend/vulkan/PipelineState.h:23,
                 from ../../../source/renderer/backend/vulkan/PipelineState.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/RenderPassManager.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.h:21,
                 from ../../../source/renderer/backend/vulkan/RingCommandContext.h:21,
                 from ../../../source/renderer/backend/vulkan/RingCommandContext.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SamplerManager.cpp:23:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.h:22,
                 from ../../../source/renderer/backend/vulkan/ShaderProgram.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.h:21,
                 from ../../../source/renderer/backend/vulkan/SubmitScheduler.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Device.h:24,
                 from ../../../source/renderer/backend/vulkan/SwapChain.cpp:26:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Texture.h:23,
                 from ../../../source/renderer/backend/vulkan/Texture.cpp:20:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/Buffer.h:22,
                 from ../../../source/renderer/backend/vulkan/Utilities.cpp:24:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../source/renderer/backend/vulkan/VMA.h:119:0,
                 from ../../../source/renderer/backend/vulkan/VMA.cpp:22:
../../../source/third_party/vma/vk_mem_alloc.h:194:34: warning: "VK_KHR_get_physical_device_properties2" is not defined, evaluates to 0 [-Wundef]
     #if VK_EXT_memory_budget && (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION >= 1001000)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/8978/display/redirect

vladislavbelov requested review of this revision.Sep 18 2023, 9:31 PM
In D5135#218302, @abian wrote:

Thanks for this, @vladislavbelov. It's still easy for the application to crash with a VK_ERROR_DEVICE_LOST by resizing the window, but I do notice that your patch reduces the likelihood. I'm attaching here the usual files...

Thank you for testing! It seems we have no convenient way to prevent a device lost. I leave the current patch as is for now without committing. And I'll make (more precisely edit the old one) a separate patch to prevent crashing on out of memory.

abian added a comment.Sep 26 2023, 7:37 PM

Okay! Sounds good.