diff --git a/Common/GraphicsContext.h b/Common/GraphicsContext.h
index 9ed4f21d77..f0f419cb1e 100644
--- a/Common/GraphicsContext.h
+++ b/Common/GraphicsContext.h
@@ -22,6 +22,9 @@ public:
virtual void Resize() = 0;
+ // Needs casting to the appropriate type, unfortunately. Should find a better solution..
+ virtual void *GetAPIContext() { return nullptr; }
+
virtual Thin3DContext *CreateThin3DContext() = 0;
};
diff --git a/Core/System.cpp b/Core/System.cpp
index 0df10e3d91..bc7e20b8b3 100644
--- a/Core/System.cpp
+++ b/Core/System.cpp
@@ -386,7 +386,10 @@ bool PSP_InitStart(const CoreParameter &coreParam, std::string *error_string) {
#else
INFO_LOG(BOOT, "PPSSPP %s", PPSSPP_GIT_VERSION);
#endif
+
+ GraphicsContext *temp = coreParameter.graphicsContext;
coreParameter = coreParam;
+ coreParameter.graphicsContext = temp;
coreParameter.errorString = "";
pspIsIniting = true;
diff --git a/GPU/GPU.cpp b/GPU/GPU.cpp
index 5088b1108c..dc1b9b9e3c 100644
--- a/GPU/GPU.cpp
+++ b/GPU/GPU.cpp
@@ -15,6 +15,7 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
+#include "Common/GraphicsContext.h"
#include "Core/Core.h"
#include "GPU/GPU.h"
@@ -59,7 +60,9 @@ bool GPU_Init(GraphicsContext *ctx) {
#endif
break;
case GPU_VULKAN:
- SetGPU(new GPU_Vulkan(nullptr));
+ {
+ SetGPU(new GPU_Vulkan(ctx));
+ }
break;
}
diff --git a/GPU/GPU.vcxproj b/GPU/GPU.vcxproj
index 9904be92b8..2cbf6a85d7 100644
--- a/GPU/GPU.vcxproj
+++ b/GPU/GPU.vcxproj
@@ -333,6 +333,7 @@
+
diff --git a/GPU/GPU.vcxproj.filters b/GPU/GPU.vcxproj.filters
index c48c83ecf7..7b13b92862 100644
--- a/GPU/GPU.vcxproj.filters
+++ b/GPU/GPU.vcxproj.filters
@@ -407,5 +407,6 @@
+
\ No newline at end of file
diff --git a/GPU/GPUState.h b/GPU/GPUState.h
index 59671d1dd4..bd0c853095 100644
--- a/GPU/GPUState.h
+++ b/GPU/GPUState.h
@@ -456,6 +456,7 @@ enum {
GPU_SUPPORTS_BLEND_MINMAX = FLAG_BIT(4),
GPU_SUPPORTS_LOGIC_OP = FLAG_BIT(5),
GPU_USE_DEPTH_RANGE_HACK = FLAG_BIT(6),
+ GPU_SUPPORTS_WIDE_LINES = FLAG_BIT(7),
GPU_SUPPORTS_ACCURATE_DEPTH = FLAG_BIT(17),
GPU_SUPPORTS_VAO = FLAG_BIT(18),
GPU_SUPPORTS_ANY_COPY_IMAGE = FLAG_BIT(19),
diff --git a/GPU/Vulkan/DepalettizeShaderVulkan.cpp b/GPU/Vulkan/DepalettizeShaderVulkan.cpp
new file mode 100644
index 0000000000..2de073cabe
--- /dev/null
+++ b/GPU/Vulkan/DepalettizeShaderVulkan.cpp
@@ -0,0 +1,47 @@
+// Copyright (c) 2014- PPSSPP Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0 or later versions.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY{} without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official git repository and contact information can be found at
+// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
+
+
+#include "GPU/Vulkan/DepalettizeShaderVulkan.h"
+
+DepalShaderCacheVulkan::DepalShaderCacheVulkan() {
+
+}
+
+DepalShaderCacheVulkan::~DepalShaderCacheVulkan() {
+
+}
+
+DepalShaderVulkan *DepalShaderCacheVulkan::GetDepalettizeShader(GEPaletteFormat clutFormat, GEBufferFormat pixelFormat) {
+ return nullptr;
+}
+
+VulkanTexture *DepalShaderCacheVulkan::GetClutTexture(GEPaletteFormat clutFormat, const u32 clutHash, u32 *rawClut) {
+ return nullptr;
+}
+
+void DepalShaderCacheVulkan::Clear() {}
+
+void DepalShaderCacheVulkan::Decimate() {}
+
+u32 DepalShaderCacheVulkan::GenerateShaderID(GEPaletteFormat clutFormat, GEBufferFormat pixelFormat) {
+ return 0;
+}
+
+bool DepalShaderCacheVulkan::CreateVertexShader() {
+ return false;
+}
diff --git a/GPU/Vulkan/DepalettizeShaderVulkan.h b/GPU/Vulkan/DepalettizeShaderVulkan.h
index ccee8ed7e9..63faa1c8b6 100644
--- a/GPU/Vulkan/DepalettizeShaderVulkan.h
+++ b/GPU/Vulkan/DepalettizeShaderVulkan.h
@@ -1,4 +1,3 @@
-#pragma once
// Copyright (c) 2014- PPSSPP Project.
// This program is free software: you can redistribute it and/or modify
@@ -16,12 +15,14 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
+#pragma once
+
#include