bruhmoment21 / UniversalHookX

Universal graphical hook for Windows apps.
MIT License
196 stars 42 forks source link

ImGui window doesn't show for Valheim - Vulkan #8

Open FoxMaccloud opened 1 year ago

FoxMaccloud commented 1 year ago

Awesome to see an imgui hook example for Vulkan. This is the only example I could find! 😄

When injecting for Valheim, it appears to inject fine. However the imgui menu is not showing.

image

Steps to reproduce

Download Vulkan SDK. Un-comment #define ENABLE_BACKEND_VULKAN in backend.hpp. Open project in Visual Studio 2022. Re-include imgui_impl_vulkan files. Compile project. Start Valheim using Vulkan. Inject dll.

bruhmoment21 commented 1 year ago

vulkan works for me so i guess you didn't force the game to use vulkan ("-force-vulkan", in the launch parameters) and it falls back to directx11

image

FoxMaccloud commented 1 year ago

I played around with it some more and found that when attempting to uninject, the allocated console doesn't disappear, but hangs around. ReinitializeGraphicalHooks appears to be working fine (before unloading).

image

I'm not sure what's wrong. I tried using the -force-vulkan launch parameter, reinstalling the game and setting imgui window to the middle of the screen in case it rendered off-screen. When using DX11 everything appears to work perfectly.

image

It looks like you don't have issues on your end, so I guess the issue lies with me.

bruhmoment21 commented 1 year ago

are vulkan hooks being called? (simply place a breakpoint)

FoxMaccloud commented 1 year ago

The Vulkan hooks appears to be called just fine.

image

I don't see the window size being set anywhere. This is the 3rd time this func is called. The comment implies that 4K will be overwritten at some point?

image

Everything appears to be in order expect the menu not showing up...

bruhmoment21 commented 1 year ago

what version of valheim are you playing and also what gpu do you have.

what you have posted is normal behaviour. but i still have no idea why the menu is not showing up

FoxMaccloud commented 1 year ago

I'm running version 2022-12-15 0.212.9 of the game and my GPU is an AMD Radeon Vega 64

bruhmoment21 commented 1 year ago

I'm running version 2022-12-15 0.212.9 of the game and my GPU is an AMD Radeon Vega 64

put this code right here and then paste the output between "start detailed log" and "end detailed log" image

LOG("start detailed log:\n");
    LOG("g_Device: %p\n", g_Device);
    LOG("called hkQueuePresentKHR() with queue: %p\n", queue);

    if (g_Device) {
        uint32_t count;
        vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, NULL);
        VkQueueFamilyProperties* queues = new VkQueueFamilyProperties[sizeof(VkQueueFamilyProperties) * count];
        vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, queues);
        for (uint32_t i = 0; i < count; ++i) {
            for (uint32_t j = 0; j < queues[i].queueCount; ++j) {
                VkQueue pQueue = VK_NULL_HANDLE;
                vkGetDeviceQueue(g_Device, i, j, &pQueue);

                LOG("\tqueue[%u][%u]: %p\n", i, j, pQueue);
            }
        }
        delete[] queues;
    }
    LOG("end detailed log.\n");

better post the whole log after injecting for the first time. (the console should be spammed with that log thing ive written)

FoxMaccloud commented 1 year ago

image

[+] Rendering backend: VULKAN
[+] Got window with name: 'Valheim'
[+] Vulkan: g_Instance: 0x000002839B37E7D0
[+] Vulkan: g_PhysicalDevice: 0x0000028372CE5A50
[+] Vulkan: g_QueueFamily: 0
[+] Vulkan: g_FakeDevice: 0x00000283B1089E30
[+] Vulkan: fnAcquireNextImageKHR: 0x00007FF9C160CB70
[+] Vulkan: fnAcquireNextImage2KHR: 0x00007FF9C160CBD0
[+] Vulkan: fnQueuePresentKHR: 0x00007FFA90B3AE60
[+] Vulkan: fnCreateSwapchainKHR: 0x00007FFA90B3A350
start detailed log:
g_Device: 00000282D81A94F0
called hkQueuePresentKHR() with queue: 00000282D81B15C0
        queue[0][0]: 00000282D81B15C0
        queue[1][0]: 0000000000000000
        queue[1][1]: 0000000000000000
        queue[2][0]: 0000000000000000
        queue[2][1]: 0000000000000000
end detailed log.
Calling Menu Render
start detailed log:
g_Device: 00000282D81A94F0
called hkQueuePresentKHR() with queue: 00000282D81B15C0
        queue[0][0]: 00000282D81B15C0
        queue[1][0]: 0000000000000000
        queue[1][1]: 0000000000000000
        queue[2][0]: 0000000000000000
        queue[2][1]: 0000000000000000
end detailed log.
Calling Menu Render
start detailed log:
g_Device: 00000282D81A94F0
called hkQueuePresentKHR() with queue: 00000282D81B15C0
        queue[0][0]: 00000282D81B15C0
        queue[1][0]: 0000000000000000
        queue[1][1]: 0000000000000000
        queue[2][0]: 0000000000000000
        queue[2][1]: 0000000000000000
bruhmoment21 commented 1 year ago

i have no clue why it;s not working i guess you will have to stick to directx11 (disable all overlays maybe like discord or msi afterburner if you have any)

FoxMaccloud commented 1 year ago

Might be important to the issue. On exit the dll seems to freeze the game after a few seconds. Trying to step through to figure out why, I don't reach anything after vkDestroyInstance(g_Instance, g_Allocator); in CleanupDeviceVulkan.

image

bruhmoment21 commented 1 year ago

https://user-images.githubusercontent.com/53657322/213920843-79d1137c-f5da-4774-ac4d-a1ecc343cec3.mp4

if you can u could try to test this on someones else pc to see if its just you. menu shows up on my screen and i have changed only the renderingbackend to vulkan thats it

FoxMaccloud commented 1 year ago

https://user-images.githubusercontent.com/35312332/213927160-5dc8cdcc-89b2-423c-963c-0cce72144e77.mp4

Well this is how it looks for me. I'll see if I can find another PC to test on.

bruhmoment21 commented 1 year ago

i think the game hung because you have selected text in the console. do you have the overlay like geforce experience but for amd? (i forgot how its called)

you could even try to disable steams overlay which is here image

FoxMaccloud commented 1 year ago

i think the game hung because you have selected text in the console.

No this happens always.

As for overlays. AMD has "AMD Adrenaline". I disabled both steam and adrenaline overlays but still all the same.

bruhmoment21 commented 1 year ago

are you running the latest drivers and the latest win10 because i don t have a clue whats going on

FoxMaccloud commented 1 year ago

image

image

Latest everything.

bruhmoment21 commented 1 year ago

do you own any titles like portal 2 or half life 2 ? if you own them use -vulkan in the launch paramters and inject to see if they work (compile in x86) also if you can paste whatever the console outputs if you type "vulkaninfo" in cmd

FoxMaccloud commented 1 year ago

image

Exactly the same behavoir, also still freezes on exit with same problem.

