Stub Vulkan backend support

A lot of the architecture of the emulator here does not allow for vulkan
to initialize easily since it involves a bit of data to be exchanged
between SDL and Vulkan. This commit just adds the foundational linkage
and library code for vulkan support.
This commit is contained in:
Wunkolo 2023-07-18 20:29:26 -07:00
parent c98e5fb631
commit d2241a25bc
7 changed files with 102 additions and 3 deletions

View file

@ -12,6 +12,9 @@
#ifdef PANDA3DS_ENABLE_OPENGL
#include "renderer_gl/renderer_gl.hpp"
#endif
#ifdef PANDA3DS_ENABLE_VULKAN
#include "renderer_vk/renderer_vk.hpp"
#endif
using namespace Floats;
@ -38,11 +41,12 @@ GPU::GPU(Memory& mem, EmulatorConfig& config) : mem(mem), config(config) {
break;
}
#endif
#ifdef PANDA3DS_ENABLE_VULKAN
case RendererType::Vulkan: {
Helpers::panic("Vulkan is not supported yet, please pick another renderer");
renderer.reset(new RendererVK(*this, regs));
break;
}
#endif
default: {
Helpers::panic("Rendering backend not supported: %s", Renderer::typeToString(config.rendererType));
break;

View file

@ -0,0 +1,19 @@
#include "renderer_vk/renderer_vk.hpp"
RendererVK::RendererVK(GPU& gpu, const std::array<u32, regNum>& internalRegs) : Renderer(gpu, internalRegs) {}
RendererVK::~RendererVK() {}
void RendererVK::reset() {}
void RendererVK::display() {}
void RendererVK::initGraphicsContext() { static vk::DynamicLoader dl; }
void RendererVK::clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) {}
void RendererVK::displayTransfer(u32 inputAddr, u32 outputAddr, u32 inputSize, u32 outputSize, u32 flags) {}
void RendererVK::drawVertices(PICA::PrimType primType, std::span<const PICA::Vertex> vertices) {}
void RendererVK::screenshot(const std::string& name) {}

View file

@ -0,0 +1,3 @@
#include "renderer_vk/vulkan_api.hpp"
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE;