[UE5.1.1] Supported Vulkan RHI returns no supported screen resolutions.

Before setting my render hardware interface to Vulkan, I check if Vulkan is supported:

FModuleManager::LoadModuleChecked<IDynamicRHIModule>(TEXT("VulkanRHI")).IsSupported()

Then I confirm Vulkan is the used RHI:

# Engine.ini
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_Vulkan

Next I start my project in PIE and I assert because one of the methods I call finds not a single supported screen resolution while using Vulkan:

verify(GDynamicRHI->RHIGetAvailableResolutions(ResolutionsArray, true))

I use a GXT 1070TI with the latest drivers. Are the above methods simply fragile? I can’t risk having an X amount of devices asserting because no resolutions are detected.

*Edit DX11 and DX12 work absolutely fine and return all resolutions. I am going to assume this is a bug on UE’s part, anyone can confirm?

Since setting an RHI requires a full app restart and testing for available resolutions requires the RHI to be loaded… This is breaking.

Wait what, it’s not been implemented?

void FVulkanDynamicRHI::RHIGetSupportedResolution( uint32 &Width, uint32 &Height )
{
}

bool FVulkanDynamicRHI::RHIGetAvailableResolutions(FScreenResolutionArray& Resolutions, bool bIgnoreRefreshRate)
{
	return false;
}

Bit late for Aprils fools guys!

Can't change resolution using Vulkan ??

When will VulkanRHI be updated to return screen resolutions?

heya, did you find a solution?

It’s not implemented in engine code, no solution

This is kind of ridiculous, are there really no workarounds in C++? I have yet to find any way to do this while using vulkan

1 Like

No, they like not implementing and breaking things.

updates?

Not on 5.2.

I’m still locking to the one resolution reported by GameUserSettings on Vulkan which is pathetic.

	FS_SupportedScreenResolutions SupportedScreenResolutions;

	if (GetCurrentRenderHardwareInterface() == E_RHIMode::RHI_VULKAN) {
		// Vulkan for whatever reason does not implement RHIGetAvailableResolutions, making it an odd one.
		// https://forums.unrealengine.com/t/ue5-1-1-supported-vulkan-rhi-returns-no-supported-screen-resolutions/873006
		SupportedScreenResolutions.Resolutions.Add(GameUserSettings->GetScreenResolution());
		SupportedScreenResolutions.CurrentResolutionIndex = 0;
	}

I’ve made a plugin that generates resolutions based on the monitor’s aspect ratio. It’s not perfect, but it’s better than nothing

You can download it from Github or Itch

Confirmed this is not implemented in 5.3.2 either.

Is this implemented in later versions?