Skip to content
Snippets Groups Projects
Select Git revision
  • 864ddc524fbc9722c401173b836a71337c130c49
  • 5.4 default protected
  • dev/5.6
  • dev/5.5
  • dev/5.4
  • dev/5.3_downgrade
  • 5.3 protected
  • feature/present_barrier
8 results

RWTHVRCluster.cpp

Blame
  • RWTHVRCluster.cpp 2.11 KiB
    #include "RWTHVRCluster.h"
    
    
    #include "IVulkanDynamicRHI.h"
    
    #define LOCTEXT_NAMESPACE "FRWTHVRClusterModule"
    
    void FRWTHVRClusterModule::StartupModule()
    {
    	ClusterConsole.Register();
    
    	if (FApp::CanEverRender())
    	{
    #if PLATFORM_WINDOWS
    		TCHAR const* DynamicRHIModuleName = GetSelectedDynamicRHIModuleName(false);
    #elif PLATFORM_LINUX
    		TCHAR const* DynamicRHIModuleName = TEXT("VulkanRHI");
    #endif
    
    		if (FString("VulkanRHI") == FString(DynamicRHIModuleName))
    		{
    			TArray<ANSICHAR const*> const ExtensionsToAdd{VK_NV_PRESENT_BARRIER_EXTENSION_NAME};
    			TArray<ANSICHAR const*> const InstanceExtensionsToAdd{VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME};
    
    			IVulkanDynamicRHI::AddEnabledDeviceExtensionsAndLayers(ExtensionsToAdd, TArray<ANSICHAR const*>());
    			IVulkanDynamicRHI::AddEnabledInstanceExtensionsAndLayers({InstanceExtensionsToAdd}, TArray<ANSICHAR const*>());
    		}
    		/*
    		FCoreDelegates::OnPostEngineInit.AddLambda(
    			[]()
    			{
    				switch (GDynamicRHI->GetInterfaceType())
    				{
    				case ERHIInterfaceType::Vulkan:
    					FAVDevice::GetHardwareDevice()->SetContext<FVideoContextVulkan>(MakeShared<FVideoContextVulkan>(
    						GetIVulkanDynamicRHI()->RHIGetVkInstance(), GetIVulkanDynamicRHI()->RHIGetVkDevice(),
    						GetIVulkanDynamicRHI()->RHIGetVkPhysicalDevice(), [](char const* Name) -> PFN_vkVoidFunction
    						{ return (PFN_vkVoidFunction)GetIVulkanDynamicRHI()->RHIGetVkDeviceProcAddr(Name); }));
    
    					break;
    #if PLATFORM_WINDOWS
    				case ERHIInterfaceType::D3D11:
    					FAVDevice::GetHardwareDevice()->SetContext<FVideoContextD3D11>(
    						MakeShared<FVideoContextD3D11>(GetID3D11DynamicRHI()->RHIGetDevice()));
    
    					break;
    				case ERHIInterfaceType::D3D12:
    					FAVDevice::GetHardwareDevice()->SetContext<FVideoContextD3D12>(
    						MakeShared<FVideoContextD3D12>(GetID3D12DynamicRHI()->RHIGetDevice(0)));
    
    					break;
    #endif
    				default:
    					break;
    				}
    
    				FAVDevice::GetHardwareDevice()->SetContext<FVideoContextRHI>(MakeShared<FVideoContextRHI>());
    			});
    			*/
    	}
    }
    
    void FRWTHVRClusterModule::ShutdownModule() { ClusterConsole.Unregister(); }
    
    #undef LOCTEXT_NAMESPACE
    
    IMPLEMENT_MODULE(FRWTHVRClusterModule, RWTHVRCluster)