``` C:\Users\FoxMaccloud>vulkaninfo ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file E:\Programfiler (x86)\Overwolf\0.187.1.13\ow-vulkan-overlay64.json ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file E:\Programfiler (x86)\Overwolf\0.187.1.13\ow-graphics-vulkan64.json ========== VULKANINFO ========== Vulkan Instance Version: 1.3.204 Instance Extensions: count = 11 =============================== VK_EXT_debug_report : extension revision 10 VK_EXT_debug_utils : extension revision 2 VK_EXT_swapchain_colorspace : extension revision 4 VK_KHR_device_group_creation : extension revision 1 VK_KHR_external_fence_capabilities : extension revision 1 VK_KHR_external_memory_capabilities : extension revision 1 VK_KHR_external_semaphore_capabilities : extension revision 1 VK_KHR_get_physical_device_properties2 : extension revision 2 VK_KHR_get_surface_capabilities2 : extension revision 1 VK_KHR_surface : extension revision 25 VK_KHR_win32_surface : extension revision 6 Layers: count = 11 ================== VK_LAYER_AMD_switchable_graphics (AMD switchable graphics layer) Vulkan version 1.3.217, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 0 VK_LAYER_KHRONOS_profiles (Khronos Profiles layer) Vulkan version 1.3.236, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_EXT_tooling_info : extension revision 1 VK_LAYER_KHRONOS_synchronization2 (Khronos Synchronization2 layer) Vulkan version 1.3.236, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_KHR_synchronization2 : extension revision 1 VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.3.236, layer version 1: Layer Extensions: count = 3 VK_EXT_debug_report : extension revision 9 VK_EXT_debug_utils : extension revision 1 VK_EXT_validation_features : extension revision 2 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 3 VK_EXT_debug_marker : extension revision 4 VK_EXT_tooling_info : extension revision 1 VK_EXT_validation_cache : extension revision 1 VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.3.236, layer version 2: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_EXT_tooling_info : extension revision 1 VK_LAYER_LUNARG_gfxreconstruct (GFXReconstruct Capture Layer Version 0.9.16) Vulkan version 1.3.236, layer version 36880: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_EXT_tooling_info : extension revision 1 VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.3.236, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_EXT_tooling_info : extension revision 1 VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.3.236, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 1 VK_EXT_tooling_info : extension revision 1 VK_LAYER_OBS_HOOK (Open Broadcaster Software hook) Vulkan version 1.3.216, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 0 VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 0 VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (Radeon RX Vega) Layer-Device Extensions: count = 0 Presentable Surfaces: ===================== GPU id : 0 (Radeon RX Vega): Surface type = VK_KHR_win32_surface Formats: count = 25 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[2]: format = FORMAT_A2R10G10B10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[3]: format = FORMAT_R16G16B16A16_SFLOAT colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[4]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT SurfaceFormat[5]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT SurfaceFormat[6]: format = FORMAT_A2R10G10B10_UNORM_PACK32 colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT SurfaceFormat[7]: format = FORMAT_R16G16B16A16_SFLOAT colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT SurfaceFormat[8]: format = FORMAT_R16G16B16A16_SFLOAT colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT SurfaceFormat[9]: format = FORMAT_R4G4B4A4_UNORM_PACK16 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[10]: format = FORMAT_B4G4R4A4_UNORM_PACK16 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[11]: format = FORMAT_R5G6B5_UNORM_PACK16 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[12]: format = FORMAT_B5G6R5_UNORM_PACK16 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[13]: format = FORMAT_A1R5G5B5_UNORM_PACK16 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[14]: format = FORMAT_R8G8B8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[15]: format = FORMAT_R8G8B8A8_SNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[16]: format = FORMAT_R8G8B8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[17]: format = FORMAT_B8G8R8A8_SNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[18]: format = FORMAT_A8B8G8R8_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[19]: format = FORMAT_A8B8G8R8_SNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[20]: format = FORMAT_A8B8G8R8_SRGB_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[21]: format = FORMAT_A2B10G10R10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[22]: format = FORMAT_R16G16B16A16_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[23]: format = FORMAT_R16G16B16A16_SNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[24]: format = FORMAT_B10G11R11_UFLOAT_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 3 PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR VkSurfaceCapabilitiesKHR: ------------------------- minImageCount = 1 maxImageCount = 16 currentExtent: width = 256 height = 256 minImageExtent: width = 256 height = 256 maxImageExtent: width = 256 height = 256 maxImageArrayLayers = 1 supportedTransforms: count = 1 SURFACE_TRANSFORM_IDENTITY_BIT_KHR currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR supportedCompositeAlpha: count = 1 COMPOSITE_ALPHA_OPAQUE_BIT_KHR supportedUsageFlags: count = 6 IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_SAMPLED_BIT IMAGE_USAGE_STORAGE_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_INPUT_ATTACHMENT_BIT VkSurfaceCapabilitiesFullScreenExclusiveEXT: -------------------------------------------- fullScreenExclusiveSupported = true Device Groups: ============== Group 0: Properties: physicalDevices: count = 1 Radeon RX Vega (ID: 0) subsetAllocation = 0 Present Capabilities: Radeon RX Vega (ID: 0): Can present images from the following devices: count = 1 Radeon RX Vega (ID: 0) Present modes: count = 1 DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR Device Properties and Extensions: ================================= GPU0: VkPhysicalDeviceProperties: --------------------------- apiVersion = 4206809 (1.3.217) driverVersion = 8388841 (0x8000e9) vendorID = 0x1002 deviceID = 0x687f deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU deviceName = Radeon RX Vega pipelineCacheUUID = e49bf5d3-1f61-5334-8eb0-dd9d3f8ae2fe VkPhysicalDeviceLimits: ----------------------- maxImageDimension1D = 16384 maxImageDimension2D = 16384 maxImageDimension3D = 2048 maxImageDimensionCube = 16384 maxImageArrayLayers = 2048 maxTexelBufferElements = 4294967295 maxUniformBufferRange = 4294967295 maxStorageBufferRange = 4294967295 maxPushConstantsSize = 128 maxMemoryAllocationCount = 4096 maxSamplerAllocationCount = 1048576 bufferImageGranularity = 0x00000001 sparseAddressSpaceSize = 0xff900000000 maxBoundDescriptorSets = 32 maxPerStageDescriptorSamplers = 4294967295 maxPerStageDescriptorUniformBuffers = 4294967295 maxPerStageDescriptorStorageBuffers = 4294967295 maxPerStageDescriptorSampledImages = 4294967295 maxPerStageDescriptorStorageImages = 4294967295 maxPerStageDescriptorInputAttachments = 4294967295 maxPerStageResources = 4294967295 maxDescriptorSetSamplers = 4294967295 maxDescriptorSetUniformBuffers = 4294967295 maxDescriptorSetUniformBuffersDynamic = 8 maxDescriptorSetStorageBuffers = 4294967295 maxDescriptorSetStorageBuffersDynamic = 8 maxDescriptorSetSampledImages = 4294967295 maxDescriptorSetStorageImages = 4294967295 maxDescriptorSetInputAttachments = 4294967295 maxVertexInputAttributes = 64 maxVertexInputBindings = 32 maxVertexInputAttributeOffset = 4294967295 maxVertexInputBindingStride = 16383 maxVertexOutputComponents = 128 maxTessellationGenerationLevel = 64 maxTessellationPatchSize = 32 maxTessellationControlPerVertexInputComponents = 128 maxTessellationControlPerVertexOutputComponents = 128 maxTessellationControlPerPatchOutputComponents = 120 maxTessellationControlTotalOutputComponents = 4096 maxTessellationEvaluationInputComponents = 128 maxTessellationEvaluationOutputComponents = 128 maxGeometryShaderInvocations = 127 maxGeometryInputComponents = 128 maxGeometryOutputComponents = 128 maxGeometryOutputVertices = 1023 maxGeometryTotalOutputComponents = 4095 maxFragmentInputComponents = 128 maxFragmentOutputAttachments = 8 maxFragmentDualSrcAttachments = 1 maxFragmentCombinedOutputResources = 4294967295 maxComputeSharedMemorySize = 65536 maxComputeWorkGroupCount: count = 3 65535 65535 65535 maxComputeWorkGroupInvocations = 1024 maxComputeWorkGroupSize: count = 3 1024 1024 1024 subPixelPrecisionBits = 8 subTexelPrecisionBits = 8 mipmapPrecisionBits = 8 maxDrawIndexedIndexValue = 4294967295 maxDrawIndirectCount = 4294967295 maxSamplerLodBias = 15.9961 maxSamplerAnisotropy = 16 maxViewports = 16 maxViewportDimensions: count = 2 16384 16384 viewportBoundsRange: count = 2 -32768 32767 viewportSubPixelBits = 8 minMemoryMapAlignment = 64 minTexelBufferOffsetAlignment = 0x00000004 minUniformBufferOffsetAlignment = 0x00000010 minStorageBufferOffsetAlignment = 0x00000004 minTexelOffset = -64 maxTexelOffset = 63 minTexelGatherOffset = -32 maxTexelGatherOffset = 31 minInterpolationOffset = -2 maxInterpolationOffset = 1 subPixelInterpolationOffsetBits = 8 maxFramebufferWidth = 16384 maxFramebufferHeight = 16384 maxFramebufferLayers = 2048 framebufferColorSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT framebufferDepthSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT framebufferStencilSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT framebufferNoAttachmentsSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT maxColorAttachments = 8 sampledImageColorSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT sampledImageIntegerSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT sampledImageDepthSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT sampledImageStencilSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT storageImageSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT maxSampleMaskWords = 1 timestampComputeAndGraphics = true timestampPeriod = 37.037 maxClipDistances = 8 maxCullDistances = 8 maxCombinedClipAndCullDistances = 8 discreteQueuePriorities = 2 pointSizeRange: count = 2 0 8191.88 lineWidthRange: count = 2 0 8191.88 pointSizeGranularity = 0.125 lineWidthGranularity = 0.125 strictLines = false standardSampleLocations = true optimalBufferCopyOffsetAlignment = 0x00000001 optimalBufferCopyRowPitchAlignment = 0x00000001 nonCoherentAtomSize = 0x00000080 VkPhysicalDeviceSparseProperties: --------------------------------- residencyStandard2DBlockShape = true residencyStandard2DMultisampleBlockShape = false residencyStandard3DBlockShape = true residencyAlignedMipSize = false residencyNonResidentStrict = true VkPhysicalDeviceConservativeRasterizationPropertiesEXT: ------------------------------------------------------- primitiveOverestimationSize = 0 maxExtraPrimitiveOverestimationSize = 0 extraPrimitiveOverestimationSizeGranularity = 0 primitiveUnderestimation = true conservativePointAndLineRasterization = false degenerateTrianglesRasterized = true degenerateLinesRasterized = false fullyCoveredFragmentShaderInputVariable = false conservativeRasterizationPostDepthCoverage = false VkPhysicalDeviceCustomBorderColorPropertiesEXT: ----------------------------------------------- maxCustomBorderColorSamplers = 4096 VkPhysicalDeviceDepthStencilResolveProperties: ---------------------------------------------- supportedDepthResolveModes: count = 3 RESOLVE_MODE_SAMPLE_ZERO_BIT RESOLVE_MODE_MIN_BIT RESOLVE_MODE_MAX_BIT supportedStencilResolveModes: count = 3 RESOLVE_MODE_SAMPLE_ZERO_BIT RESOLVE_MODE_MIN_BIT RESOLVE_MODE_MAX_BIT independentResolveNone = true independentResolve = true VkPhysicalDeviceDescriptorIndexingProperties: --------------------------------------------- maxUpdateAfterBindDescriptorsInAllPools = 4294967295 shaderUniformBufferArrayNonUniformIndexingNative = false shaderSampledImageArrayNonUniformIndexingNative = false shaderStorageBufferArrayNonUniformIndexingNative = false shaderStorageImageArrayNonUniformIndexingNative = false shaderInputAttachmentArrayNonUniformIndexingNative = false robustBufferAccessUpdateAfterBind = false quadDivergentImplicitLod = false maxPerStageDescriptorUpdateAfterBindSamplers = 4294967295 maxPerStageDescriptorUpdateAfterBindUniformBuffers = 4294967295 maxPerStageDescriptorUpdateAfterBindStorageBuffers = 4294967295 maxPerStageDescriptorUpdateAfterBindSampledImages = 4294967295 maxPerStageDescriptorUpdateAfterBindStorageImages = 4294967295 maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295 maxPerStageUpdateAfterBindResources = 4294967295 maxDescriptorSetUpdateAfterBindSamplers = 4294967295 maxDescriptorSetUpdateAfterBindUniformBuffers = 4294967295 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8 maxDescriptorSetUpdateAfterBindStorageBuffers = 4294967295 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8 maxDescriptorSetUpdateAfterBindSampledImages = 4294967295 maxDescriptorSetUpdateAfterBindStorageImages = 4294967295 maxDescriptorSetUpdateAfterBindInputAttachments = 4294967295 VkPhysicalDeviceDriverProperties: --------------------------------- driverID = DRIVER_ID_AMD_PROPRIETARY driverName = AMD proprietary driver driverInfo = 22.11.2 conformanceVersion = 1.3.0.0 VkPhysicalDeviceExternalMemoryHostPropertiesEXT: ------------------------------------------------ minImportedHostPointerAlignment = 0x00001000 VkPhysicalDeviceFloatControlsProperties: ---------------------------------------- denormBehaviorIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY roundingModeIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY shaderSignedZeroInfNanPreserveFloat16 = true shaderSignedZeroInfNanPreserveFloat32 = true shaderSignedZeroInfNanPreserveFloat64 = true shaderDenormPreserveFloat16 = true shaderDenormPreserveFloat32 = true shaderDenormPreserveFloat64 = true shaderDenormFlushToZeroFloat16 = true shaderDenormFlushToZeroFloat32 = true shaderDenormFlushToZeroFloat64 = true shaderRoundingModeRTEFloat16 = true shaderRoundingModeRTEFloat32 = true shaderRoundingModeRTEFloat64 = true shaderRoundingModeRTZFloat16 = true shaderRoundingModeRTZFloat32 = true shaderRoundingModeRTZFloat64 = true VkPhysicalDeviceIDProperties: ----------------------------- deviceUUID = 00000000-2800-0000-0000-000000000000 driverUUID = 414d442d-5749-4e2d-4452-560000000000 deviceLUID = d2f90000-00000000 deviceNodeMask = 1 deviceLUIDValid = true VkPhysicalDeviceInlineUniformBlockProperties: --------------------------------------------- maxInlineUniformBlockSize = 65536 maxPerStageDescriptorInlineUniformBlocks = 16 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16 maxDescriptorSetInlineUniformBlocks = 16 maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 16 VkPhysicalDeviceLineRasterizationPropertiesEXT: ----------------------------------------------- lineSubPixelPrecisionBits = 4 VkPhysicalDeviceMaintenance3Properties: --------------------------------------- maxPerSetDescriptors = 4294967295 maxMemoryAllocationSize = 0x80000000 VkPhysicalDeviceMaintenance4Properties: --------------------------------------- maxBufferSize = 0x80000000 VkPhysicalDeviceMultiviewProperties: ------------------------------------ maxMultiviewViewCount = 6 maxMultiviewInstanceIndex = 4294967295 VkPhysicalDevicePointClippingProperties: ---------------------------------------- pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES VkPhysicalDeviceProtectedMemoryProperties: ------------------------------------------ protectedNoFault = false VkPhysicalDeviceProvokingVertexPropertiesEXT: --------------------------------------------- provokingVertexModePerPipeline = true transformFeedbackPreservesTriangleFanProvokingVertex = true VkPhysicalDevicePushDescriptorPropertiesKHR: -------------------------------------------- maxPushDescriptors = 32 VkPhysicalDeviceRobustness2PropertiesEXT: ----------------------------------------- robustStorageBufferAccessSizeAlignment = 0x00000004 robustUniformBufferAccessSizeAlignment = 0x00000004 VkPhysicalDeviceSampleLocationsPropertiesEXT: --------------------------------------------- sampleLocationSampleCounts: count = 3 SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT maxSampleLocationGridSize: width = 2 height = 2 sampleLocationCoordinateRange: count = 2 0 1 sampleLocationSubPixelBits = 4 variableSampleLocations = true VkPhysicalDeviceSamplerFilterMinmaxProperties: ---------------------------------------------- filterMinmaxSingleComponentFormats = true filterMinmaxImageComponentMapping = true VkPhysicalDeviceShaderIntegerDotProductProperties: -------------------------------------------------- integerDotProduct8BitUnsignedAccelerated = false integerDotProduct8BitSignedAccelerated = false integerDotProduct8BitMixedSignednessAccelerated = false integerDotProduct4x8BitPackedUnsignedAccelerated = false integerDotProduct4x8BitPackedSignedAccelerated = false integerDotProduct4x8BitPackedMixedSignednessAccelerated = false integerDotProduct16BitUnsignedAccelerated = true integerDotProduct16BitSignedAccelerated = true integerDotProduct16BitMixedSignednessAccelerated = false integerDotProduct32BitUnsignedAccelerated = false integerDotProduct32BitSignedAccelerated = false integerDotProduct32BitMixedSignednessAccelerated = false integerDotProduct64BitUnsignedAccelerated = false integerDotProduct64BitSignedAccelerated = false integerDotProduct64BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating8BitSignedAccelerated = false integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = true integerDotProductAccumulatingSaturating16BitSignedAccelerated = true integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating32BitSignedAccelerated = false integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating64BitSignedAccelerated = false integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false VkPhysicalDeviceSubgroupProperties: ----------------------------------- subgroupSize = 64 supportedStages: count = 8 SHADER_STAGE_VERTEX_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_ALL_GRAPHICS SHADER_STAGE_ALL supportedOperations: count = 8 SUBGROUP_FEATURE_BASIC_BIT SUBGROUP_FEATURE_VOTE_BIT SUBGROUP_FEATURE_ARITHMETIC_BIT SUBGROUP_FEATURE_BALLOT_BIT SUBGROUP_FEATURE_SHUFFLE_BIT SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT SUBGROUP_FEATURE_CLUSTERED_BIT SUBGROUP_FEATURE_QUAD_BIT quadOperationsInAllStages = true VkPhysicalDeviceSubgroupSizeControlProperties: ---------------------------------------------- minSubgroupSize = 64 maxSubgroupSize = 64 maxComputeWorkgroupSubgroups = 4294967295 requiredSubgroupSizeStages: None VkPhysicalDeviceTexelBufferAlignmentProperties: ----------------------------------------------- storageTexelBufferOffsetAlignmentBytes = 0x00000004 storageTexelBufferOffsetSingleTexelAlignment = true uniformTexelBufferOffsetAlignmentBytes = 0x00000004 uniformTexelBufferOffsetSingleTexelAlignment = true VkPhysicalDeviceTimelineSemaphoreProperties: -------------------------------------------- maxTimelineSemaphoreValueDifference = 4294967295 VkPhysicalDeviceTransformFeedbackPropertiesEXT: ----------------------------------------------- maxTransformFeedbackStreams = 4 maxTransformFeedbackBuffers = 4 maxTransformFeedbackBufferSize = 0xffffffff maxTransformFeedbackStreamDataSize = 512 maxTransformFeedbackBufferDataSize = 512 maxTransformFeedbackBufferDataStride = 512 transformFeedbackQueries = true transformFeedbackStreamsLinesTriangles = true transformFeedbackRasterizationStreamSelect = false transformFeedbackDraw = true VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT: ---------------------------------------------------- maxVertexAttribDivisor = 4294967295 VkPhysicalDeviceVulkan11Properties: ----------------------------------- deviceUUID = 00000000-2800-0000-0000-000000000000 driverUUID = 414d442d-5749-4e2d-4452-560000000000 deviceLUID = d2f90000-00000000 deviceNodeMask = 1 deviceLUIDValid = true subgroupSize = 64 subgroupSupportedStages: count = 8 SHADER_STAGE_VERTEX_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_ALL_GRAPHICS SHADER_STAGE_ALL subgroupSupportedOperations: count = 8 SUBGROUP_FEATURE_BASIC_BIT SUBGROUP_FEATURE_VOTE_BIT SUBGROUP_FEATURE_ARITHMETIC_BIT SUBGROUP_FEATURE_BALLOT_BIT SUBGROUP_FEATURE_SHUFFLE_BIT SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT SUBGROUP_FEATURE_CLUSTERED_BIT SUBGROUP_FEATURE_QUAD_BIT subgroupQuadOperationsInAllStages = true pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES maxMultiviewViewCount = 6 maxMultiviewInstanceIndex = 4294967295 protectedNoFault = false maxPerSetDescriptors = 4294967295 maxMemoryAllocationSize = 0x80000000 VkPhysicalDeviceVulkan12Properties: ----------------------------------- driverID = DRIVER_ID_AMD_PROPRIETARY driverName = AMD proprietary driver driverInfo = 22.11.2 conformanceVersion = 1.3.0.0 denormBehaviorIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY roundingModeIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY shaderSignedZeroInfNanPreserveFloat16 = true shaderSignedZeroInfNanPreserveFloat32 = true shaderSignedZeroInfNanPreserveFloat64 = true shaderDenormPreserveFloat16 = true shaderDenormPreserveFloat32 = true shaderDenormPreserveFloat64 = true shaderDenormFlushToZeroFloat16 = true shaderDenormFlushToZeroFloat32 = true shaderDenormFlushToZeroFloat64 = true shaderRoundingModeRTEFloat16 = true shaderRoundingModeRTEFloat32 = true shaderRoundingModeRTEFloat64 = true shaderRoundingModeRTZFloat16 = true shaderRoundingModeRTZFloat32 = true shaderRoundingModeRTZFloat64 = true maxUpdateAfterBindDescriptorsInAllPools = 4294967295 shaderUniformBufferArrayNonUniformIndexingNative = false shaderSampledImageArrayNonUniformIndexingNative = false shaderStorageBufferArrayNonUniformIndexingNative = false shaderStorageImageArrayNonUniformIndexingNative = false shaderInputAttachmentArrayNonUniformIndexingNative = false robustBufferAccessUpdateAfterBind = false quadDivergentImplicitLod = false maxPerStageDescriptorUpdateAfterBindSamplers = 4294967295 maxPerStageDescriptorUpdateAfterBindUniformBuffers = 4294967295 maxPerStageDescriptorUpdateAfterBindStorageBuffers = 4294967295 maxPerStageDescriptorUpdateAfterBindSampledImages = 4294967295 maxPerStageDescriptorUpdateAfterBindStorageImages = 4294967295 maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295 maxPerStageUpdateAfterBindResources = 4294967295 maxDescriptorSetUpdateAfterBindSamplers = 4294967295 maxDescriptorSetUpdateAfterBindUniformBuffers = 4294967295 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8 maxDescriptorSetUpdateAfterBindStorageBuffers = 4294967295 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8 maxDescriptorSetUpdateAfterBindSampledImages = 4294967295 maxDescriptorSetUpdateAfterBindStorageImages = 4294967295 maxDescriptorSetUpdateAfterBindInputAttachments = 4294967295 supportedDepthResolveModes: count = 3 RESOLVE_MODE_SAMPLE_ZERO_BIT RESOLVE_MODE_MIN_BIT RESOLVE_MODE_MAX_BIT supportedStencilResolveModes: count = 3 RESOLVE_MODE_SAMPLE_ZERO_BIT RESOLVE_MODE_MIN_BIT RESOLVE_MODE_MAX_BIT independentResolveNone = true independentResolve = true filterMinmaxSingleComponentFormats = true filterMinmaxImageComponentMapping = true maxTimelineSemaphoreValueDifference = 4294967295 framebufferIntegerColorSampleCounts: count = 4 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_2_BIT SAMPLE_COUNT_4_BIT SAMPLE_COUNT_8_BIT VkPhysicalDeviceVulkan13Properties: ----------------------------------- minSubgroupSize = 64 maxSubgroupSize = 64 maxComputeWorkgroupSubgroups = 4294967295 requiredSubgroupSizeStages: None maxInlineUniformBlockSize = 65536 maxPerStageDescriptorInlineUniformBlocks = 16 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16 maxDescriptorSetInlineUniformBlocks = 16 maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 16 maxInlineUniformTotalSize = 4294967295 integerDotProduct8BitUnsignedAccelerated = false integerDotProduct8BitSignedAccelerated = false integerDotProduct8BitMixedSignednessAccelerated = false integerDotProduct4x8BitPackedUnsignedAccelerated = false integerDotProduct4x8BitPackedSignedAccelerated = false integerDotProduct4x8BitPackedMixedSignednessAccelerated = false integerDotProduct16BitUnsignedAccelerated = true integerDotProduct16BitSignedAccelerated = true integerDotProduct16BitMixedSignednessAccelerated = false integerDotProduct32BitUnsignedAccelerated = false integerDotProduct32BitSignedAccelerated = false integerDotProduct32BitMixedSignednessAccelerated = false integerDotProduct64BitUnsignedAccelerated = false integerDotProduct64BitSignedAccelerated = false integerDotProduct64BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating8BitSignedAccelerated = false integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = false integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = true integerDotProductAccumulatingSaturating16BitSignedAccelerated = true integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating32BitSignedAccelerated = false integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = false integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false integerDotProductAccumulatingSaturating64BitSignedAccelerated = false integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false storageTexelBufferOffsetAlignmentBytes = 0x00000004 storageTexelBufferOffsetSingleTexelAlignment = true uniformTexelBufferOffsetAlignmentBytes = 0x00000004 uniformTexelBufferOffsetSingleTexelAlignment = true maxBufferSize = 0x80000000 Device Extensions: count = 137 VK_AMD_buffer_marker : extension revision 1 VK_AMD_calibrated_timestamps : extension revision 1 VK_AMD_device_coherent_memory : extension revision 1 VK_AMD_display_native_hdr : extension revision 1 VK_AMD_draw_indirect_count : extension revision 2 VK_AMD_gcn_shader : extension revision 1 VK_AMD_gpa_interface : extension revision 1 VK_AMD_gpu_shader_half_float : extension revision 2 VK_AMD_gpu_shader_int16 : extension revision 2 VK_AMD_memory_overallocation_behavior : extension revision 1 VK_AMD_mixed_attachment_samples : extension revision 1 VK_AMD_pipeline_compiler_control : extension revision 1 VK_AMD_rasterization_order : extension revision 1 VK_AMD_shader_ballot : extension revision 1 VK_AMD_shader_core_properties : extension revision 2 VK_AMD_shader_core_properties2 : extension revision 1 VK_AMD_shader_early_and_late_fragment_tests : extension revision 1 VK_AMD_shader_explicit_vertex_parameter : extension revision 1 VK_AMD_shader_fragment_mask : extension revision 1 VK_AMD_shader_image_load_store_lod : extension revision 1 VK_AMD_shader_info : extension revision 1 VK_AMD_shader_trinary_minmax : extension revision 1 VK_AMD_texture_gather_bias_lod : extension revision 1 VK_AMD_wave_limits : extension revision 1 VK_EXT_4444_formats : extension revision 1 VK_EXT_calibrated_timestamps : extension revision 2 VK_EXT_color_write_enable : extension revision 1 VK_EXT_conditional_rendering : extension revision 2 VK_EXT_conservative_rasterization : extension revision 1 VK_EXT_custom_border_color : extension revision 12 VK_EXT_depth_clip_control : extension revision 1 VK_EXT_depth_clip_enable : extension revision 1 VK_EXT_depth_range_unrestricted : extension revision 1 VK_EXT_descriptor_indexing : extension revision 2 VK_EXT_extended_dynamic_state : extension revision 1 VK_EXT_extended_dynamic_state2 : extension revision 1 VK_EXT_external_memory_host : extension revision 1 VK_EXT_full_screen_exclusive : extension revision 4 VK_EXT_global_priority : extension revision 2 VK_EXT_global_priority_query : extension revision 1 VK_EXT_hdr_metadata : extension revision 2 VK_EXT_host_query_reset : extension revision 1 VK_EXT_image_robustness : extension revision 1 VK_EXT_image_view_min_lod : extension revision 1 VK_EXT_index_type_uint8 : extension revision 1 VK_EXT_inline_uniform_block : extension revision 1 VK_EXT_line_rasterization : extension revision 1 VK_EXT_load_store_op_none : extension revision 1 VK_EXT_memory_budget : extension revision 1 VK_EXT_memory_priority : extension revision 1 VK_EXT_non_seamless_cube_map : extension revision 1 VK_EXT_pageable_device_local_memory : extension revision 1 VK_EXT_pipeline_creation_cache_control : extension revision 3 VK_EXT_pipeline_creation_feedback : extension revision 1 VK_EXT_primitive_topology_list_restart : extension revision 1 VK_EXT_private_data : extension revision 1 VK_EXT_provoking_vertex : extension revision 1 VK_EXT_queue_family_foreign : extension revision 1 VK_EXT_robustness2 : extension revision 1 VK_EXT_sample_locations : extension revision 1 VK_EXT_sampler_filter_minmax : extension revision 2 VK_EXT_scalar_block_layout : extension revision 1 VK_EXT_separate_stencil_usage : extension revision 1 VK_EXT_shader_atomic_float : extension revision 1 VK_EXT_shader_demote_to_helper_invocation : extension revision 1 VK_EXT_shader_image_atomic_int64 : extension revision 1 VK_EXT_shader_stencil_export : extension revision 1 VK_EXT_shader_subgroup_ballot : extension revision 1 VK_EXT_shader_subgroup_vote : extension revision 1 VK_EXT_shader_viewport_index_layer : extension revision 1 VK_EXT_subgroup_size_control : extension revision 2 VK_EXT_texel_buffer_alignment : extension revision 1 VK_EXT_tooling_info : extension revision 1 VK_EXT_transform_feedback : extension revision 1 VK_EXT_vertex_attribute_divisor : extension revision 3 VK_EXT_ycbcr_image_arrays : extension revision 1 VK_GOOGLE_decorate_string : extension revision 1 VK_GOOGLE_hlsl_functionality1 : extension revision 1 VK_GOOGLE_user_type : extension revision 1 VK_KHR_16bit_storage : extension revision 1 VK_KHR_8bit_storage : extension revision 1 VK_KHR_bind_memory2 : extension revision 1 VK_KHR_buffer_device_address : extension revision 1 VK_KHR_copy_commands2 : extension revision 1 VK_KHR_create_renderpass2 : extension revision 1 VK_KHR_dedicated_allocation : extension revision 3 VK_KHR_depth_stencil_resolve : extension revision 1 VK_KHR_descriptor_update_template : extension revision 1 VK_KHR_device_group : extension revision 4 VK_KHR_draw_indirect_count : extension revision 1 VK_KHR_driver_properties : extension revision 1 VK_KHR_dynamic_rendering : extension revision 1 VK_KHR_external_fence : extension revision 1 VK_KHR_external_fence_win32 : extension revision 1 VK_KHR_external_memory : extension revision 1 VK_KHR_external_memory_win32 : extension revision 1 VK_KHR_external_semaphore : extension revision 1 VK_KHR_external_semaphore_win32 : extension revision 1 VK_KHR_format_feature_flags2 : extension revision 1 VK_KHR_get_memory_requirements2 : extension revision 1 VK_KHR_global_priority : extension revision 1 VK_KHR_image_format_list : extension revision 1 VK_KHR_imageless_framebuffer : extension revision 1 VK_KHR_maintenance1 : extension revision 2 VK_KHR_maintenance2 : extension revision 1 VK_KHR_maintenance3 : extension revision 1 VK_KHR_maintenance4 : extension revision 2 VK_KHR_multiview : extension revision 1 VK_KHR_pipeline_executable_properties : extension revision 1 VK_KHR_pipeline_library : extension revision 1 VK_KHR_push_descriptor : extension revision 2 VK_KHR_relaxed_block_layout : extension revision 1 VK_KHR_sampler_mirror_clamp_to_edge : extension revision 3 VK_KHR_sampler_ycbcr_conversion : extension revision 14 VK_KHR_separate_depth_stencil_layouts : extension revision 1 VK_KHR_shader_atomic_int64 : extension revision 1 VK_KHR_shader_clock : extension revision 1 VK_KHR_shader_draw_parameters : extension revision 1 VK_KHR_shader_float16_int8 : extension revision 1 VK_KHR_shader_float_controls : extension revision 4 VK_KHR_shader_integer_dot_product : extension revision 1 VK_KHR_shader_non_semantic_info : extension revision 1 VK_KHR_shader_subgroup_extended_types : extension revision 1 VK_KHR_shader_subgroup_uniform_control_flow : extension revision 1 VK_KHR_shader_terminate_invocation : extension revision 1 VK_KHR_spirv_1_4 : extension revision 1 VK_KHR_storage_buffer_storage_class : extension revision 1 VK_KHR_swapchain : extension revision 70 VK_KHR_swapchain_mutable_format : extension revision 1 VK_KHR_synchronization2 : extension revision 1 VK_KHR_timeline_semaphore : extension revision 2 VK_KHR_uniform_buffer_standard_layout : extension revision 1 VK_KHR_variable_pointers : extension revision 1 VK_KHR_vulkan_memory_model : extension revision 3 VK_KHR_win32_keyed_mutex : extension revision 1 VK_KHR_workgroup_memory_explicit_layout : extension revision 1 VK_KHR_zero_initialize_workgroup_memory : extension revision 1 VkQueueFamilyProperties: ======================== queueProperties[0]: ------------------- minImageTransferGranularity = (1,1,1) queueCount = 1 queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING timestampValidBits = 64 present support = true VkQueueFamilyGlobalPriorityPropertiesKHR: ----------------------------------------- priorityCount = 2 priorities: count = 16 128 256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queueProperties[1]: ------------------- minImageTransferGranularity = (1,1,1) queueCount = 2 queueFlags = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING timestampValidBits = 64 present support = true VkQueueFamilyGlobalPriorityPropertiesKHR: ----------------------------------------- priorityCount = 4 priorities: count = 16 128 256 512 1024 0 0 0 0 0 0 0 0 0 0 0 0 queueProperties[2]: ------------------- minImageTransferGranularity = (16,16,8) queueCount = 2 queueFlags = QUEUE_TRANSFER | QUEUE_SPARSE_BINDING timestampValidBits = 64 present support = true VkQueueFamilyGlobalPriorityPropertiesKHR: ----------------------------------------- priorityCount = 2 priorities: count = 16 128 256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 VkPhysicalDeviceMemoryProperties: ================================= memoryHeaps: count = 3 memoryHeaps[0]: size = 8304721920 (0x1ef000000) (7.73 GiB) budget = 7467919360 (0x1bd1f6800) (6.96 GiB) usage = 589824 (0x00090000) (576.00 KiB) flags: count = 2 MEMORY_HEAP_DEVICE_LOCAL_BIT MEMORY_HEAP_MULTI_INSTANCE_BIT memoryHeaps[1]: size = 16871587840 (0x3eda00000) (15.71 GiB) budget = 16335630336 (0x3cdadf000) (15.21 GiB) usage = 331776 (0x00051000) (324.00 KiB) flags: None memoryHeaps[2]: size = 268435456 (0x10000000) (256.00 MiB) budget = 241387296 (0x0e634720) (230.20 MiB) usage = 0 (0x00000000) (0.00 B) flags: count = 2 MEMORY_HEAP_DEVICE_LOCAL_BIT MEMORY_HEAP_MULTI_INSTANCE_BIT memoryTypes: count = 8 memoryTypes[0]: heapIndex = 0 propertyFlags = 0x0001: count = 1 MEMORY_PROPERTY_DEVICE_LOCAL_BIT usable for: IMAGE_TILING_OPTIMAL: color images FORMAT_D16_UNORM FORMAT_D32_SFLOAT FORMAT_S8_UINT FORMAT_D16_UNORM_S8_UINT FORMAT_D32_SFLOAT_S8_UINT IMAGE_TILING_LINEAR: color images memoryTypes[1]: heapIndex = 1 propertyFlags = 0x0006: count = 2 MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT usable for: IMAGE_TILING_OPTIMAL: color images FORMAT_D16_UNORM FORMAT_D32_SFLOAT FORMAT_S8_UINT FORMAT_D16_UNORM_S8_UINT FORMAT_D32_SFLOAT_S8_UINT IMAGE_TILING_LINEAR: color images memoryTypes[2]: heapIndex = 2 propertyFlags = 0x0007: count = 3 MEMORY_PROPERTY_DEVICE_LOCAL_BIT MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT usable for: IMAGE_TILING_OPTIMAL: color images FORMAT_D16_UNORM FORMAT_D32_SFLOAT FORMAT_S8_UINT FORMAT_D16_UNORM_S8_UINT FORMAT_D32_SFLOAT_S8_UINT IMAGE_TILING_LINEAR: color images memoryTypes[3]: heapIndex = 1 propertyFlags = 0x000e: count = 3 MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT MEMORY_PROPERTY_HOST_CACHED_BIT usable for: IMAGE_TILING_OPTIMAL: color images FORMAT_D16_UNORM FORMAT_D32_SFLOAT FORMAT_S8_UINT FORMAT_D16_UNORM_S8_UINT FORMAT_D32_SFLOAT_S8_UINT IMAGE_TILING_LINEAR: color images memoryTypes[4]: heapIndex = 0 propertyFlags = 0x00c1: count = 3 MEMORY_PROPERTY_DEVICE_LOCAL_BIT MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD usable for: IMAGE_TILING_OPTIMAL: None IMAGE_TILING_LINEAR: None memoryTypes[5]: heapIndex = 1 propertyFlags = 0x00c6: count = 4 MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD usable for: IMAGE_TILING_OPTIMAL: None IMAGE_TILING_LINEAR: None memoryTypes[6]: heapIndex = 2 propertyFlags = 0x00c7: count = 5 MEMORY_PROPERTY_DEVICE_LOCAL_BIT MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD usable for: IMAGE_TILING_OPTIMAL: None IMAGE_TILING_LINEAR: None memoryTypes[7]: heapIndex = 1 propertyFlags = 0x00ce: count = 5 MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT MEMORY_PROPERTY_HOST_CACHED_BIT MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD usable for: IMAGE_TILING_OPTIMAL: None IMAGE_TILING_LINEAR: None VkPhysicalDeviceFeatures: ========================= robustBufferAccess = true fullDrawIndexUint32 = true imageCubeArray = true independentBlend = true geometryShader = true tessellationShader = true sampleRateShading = true dualSrcBlend = true logicOp = true multiDrawIndirect = true drawIndirectFirstInstance = true depthClamp = true depthBiasClamp = true fillModeNonSolid = true depthBounds = true wideLines = true largePoints = true alphaToOne = false multiViewport = true samplerAnisotropy = true textureCompressionETC2 = false textureCompressionASTC_LDR = false textureCompressionBC = true occlusionQueryPrecise = true pipelineStatisticsQuery = true vertexPipelineStoresAndAtomics = true fragmentStoresAndAtomics = true shaderTessellationAndGeometryPointSize = true shaderImageGatherExtended = true shaderStorageImageExtendedFormats = true shaderStorageImageMultisample = true shaderStorageImageReadWithoutFormat = true shaderStorageImageWriteWithoutFormat = true shaderUniformBufferArrayDynamicIndexing = true shaderSampledImageArrayDynamicIndexing = true shaderStorageBufferArrayDynamicIndexing = true shaderStorageImageArrayDynamicIndexing = true shaderClipDistance = true shaderCullDistance = true shaderFloat64 = true shaderInt64 = true shaderInt16 = true shaderResourceResidency = true shaderResourceMinLod = true sparseBinding = true sparseResidencyBuffer = true sparseResidencyImage2D = true sparseResidencyImage3D = true sparseResidency2Samples = false sparseResidency4Samples = false sparseResidency8Samples = false sparseResidency16Samples = false sparseResidencyAliased = true variableMultisampleRate = true inheritedQueries = true VkPhysicalDevice16BitStorageFeatures: ------------------------------------- storageBuffer16BitAccess = true uniformAndStorageBuffer16BitAccess = true storagePushConstant16 = false storageInputOutput16 = true VkPhysicalDevice4444FormatsFeaturesEXT: --------------------------------------- formatA4R4G4B4 = true formatA4B4G4R4 = true VkPhysicalDevice8BitStorageFeatures: ------------------------------------ storageBuffer8BitAccess = true uniformAndStorageBuffer8BitAccess = true storagePushConstant8 = false VkPhysicalDeviceBufferDeviceAddressFeatures: -------------------------------------------- bufferDeviceAddress = true bufferDeviceAddressCaptureReplay = true bufferDeviceAddressMultiDevice = true VkPhysicalDeviceColorWriteEnableFeaturesEXT: -------------------------------------------- colorWriteEnable = true VkPhysicalDeviceConditionalRenderingFeaturesEXT: ------------------------------------------------ conditionalRendering = true inheritedConditionalRendering = true VkPhysicalDeviceCustomBorderColorFeaturesEXT: --------------------------------------------- customBorderColors = true customBorderColorWithoutFormat = true VkPhysicalDeviceDepthClipControlFeaturesEXT: -------------------------------------------- depthClipControl = true VkPhysicalDeviceDepthClipEnableFeaturesEXT: ------------------------------------------- depthClipEnable = true VkPhysicalDeviceDescriptorIndexingFeatures: ------------------------------------------- shaderInputAttachmentArrayDynamicIndexing = true shaderUniformTexelBufferArrayDynamicIndexing = true shaderStorageTexelBufferArrayDynamicIndexing = true shaderUniformBufferArrayNonUniformIndexing = true shaderSampledImageArrayNonUniformIndexing = true shaderStorageBufferArrayNonUniformIndexing = true shaderStorageImageArrayNonUniformIndexing = true shaderInputAttachmentArrayNonUniformIndexing = true shaderUniformTexelBufferArrayNonUniformIndexing = true shaderStorageTexelBufferArrayNonUniformIndexing = true descriptorBindingUniformBufferUpdateAfterBind = true descriptorBindingSampledImageUpdateAfterBind = true descriptorBindingStorageImageUpdateAfterBind = true descriptorBindingStorageBufferUpdateAfterBind = true descriptorBindingUniformTexelBufferUpdateAfterBind = true descriptorBindingStorageTexelBufferUpdateAfterBind = true descriptorBindingUpdateUnusedWhilePending = true descriptorBindingPartiallyBound = true descriptorBindingVariableDescriptorCount = true runtimeDescriptorArray = true VkPhysicalDeviceDynamicRenderingFeatures: ----------------------------------------- dynamicRendering = true VkPhysicalDeviceExtendedDynamicState2FeaturesEXT: ------------------------------------------------- extendedDynamicState2 = true extendedDynamicState2LogicOp = false extendedDynamicState2PatchControlPoints = false VkPhysicalDeviceExtendedDynamicStateFeaturesEXT: ------------------------------------------------ extendedDynamicState = true VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR: ----------------------------------------------- globalPriorityQuery = true VkPhysicalDeviceHostQueryResetFeatures: --------------------------------------- hostQueryReset = true VkPhysicalDeviceImageRobustnessFeatures: ---------------------------------------- robustImageAccess = true VkPhysicalDeviceImageViewMinLodFeaturesEXT: ------------------------------------------- minLod = true VkPhysicalDeviceImagelessFramebufferFeatures: --------------------------------------------- imagelessFramebuffer = true VkPhysicalDeviceIndexTypeUint8FeaturesEXT: ------------------------------------------ indexTypeUint8 = true VkPhysicalDeviceInlineUniformBlockFeatures: ------------------------------------------- inlineUniformBlock = true descriptorBindingInlineUniformBlockUpdateAfterBind = true VkPhysicalDeviceLineRasterizationFeaturesEXT: --------------------------------------------- rectangularLines = false bresenhamLines = true smoothLines = false stippledRectangularLines = false stippledBresenhamLines = true stippledSmoothLines = false VkPhysicalDeviceMaintenance4Features: ------------------------------------- maintenance4 = true VkPhysicalDeviceMemoryPriorityFeaturesEXT: ------------------------------------------ memoryPriority = true VkPhysicalDeviceMultiviewFeatures: ---------------------------------- multiview = true multiviewGeometryShader = false multiviewTessellationShader = true VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT: ----------------------------------------------------- pageableDeviceLocalMemory = true VkPhysicalDevicePipelineCreationCacheControlFeatures: ----------------------------------------------------- pipelineCreationCacheControl = true VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR: -------------------------------------------------------- pipelineExecutableInfo = true VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT: -------------------------------------------------------- primitiveTopologyListRestart = true primitiveTopologyPatchListRestart = false VkPhysicalDevicePrivateDataFeatures: ------------------------------------ privateData = true VkPhysicalDeviceProtectedMemoryFeatures: ---------------------------------------- protectedMemory = false VkPhysicalDeviceProvokingVertexFeaturesEXT: ------------------------------------------- provokingVertexLast = true transformFeedbackPreservesProvokingVertex = true VkPhysicalDeviceRobustness2FeaturesEXT: --------------------------------------- robustBufferAccess2 = true robustImageAccess2 = true nullDescriptor = true VkPhysicalDeviceSamplerYcbcrConversionFeatures: ----------------------------------------------- samplerYcbcrConversion = true VkPhysicalDeviceScalarBlockLayoutFeatures: ------------------------------------------ scalarBlockLayout = true VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures: ---------------------------------------------------- separateDepthStencilLayouts = true VkPhysicalDeviceShaderAtomicFloatFeaturesEXT: --------------------------------------------- shaderBufferFloat32Atomics = true shaderBufferFloat32AtomicAdd = false shaderBufferFloat64Atomics = true shaderBufferFloat64AtomicAdd = false shaderSharedFloat32Atomics = true shaderSharedFloat32AtomicAdd = false shaderSharedFloat64Atomics = true shaderSharedFloat64AtomicAdd = false shaderImageFloat32Atomics = true shaderImageFloat32AtomicAdd = false sparseImageFloat32Atomics = true sparseImageFloat32AtomicAdd = false VkPhysicalDeviceShaderAtomicInt64Features: ------------------------------------------ shaderBufferInt64Atomics = true shaderSharedInt64Atomics = true VkPhysicalDeviceShaderClockFeaturesKHR: --------------------------------------- shaderSubgroupClock = true shaderDeviceClock = true VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures: ------------------------------------------------------- shaderDemoteToHelperInvocation = true VkPhysicalDeviceShaderDrawParametersFeatures: --------------------------------------------- shaderDrawParameters = true VkPhysicalDeviceShaderFloat16Int8Features: ------------------------------------------ shaderFloat16 = true shaderInt8 = true VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT: -------------------------------------------------- shaderImageInt64Atomics = true sparseImageInt64Atomics = true VkPhysicalDeviceShaderIntegerDotProductFeatures: ------------------------------------------------ shaderIntegerDotProduct = true VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures: ---------------------------------------------------- shaderSubgroupExtendedTypes = true VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR: ------------------------------------------------------------ shaderSubgroupUniformControlFlow = true VkPhysicalDeviceShaderTerminateInvocationFeatures: -------------------------------------------------- shaderTerminateInvocation = true VkPhysicalDeviceSubgroupSizeControlFeatures: -------------------------------------------- subgroupSizeControl = true computeFullSubgroups = true VkPhysicalDeviceSynchronization2Features: ----------------------------------------- synchronization2 = true VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT: ------------------------------------------------ texelBufferAlignment = true VkPhysicalDeviceTextureCompressionASTCHDRFeatures: -------------------------------------------------- textureCompressionASTC_HDR = false VkPhysicalDeviceTimelineSemaphoreFeatures: ------------------------------------------ timelineSemaphore = true VkPhysicalDeviceTransformFeedbackFeaturesEXT: --------------------------------------------- transformFeedback = true geometryStreams = true VkPhysicalDeviceUniformBufferStandardLayoutFeatures: ---------------------------------------------------- uniformBufferStandardLayout = true VkPhysicalDeviceVariablePointersFeatures: ----------------------------------------- variablePointersStorageBuffer = true variablePointers = true VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT: -------------------------------------------------- vertexAttributeInstanceRateDivisor = true vertexAttributeInstanceRateZeroDivisor = true VkPhysicalDeviceVulkan11Features: --------------------------------- storageBuffer16BitAccess = true uniformAndStorageBuffer16BitAccess = true storagePushConstant16 = false storageInputOutput16 = true multiview = true multiviewGeometryShader = false multiviewTessellationShader = true variablePointersStorageBuffer = true variablePointers = true protectedMemory = false samplerYcbcrConversion = true shaderDrawParameters = true VkPhysicalDeviceVulkan12Features: --------------------------------- samplerMirrorClampToEdge = true drawIndirectCount = true storageBuffer8BitAccess = true uniformAndStorageBuffer8BitAccess = true storagePushConstant8 = false shaderBufferInt64Atomics = true shaderSharedInt64Atomics = true shaderFloat16 = true shaderInt8 = true descriptorIndexing = true shaderInputAttachmentArrayDynamicIndexing = true shaderUniformTexelBufferArrayDynamicIndexing = true shaderStorageTexelBufferArrayDynamicIndexing = true shaderUniformBufferArrayNonUniformIndexing = true shaderSampledImageArrayNonUniformIndexing = true shaderStorageBufferArrayNonUniformIndexing = true shaderStorageImageArrayNonUniformIndexing = true shaderInputAttachmentArrayNonUniformIndexing = true shaderUniformTexelBufferArrayNonUniformIndexing = true shaderStorageTexelBufferArrayNonUniformIndexing = true descriptorBindingUniformBufferUpdateAfterBind = true descriptorBindingSampledImageUpdateAfterBind = true descriptorBindingStorageImageUpdateAfterBind = true descriptorBindingStorageBufferUpdateAfterBind = true descriptorBindingUniformTexelBufferUpdateAfterBind = true descriptorBindingStorageTexelBufferUpdateAfterBind = true descriptorBindingUpdateUnusedWhilePending = true descriptorBindingPartiallyBound = true descriptorBindingVariableDescriptorCount = true runtimeDescriptorArray = true samplerFilterMinmax = true scalarBlockLayout = true imagelessFramebuffer = true uniformBufferStandardLayout = true shaderSubgroupExtendedTypes = true separateDepthStencilLayouts = true hostQueryReset = true timelineSemaphore = true bufferDeviceAddress = true bufferDeviceAddressCaptureReplay = true bufferDeviceAddressMultiDevice = true vulkanMemoryModel = true vulkanMemoryModelDeviceScope = true vulkanMemoryModelAvailabilityVisibilityChains = false shaderOutputViewportIndex = true shaderOutputLayer = true subgroupBroadcastDynamicId = true VkPhysicalDeviceVulkan13Features: --------------------------------- robustImageAccess = true inlineUniformBlock = true descriptorBindingInlineUniformBlockUpdateAfterBind = true pipelineCreationCacheControl = true privateData = true shaderDemoteToHelperInvocation = true shaderTerminateInvocation = true subgroupSizeControl = true computeFullSubgroups = true synchronization2 = true textureCompressionASTC_HDR = false shaderZeroInitializeWorkgroupMemory = true dynamicRendering = true shaderIntegerDotProduct = true maintenance4 = true VkPhysicalDeviceVulkanMemoryModelFeatures: ------------------------------------------ vulkanMemoryModel = true vulkanMemoryModelDeviceScope = true vulkanMemoryModelAvailabilityVisibilityChains = false VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR: --------------------------------------------------------- workgroupMemoryExplicitLayout = true workgroupMemoryExplicitLayoutScalarBlockLayout = true workgroupMemoryExplicitLayout8BitAccess = true workgroupMemoryExplicitLayout16BitAccess = true VkPhysicalDeviceYcbcrImageArraysFeaturesEXT: -------------------------------------------- ycbcrImageArrays = true VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures: ------------------------------------------------------ shaderZeroInitializeWorkgroupMemory = true ```
bruhmoment21 commented 1 year ago

