diff --git a/rpcs3/Emu/RSX/GSRender.h b/rpcs3/Emu/RSX/GSRender.h index d82048d8b9..2ebffee14a 100644 --- a/rpcs3/Emu/RSX/GSRender.h +++ b/rpcs3/Emu/RSX/GSRender.h @@ -36,7 +36,8 @@ enum class frame_type { Null, OpenGL, - DX12 + DX12, + Vulkan }; class GSRender : public rsx::thread diff --git a/rpcs3/config.h b/rpcs3/config.h index d1ffdfd0db..bb88f6547d 100644 --- a/rpcs3/config.h +++ b/rpcs3/config.h @@ -50,7 +50,8 @@ enum class rsx_renderer_type { Null, OpenGL, - DX12 + DX12, + Vulkan }; enum class rsx_aspect_ratio @@ -93,6 +94,7 @@ namespace convert case rsx_renderer_type::Null: return "Null"; case rsx_renderer_type::OpenGL: return "OpenGL"; case rsx_renderer_type::DX12: return "DX12"; + case rsx_renderer_type::Vulkan: return "Vulkan"; } return "Unknown"; @@ -113,6 +115,9 @@ namespace convert if (value == "DX12") return rsx_renderer_type::DX12; + if (value == "Vulkan") + return rsx_renderer_type::Vulkan; + return rsx_renderer_type::Null; } }; diff --git a/rpcs3/rpcs3.cpp b/rpcs3/rpcs3.cpp index ef79af2391..899bea4107 100644 --- a/rpcs3/rpcs3.cpp +++ b/rpcs3/rpcs3.cpp @@ -32,6 +32,7 @@ #include "Emu/RSX/Null/NullGSRender.h" #include "Emu/RSX/GL/GLGSRender.h" +#include "Emu/RSX/VK/VKGSRender.h" #include "Emu/Audio/Null/NullAudioThread.h" #include "Emu/Audio/AL/OpenALThread.h" #ifdef _MSC_VER @@ -129,6 +130,7 @@ bool Rpcs3App::OnInit() case frame_type::OpenGL: return std::make_unique(); case frame_type::DX12: return std::make_unique("DirectX 12"); case frame_type::Null: return std::make_unique("Null"); + case frame_type::Vulkan: return std::make_unique("Vulkan"); } throw EXCEPTION("Invalid Frame Type"); @@ -142,6 +144,7 @@ bool Rpcs3App::OnInit() case rsx_renderer_type::OpenGL: return std::make_shared(); #ifdef _MSC_VER case rsx_renderer_type::DX12: return std::make_shared(); + case rsx_renderer_type::Vulkan: return std::make_shared<>(VKGSRender); #endif default: throw EXCEPTION("Invalid GS Renderer %d", (int)mode); }