Add vulkan GS backend to project

This commit is contained in:
kd-11 2016-02-21 18:49:27 +03:00
commit d287ba44ce
3 changed files with 11 additions and 2 deletions

View file

@ -36,7 +36,8 @@ enum class frame_type
{ {
Null, Null,
OpenGL, OpenGL,
DX12 DX12,
Vulkan
}; };
class GSRender : public rsx::thread class GSRender : public rsx::thread

View file

@ -50,7 +50,8 @@ enum class rsx_renderer_type
{ {
Null, Null,
OpenGL, OpenGL,
DX12 DX12,
Vulkan
}; };
enum class rsx_aspect_ratio enum class rsx_aspect_ratio
@ -93,6 +94,7 @@ namespace convert
case rsx_renderer_type::Null: return "Null"; case rsx_renderer_type::Null: return "Null";
case rsx_renderer_type::OpenGL: return "OpenGL"; case rsx_renderer_type::OpenGL: return "OpenGL";
case rsx_renderer_type::DX12: return "DX12"; case rsx_renderer_type::DX12: return "DX12";
case rsx_renderer_type::Vulkan: return "Vulkan";
} }
return "Unknown"; return "Unknown";
@ -113,6 +115,9 @@ namespace convert
if (value == "DX12") if (value == "DX12")
return rsx_renderer_type::DX12; return rsx_renderer_type::DX12;
if (value == "Vulkan")
return rsx_renderer_type::Vulkan;
return rsx_renderer_type::Null; return rsx_renderer_type::Null;
} }
}; };

View file

@ -32,6 +32,7 @@
#include "Emu/RSX/Null/NullGSRender.h" #include "Emu/RSX/Null/NullGSRender.h"
#include "Emu/RSX/GL/GLGSRender.h" #include "Emu/RSX/GL/GLGSRender.h"
#include "Emu/RSX/VK/VKGSRender.h"
#include "Emu/Audio/Null/NullAudioThread.h" #include "Emu/Audio/Null/NullAudioThread.h"
#include "Emu/Audio/AL/OpenALThread.h" #include "Emu/Audio/AL/OpenALThread.h"
#ifdef _MSC_VER #ifdef _MSC_VER
@ -129,6 +130,7 @@ bool Rpcs3App::OnInit()
case frame_type::OpenGL: return std::make_unique<GLGSFrame>(); case frame_type::OpenGL: return std::make_unique<GLGSFrame>();
case frame_type::DX12: return std::make_unique<GSFrame>("DirectX 12"); case frame_type::DX12: return std::make_unique<GSFrame>("DirectX 12");
case frame_type::Null: return std::make_unique<GSFrame>("Null"); case frame_type::Null: return std::make_unique<GSFrame>("Null");
case frame_type::Vulkan: return std::make_unique<GSFrame>("Vulkan");
} }
throw EXCEPTION("Invalid Frame Type"); throw EXCEPTION("Invalid Frame Type");
@ -142,6 +144,7 @@ bool Rpcs3App::OnInit()
case rsx_renderer_type::OpenGL: return std::make_shared<GLGSRender>(); case rsx_renderer_type::OpenGL: return std::make_shared<GLGSRender>();
#ifdef _MSC_VER #ifdef _MSC_VER
case rsx_renderer_type::DX12: return std::make_shared<D3D12GSRender>(); case rsx_renderer_type::DX12: return std::make_shared<D3D12GSRender>();
case rsx_renderer_type::Vulkan: return std::make_shared<>(VKGSRender);
#endif #endif
default: throw EXCEPTION("Invalid GS Renderer %d", (int)mode); default: throw EXCEPTION("Invalid GS Renderer %d", (int)mode);
} }