is overwolf overlay loaded? are these 2 files loaded automatically in your games? "ow-vulkan-overlay64.dll" or "ow-vulkan-vulkan64.dll"

ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file E:\Programfiler (x86)\Overwolf\0.187.1.13\ow-vulkan-overlay64.json
ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file E:\Programfiler (x86)\Overwolf\0.187.1.13\ow-graphics-vulkan64.json
FoxMaccloud commented 1 year ago

The overwolf overlay is not loaded. The E:\ driver is not even in my computer 😅

bruhmoment21 commented 1 year ago

still have no idea other than to use another machine

MarkEcza commented 1 year ago

The issue is caused by this QueueSubmit image I'm not entirely sure but my guess is it's related to fences.

SteamKaibz commented 5 months ago

Would it make sens to assume the issue could be related to Amd card/drivers? i just noticed many users of a mod i'm working on that uses this framework are having the same issue. Side note, If anyone here with vulkan knowledge would be willing to have a look, would really appreciate it: https://www.nexusmods.com/doometernal/mods/1255 https://github.com/SteamKaibz/DE_AdvancedOptionsModPublic

belazr commented 3 months ago

Just gonna copy and past my answer from the other thread.

I have found two issues with the Vulkan hook: First there is an issue with the semaphores of vkQueueSubmit. This leads to the application hanging.

            VkSubmitInfo info = { };
            info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
            info.commandBufferCount = 1;
            info.pCommandBuffers = &fd->CommandBuffer;

            info.pWaitDstStageMask = stages_wait.data( );
            info.waitSemaphoreCount = waitSemaphoresCount;
            info.pWaitSemaphores = pPresentInfo->pWaitSemaphores;

            info.signalSemaphoreCount = 1;
            info.pSignalSemaphores = &fsd->ImageAcquiredSemaphore;

