diff --git a/CMakeLists.txt b/CMakeLists.txt index bd958b7090..adfad87ca3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1278,8 +1278,6 @@ set(GPU_VULKAN GPU/Vulkan/TextureCacheVulkan.h GPU/Vulkan/TextureScalerVulkan.cpp GPU/Vulkan/TextureScalerVulkan.h - GPU/Vulkan/VertexShaderGeneratorVulkan.cpp - GPU/Vulkan/VertexShaderGeneratorVulkan.h GPU/Vulkan/VulkanUtil.cpp GPU/Vulkan/VulkanUtil.h ) diff --git a/GPU/Common/ShaderCommon.h b/GPU/Common/ShaderCommon.h index 4fc01fb715..0c6d8e53ad 100644 --- a/GPU/Common/ShaderCommon.h +++ b/GPU/Common/ShaderCommon.h @@ -31,8 +31,6 @@ enum ShaderLanguage { HLSL_DX9, HLSL_D3D11, HLSL_D3D11_LEVEL9, - - TEST_GLSL_VULKAN, }; enum DebugShaderType { diff --git a/GPU/GPU.vcxproj b/GPU/GPU.vcxproj index 90e56a8dbd..e63b0babdb 100644 --- a/GPU/GPU.vcxproj +++ b/GPU/GPU.vcxproj @@ -483,7 +483,6 @@ - @@ -674,7 +673,6 @@ - diff --git a/GPU/GPU.vcxproj.filters b/GPU/GPU.vcxproj.filters index daea75b1a3..4df5470e9b 100644 --- a/GPU/GPU.vcxproj.filters +++ b/GPU/GPU.vcxproj.filters @@ -171,9 +171,6 @@ Vulkan - - Vulkan - Vulkan @@ -431,9 +428,6 @@ Vulkan - - Vulkan - Vulkan diff --git a/GPU/Vulkan/ShaderManagerVulkan.cpp b/GPU/Vulkan/ShaderManagerVulkan.cpp index 2624db88e4..84909a4d8a 100644 --- a/GPU/Vulkan/ShaderManagerVulkan.cpp +++ b/GPU/Vulkan/ShaderManagerVulkan.cpp @@ -40,7 +40,7 @@ #include "GPU/Vulkan/DrawEngineVulkan.h" #include "GPU/Vulkan/FramebufferManagerVulkan.h" #include "GPU/GLES/FragmentShaderGeneratorGLES.h" -#include "GPU/Vulkan/VertexShaderGeneratorVulkan.h" +#include "GPU/GLES/VertexShaderGeneratorGLES.h" VulkanFragmentShader::VulkanFragmentShader(VulkanContext *vulkan, FShaderID id, const char *code) : vulkan_(vulkan), id_(id), failed_(false), module_(0) { @@ -265,7 +265,10 @@ void ShaderManagerVulkan::GetShaders(int prim, u32 vertType, VulkanVertexShader if (!vs) { // Vertex shader not in cache. Let's compile it. std::string genErrorString; - GenerateVertexShaderVulkanGLSL(VSID, codeBuffer_, &genErrorString); + uint64_t uniformMask = 0; // Not used + uint32_t attributeMask = 0; // Not used + bool success = GenerateVertexShaderGLSL(VSID, codeBuffer_, compat_, &attributeMask, &uniformMask, &genErrorString); + _assert_(success); vs = new VulkanVertexShader(vulkan_, VSID, codeBuffer_, useHWTransform); vsCache_.Insert(VSID, vs); } @@ -397,7 +400,9 @@ bool ShaderManagerVulkan::LoadCache(FILE *f) { } bool useHWTransform = id.Bit(VS_BIT_USE_HW_TRANSFORM); std::string genErrorString; - if (!GenerateVertexShaderVulkanGLSL(id, codeBuffer_, &genErrorString)) { + uint32_t attributeMask = 0; + uint64_t uniformMask = 0; + if (!GenerateVertexShaderGLSL(id, codeBuffer_, compat, &attributeMask, &uniformMask, &genErrorString)) { return false; } VulkanVertexShader *vs = new VulkanVertexShader(vulkan_, id, codeBuffer_, useHWTransform); diff --git a/GPU/Vulkan/ShaderManagerVulkan.h b/GPU/Vulkan/ShaderManagerVulkan.h index ddd2629422..874cd698dd 100644 --- a/GPU/Vulkan/ShaderManagerVulkan.h +++ b/GPU/Vulkan/ShaderManagerVulkan.h @@ -24,7 +24,7 @@ #include "Common/GPU/Vulkan/VulkanMemory.h" #include "GPU/Common/ShaderCommon.h" #include "GPU/Common/ShaderId.h" -#include "GPU/Vulkan/VertexShaderGeneratorVulkan.h" +#include "GPU/GLES/VertexShaderGeneratorGLES.h" #include "GPU/GLES/FragmentShaderGeneratorGLES.h" #include "GPU/Vulkan/VulkanUtil.h" #include "Common/Math/lin/matrix4x4.h" diff --git a/GPU/Vulkan/VertexShaderGeneratorVulkan.h b/GPU/Vulkan/VertexShaderGeneratorVulkan.h deleted file mode 100644 index 51f2b56d55..0000000000 --- a/GPU/Vulkan/VertexShaderGeneratorVulkan.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include "GPU/Common/ShaderId.h" - -bool GenerateVertexShaderVulkanGLSL(const VShaderID &id, char *buffer, std::string *errorString); diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 96f52d33ab..9a9bad4827 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -135,7 +135,6 @@ VULKAN_FILES := \ $(SRC)/GPU/Vulkan/TextureCacheVulkan.cpp \ $(SRC)/GPU/Vulkan/TextureScalerVulkan.cpp \ $(SRC)/GPU/Vulkan/DepalettizeShaderVulkan.cpp \ - $(SRC)/GPU/Vulkan/VertexShaderGeneratorVulkan.cpp \ $(SRC)/GPU/Vulkan/VulkanUtil.cpp \ $(SRC)/GPU/Vulkan/DebugVisVulkan.cpp #endif diff --git a/libretro/Makefile.common b/libretro/Makefile.common index 29e24d164c..db8dbcd34f 100644 --- a/libretro/Makefile.common +++ b/libretro/Makefile.common @@ -647,7 +647,6 @@ SOURCES_CXX += \ $(GPUDIR)/Vulkan/StencilBufferVulkan.cpp \ $(GPUDIR)/Vulkan/TextureCacheVulkan.cpp \ $(GPUDIR)/Vulkan/TextureScalerVulkan.cpp \ - $(GPUDIR)/Vulkan/VertexShaderGeneratorVulkan.cpp \ $(GPUDIR)/Vulkan/VulkanUtil.cpp \ $(LIBRETRODIR)/LibretroVulkanContext.cpp \ $(LIBRETRODIR)/libretro_vulkan.cpp diff --git a/unittest/TestShaderGenerators.cpp b/unittest/TestShaderGenerators.cpp index 6693dc01ac..29e9b98c87 100644 --- a/unittest/TestShaderGenerators.cpp +++ b/unittest/TestShaderGenerators.cpp @@ -11,7 +11,6 @@ #include "GPU/Directx9/FragmentShaderGeneratorHLSL.h" #include "GPU/GLES/FragmentShaderGeneratorGLES.h" -#include "GPU/Vulkan/VertexShaderGeneratorVulkan.h" #include "GPU/Directx9/VertexShaderGeneratorHLSL.h" #include "GPU/GLES/VertexShaderGeneratorGLES.h" @@ -41,8 +40,6 @@ bool GenerateFShader(FShaderID id, char *buffer, ShaderLanguage lang, std::strin case ShaderLanguage::GLSL_300: // TODO: Need a device - except that maybe glslang could be used to verify these .... return false; - case ShaderLanguage::TEST_GLSL_VULKAN: - return false; default: return false; } @@ -58,8 +55,6 @@ bool GenerateVShader(VShaderID id, char *buffer, ShaderLanguage lang, std::strin return false; // return DX9::GenerateFragmentShaderHLSL(id, buffer, ShaderLanguage::HLSL_DX9); case ShaderLanguage::GLSL_VULKAN: - return GenerateVertexShaderVulkanGLSL(id, buffer, errorString); - case ShaderLanguage::TEST_GLSL_VULKAN: { GLSLShaderCompat compat{}; compat.SetupForVulkan(); @@ -95,8 +90,6 @@ bool TestCompileShader(const char *buffer, ShaderLanguage lang, bool vertex) { return false; case ShaderLanguage::GLSL_300: return false; - case ShaderLanguage::TEST_GLSL_VULKAN: - return true; default: return false; } @@ -135,7 +128,6 @@ bool TestShaderGenerators() { LoadD3DCompilerDynamic(); ShaderLanguage languages[] = { - ShaderLanguage::TEST_GLSL_VULKAN, ShaderLanguage::GLSL_VULKAN, ShaderLanguage::HLSL_D3D11, ShaderLanguage::GLSL_140, @@ -171,7 +163,8 @@ bool TestShaderGenerators() { printf("%s\n", genErrorString[j].c_str()); } } - + /* + // KEEPING FOR REUSE LATER: Defunct temporary test: Compare GLSL-in-Vulkan-mode vs Vulkan if (generateSuccess[0] != generateSuccess[1]) { printf("mismatching success! '%s' '%s'\n", genErrorString[0].c_str(), genErrorString[1].c_str()); printf("%s\n", buffer[0]); @@ -183,6 +176,7 @@ bool TestShaderGenerators() { PrintDiff(buffer[0], buffer[1]); return false; } + */ // Now that we have the strings ready for easy comparison (buffer,4 in the watch window), // let's try to compile them.