The queue waits for the wait semaphores of vkQueuePresentKHR pPresentInfo->pWaitSemaphores but doesn't signal them again, so the original call of vkQueuePresentKHR just gets stuck on waiting for its original wait semaphores.

I have fixed this by just setting the signal semaphores of vkQueueSubmit to the wait semaphores. This way it first waits then executes its bit and then signals them so vkQueuePresentKHR can do its part when the hook command buffer was executed.

            VkSubmitInfo info = { };
            info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
            info.commandBufferCount = 1;
            info.pCommandBuffers = &fd->CommandBuffer;

            info.pWaitDstStageMask = stages_wait.data( );
            info.waitSemaphoreCount = waitSemaphoresCount;
            info.pWaitSemaphores = pPresentInfo->pWaitSemaphores;

            info.signalSemaphoreCount = waitSemaphoresCount;
            info.pSignalSemaphores = pPresentInfo->pWaitSemaphores;

I think there is really no need for the ImageAcquiredSemaphore and RenderCompleteSemaphore in the hook. They are only necessary for a stand alone ImGui application.

The second issue is that the dimensions of the frame buffer are not set at all. Strangely for me it still worked on NVIDIA cards but not on AMD cards. So the issue seems more like NVIDIA drivers/Vulkan runtimes are a bit more forgiving, dunno... I have fixed this by calling GetClientRect if g_ImageExtent is still 0 and then setting the correct width and height in the VkFramebufferCreateInfo.

static void RenderImGui_Vulkan(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
    if (!g_Device || H::bShuttingDown)
        return;

    if (g_ImageExtent.width == 0 || g_ImageExtent.height == 0) {
        // We don't know the window size the first time so we just query the window handle.
        RECT rect{};
        GetClientRect(g_Hwnd, &rect);

        g_ImageExtent.width = rect.right - rect.left;
        g_ImageExtent.height = rect.bottom - rect.top;
    }

    VkQueue graphicQueue = VK_NULL_HANDLE;
    const bool queueSupportsGraphic = DoesQueueSupportGraphic(queue, &graphicQueue);

    Menu::InitializeContext(g_Hwnd);

    for (uint32_t i = 0; i < pPresentInfo->swapchainCount; ++i) {
...

and

        VkFramebufferCreateInfo info = { };
        info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
        info.renderPass = g_RenderPass;
        info.attachmentCount = 1;
        info.pAttachments = attachment;
        info.width = g_ImageExtent.width;
        info.height = g_ImageExtent.height;
        info.layers = 1;

I have addressed this and other issues in my repository where I wrote everything from scratch and without ImGu if you are looking for an alternative implementation:

https://github.com/belazr/EasyWinHax

Hope this helps!