diff --git a/.gitignore b/.gitignore
index 769c3bd59e..41d22aef20 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,8 @@
/rpcs3/Debug
/rpcs3/Release
/llvm_build
+/Vulkan/Vulkan-build
+/Vulkan/glslang-build
/wxWidgets/lib
/bin/rpcs3.ini
diff --git a/.gitmodules b/.gitmodules
index d7be645a4f..62890f2021 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -25,3 +25,9 @@
[submodule "libpng"]
path = libpng
url = https://github.com/RPCS3/libpng
+[submodule "Vulkan/glslang"]
+ path = Vulkan/glslang
+ url = https://github.com/KhronosGroup/glslang.git
+[submodule "Vulkan/Vulkan-LoaderAndValidationLayers"]
+ path = Vulkan/Vulkan-LoaderAndValidationLayers
+ url = https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers
diff --git a/.travis.yml b/.travis.yml
index 42877eb725..90a617b9c9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,7 +53,7 @@ before_install:
fi;
before_script:
- - git submodule update --init asmjit ffmpeg rsx_program_decompiler GSL libpng
+ - git submodule update --init asmjit ffmpeg rsx_program_decompiler GSL libpng Vulkan/glslang Vulkan/Vulkan-LoaderAndValidationLayers
- mkdir build
- cd build
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cmake ..; else cmake .. -DLLVM_DIR=/usr/local/opt/llvm36/lib/llvm-3.6/share/llvm/cmake; fi
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 24db201313..73a9e800a1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,4 +20,6 @@ add_subdirectory( libpng )
# TODO: do real installation, including copying directory structure
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin")
+add_subdirectory( Vulkan )
add_subdirectory( rpcs3 )
+
diff --git a/README.md b/README.md
index 8d5fd1036d..e096d75864 100644
--- a/README.md
+++ b/README.md
@@ -21,8 +21,8 @@ If you want to contribute please take a took at the [Coding Style](https://githu
__Windows__
* [Visual Studio 2015](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx)
* [Visual C++ Redistributable Packages for Visual Studio 2015](http://www.microsoft.com/en-us/download/details.aspx?id=48145)
-* [Cmake 3.1.0+](http://www.cmake.org/download/) (optional, required only for LLVM build; add to PATH)
-* [Python](https://www.python.org/downloads/) (optional, required only for LLVM build; add to PATH)
+* [Cmake 3.1.0+](http://www.cmake.org/download/) (required; add to PATH)
+* [Python](https://www.python.org/downloads/) (required; add to PATH)
__Linux__
* GCC 5.1+ or Clang 3.5.0+
diff --git a/Vulkan/CMakeLists.txt b/Vulkan/CMakeLists.txt
new file mode 100644
index 0000000000..d305f033c7
--- /dev/null
+++ b/Vulkan/CMakeLists.txt
@@ -0,0 +1,9 @@
+if (NOT APPLE)
+add_subdirectory( glslang )
+set(BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE)
+set(BUILD_DEMOS OFF CACHE BOOL "Build demos" FORCE)
+# TravisCI break build with layers and vkjson
+set(BUILD_LAYERS OFF CACHE BOOL "Build demos" FORCE)
+set(BUILD_VKJSON OFF CACHE BOOL "Build demos" FORCE)
+add_subdirectory( Vulkan-LoaderAndValidationLayers )
+endif()
\ No newline at end of file
diff --git a/Vulkan/Vulkan-LoaderAndValidationLayers b/Vulkan/Vulkan-LoaderAndValidationLayers
new file mode 160000
index 0000000000..ec513f89f9
--- /dev/null
+++ b/Vulkan/Vulkan-LoaderAndValidationLayers
@@ -0,0 +1 @@
+Subproject commit ec513f89f9354394fec465448a2838f106777640
diff --git a/Vulkan/Vulkan-build/Vulkan-build.vcxproj b/Vulkan/Vulkan-build/Vulkan-build.vcxproj
new file mode 100644
index 0000000000..608ed3884a
--- /dev/null
+++ b/Vulkan/Vulkan-build/Vulkan-build.vcxproj
@@ -0,0 +1,66 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}
+ MakeFileProj
+ 8.1
+
+
+
+ Makefile
+ true
+ v140
+
+
+ Makefile
+ false
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release
+
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF ../Vulkan-LoaderAndValidationLayers
+msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vulkan/Vulkan-build/Vulkan-build.vcxproj.filters b/Vulkan/Vulkan-build/Vulkan-build.vcxproj.filters
new file mode 100644
index 0000000000..9cd8510566
--- /dev/null
+++ b/Vulkan/Vulkan-build/Vulkan-build.vcxproj.filters
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Vulkan/glslang b/Vulkan/glslang
new file mode 160000
index 0000000000..6c292d3ba7
--- /dev/null
+++ b/Vulkan/glslang
@@ -0,0 +1 @@
+Subproject commit 6c292d3ba78533fed7b5ec46bb93b53419cf6535
diff --git a/Vulkan/glslang-build/glslang-build.vcxproj b/Vulkan/glslang-build/glslang-build.vcxproj
new file mode 100644
index 0000000000..5f08d8357d
--- /dev/null
+++ b/Vulkan/glslang-build/glslang-build.vcxproj
@@ -0,0 +1,68 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}
+ MakeFileProj
+ 8.1
+
+
+
+ Makefile
+ true
+ v140
+
+
+ Makefile
+ false
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release
+
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+ msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+ msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug
+
+
+ cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
+ msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vulkan/glslang-build/glslang-build.vcxproj.filters b/Vulkan/glslang-build/glslang-build.vcxproj.filters
new file mode 100644
index 0000000000..9cd8510566
--- /dev/null
+++ b/Vulkan/glslang-build/glslang-build.vcxproj.filters
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
index 2f6eccbefe..df2a926c91 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -14,7 +14,7 @@ branches:
before_build:
# until git for win 2.5 release with commit checkout
- - git submodule update --init ffmpeg asmjit minidx9 rsx_program_decompiler GSL libpng
+ - git submodule update --init ffmpeg asmjit minidx9 rsx_program_decompiler GSL libpng Vulkan/glslang Vulkan/Vulkan-LoaderAndValidationLayers
- 7z x wxWidgets.7z -aos -oC:\rpcs3\wxWidgets > null
- 7z x zlib.7z -aos -oC:\rpcs3\ > null
- if %configuration%==Release (cmake -G "Visual Studio 14 Win64" -DZLIB_ROOT=C:/rpcs3/zlib/)
diff --git a/rpcs3.sln b/rpcs3.sln
index 10e447c86e..08e16c40e8 100644
--- a/rpcs3.sln
+++ b/rpcs3.sln
@@ -209,6 +209,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "zlib", "zlib", "{F0C19EFA-E
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "libpng\projects\vstudio\zlib\zlib.vcxproj", "{60F89955-91C6-3A36-8000-13C592FEC2DF}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Vulkan", "Vulkan", "{09AD61F7-97FE-4FF8-8F7F-63FEA9B746F4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vulkan-build", "Vulkan\Vulkan-build\Vulkan-build.vcxproj", "{58B40697-B15E-429E-B325-D52C28AEBCBF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glslang-build", "Vulkan\glslang-build\glslang-build.vcxproj", "{8F85B6CC-250F-4ACA-A617-E820A74E3E3C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VKGSRender", "rpcs3\VKGSRender.vcxproj", "{3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {58B40697-B15E-429E-B325-D52C28AEBCBF} = {58B40697-B15E-429E-B325-D52C28AEBCBF}
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C} = {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug - LLVM|x64 = Debug - LLVM|x64
@@ -733,6 +745,48 @@ Global
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release - LLVM|x64.Build.0 = Release Library|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|x64.ActiveCfg = Release Library|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|x64.Build.0 = Release Library|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug - LLVM|x64.ActiveCfg = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug - LLVM|x64.Build.0 = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug - MemLeak|x64.ActiveCfg = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug - MemLeak|x64.Build.0 = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug|x64.ActiveCfg = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Debug|x64.Build.0 = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.DLL Debug|x64.ActiveCfg = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.DLL Debug|x64.Build.0 = Debug|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.DLL Release|x64.ActiveCfg = Release|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.DLL Release|x64.Build.0 = Release|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Release - LLVM|x64.ActiveCfg = Release|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Release - LLVM|x64.Build.0 = Release|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Release|x64.ActiveCfg = Release|x64
+ {58B40697-B15E-429E-B325-D52C28AEBCBF}.Release|x64.Build.0 = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug - LLVM|x64.ActiveCfg = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug - LLVM|x64.Build.0 = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug - MemLeak|x64.ActiveCfg = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug - MemLeak|x64.Build.0 = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug|x64.ActiveCfg = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Debug|x64.Build.0 = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.DLL Debug|x64.ActiveCfg = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.DLL Debug|x64.Build.0 = Debug|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.DLL Release|x64.ActiveCfg = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.DLL Release|x64.Build.0 = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Release - LLVM|x64.ActiveCfg = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Release - LLVM|x64.Build.0 = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Release|x64.ActiveCfg = Release|x64
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C}.Release|x64.Build.0 = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug - LLVM|x64.ActiveCfg = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug - LLVM|x64.Build.0 = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug - MemLeak|x64.ActiveCfg = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug - MemLeak|x64.Build.0 = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug|x64.ActiveCfg = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Debug|x64.Build.0 = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.DLL Debug|x64.ActiveCfg = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.DLL Debug|x64.Build.0 = Debug|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.DLL Release|x64.ActiveCfg = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.DLL Release|x64.Build.0 = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Release - LLVM|x64.ActiveCfg = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Release - LLVM|x64.Build.0 = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Release|x64.ActiveCfg = Release|x64
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -762,6 +816,7 @@ Global
{74827EBD-93DC-5110-BA95-3F2AB029B6B0} = {5812E712-6213-4372-B095-9EB9BAA1F2DF}
{AC40FF01-426E-4838-A317-66354CEFAE88} = {E2A982F2-4B1A-48B1-8D77-A17A589C58D7}
{C4A10229-4712-4BD2-B63E-50D93C67A038} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2}
+ {C8068CE9-D626-4FEA-BEE7-893F06A25BF3} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2}
{8BC303AB-25BE-4276-8E57-73F171B2D672} = {C8068CE9-D626-4FEA-BEE7-893F06A25BF3}
{01F4CE10-2CFB-41A8-B41F-E54337868A1D} = {5812E712-6213-4372-B095-9EB9BAA1F2DF}
{00D36322-6188-4A66-B514-3B3F183E998D} = {5812E712-6213-4372-B095-9EB9BAA1F2DF}
@@ -772,5 +827,8 @@ Global
{30A05C4D-F5FD-421C-A864-17A64BDEAA75} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2}
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {A17D34F1-7E3E-4841-818D-3B7C6F5AF829}
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {F0C19EFA-EDD0-43F2-97C1-18E865E96B4E}
+ {58B40697-B15E-429E-B325-D52C28AEBCBF} = {09AD61F7-97FE-4FF8-8F7F-63FEA9B746F4}
+ {8F85B6CC-250F-4ACA-A617-E820A74E3E3C} = {09AD61F7-97FE-4FF8-8F7F-63FEA9B746F4}
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2}
EndGlobalSection
EndGlobal
diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt
index ebedb7b574..c74ceb44a1 100644
--- a/rpcs3/CMakeLists.txt
+++ b/rpcs3/CMakeLists.txt
@@ -116,6 +116,8 @@ ${LLVM_INCLUDE_DIRS}
"${RPCS3_SRC_DIR}/../GSL/include"
"${RPCS3_SRC_DIR}/../rsx_program_decompiler/rsx_decompiler"
"${RPCS3_SRC_DIR}/../rsx_program_decompiler/shader_code"
+"${RPCS3_SRC_DIR}/../Vulkan/Vulkan-LoaderAndValidationLayers/include"
+"${RPCS3_SRC_DIR}/../Vulkan/glslang/glslang/Public"
)
if(WIN32)
include_directories(BEFORE "${RPCS3_SRC_DIR}/../minidx9/Include")
@@ -189,14 +191,14 @@ if(WIN32) # I'm not sure we need all of these libs, but we link them in vs
else()
target_link_libraries(rpcs3 dxgi.lib d2d1.lib dwrite.lib)
endif()
- target_link_libraries(rpcs3 asmjit.lib avformat.lib avcodec.lib avutil.lib swresample.lib swscale.lib png16_static ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${ADDITIONAL_LIBS})
+ target_link_libraries(rpcs3 asmjit.lib avformat.lib avcodec.lib avutil.lib swresample.lib swscale.lib png16_static ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${ADDITIONAL_LIBS} ${vulkan} ${glslang})
else()
if(LLVM_FOUND)
target_link_libraries(rpcs3 asmjit.a ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
- target_link_libraries(rpcs3 libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a png16_static ${ZLIB_LIBRARIES} ${LLVM_LIBS} ${ADDITIONAL_LIBS})
+ target_link_libraries(rpcs3 libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a png16_static ${ZLIB_LIBRARIES} ${LLVM_LIBS} ${ADDITIONAL_LIBS} ${vulkan} ${glslang})
else()
target_link_libraries(rpcs3 asmjit.a ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
- target_link_libraries(rpcs3 libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a png16_static ${ZLIB_LIBRARIES} ${ADDITIONAL_LIBS})
+ target_link_libraries(rpcs3 libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a png16_static ${ZLIB_LIBRARIES} ${ADDITIONAL_LIBS} ${vulkan} ${glslang})
endif()
endif()
diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp
new file mode 100644
index 0000000000..869b4116d3
--- /dev/null
+++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp
@@ -0,0 +1,10 @@
+#include "stdafx.h"
+#ifndef __APPLE__
+#include "VKGSRender.h"
+
+VKGSRender::VKGSRender()
+{
+
+}
+
+#endif
\ No newline at end of file
diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.h b/rpcs3/Emu/RSX/VK/VKGSRender.h
new file mode 100644
index 0000000000..70861d5415
--- /dev/null
+++ b/rpcs3/Emu/RSX/VK/VKGSRender.h
@@ -0,0 +1,8 @@
+#pragma once
+#include
+#include
+
+class VKGSRender
+{
+ VKGSRender();
+};
\ No newline at end of file
diff --git a/rpcs3/VKGSRender.vcxproj b/rpcs3/VKGSRender.vcxproj
new file mode 100644
index 0000000000..1125a2a385
--- /dev/null
+++ b/rpcs3/VKGSRender.vcxproj
@@ -0,0 +1,125 @@
+
+
+
+
+ Debug - LLVM
+ x64
+
+
+ Debug - MemLeak
+ x64
+
+
+ Debug
+ x64
+
+
+ Release - LLVM
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+ {c4a10229-4712-4bd2-b63e-50d93c67a038}
+
+
+
+ {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D}
+ Win32Proj
+ VKGSRender
+ 8.1
+
+
+
+ StaticLibrary
+ v140
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ _DEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
+
+
+ Windows
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ NDEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
+
+
+ Windows
+ true
+ true
+
+
+
+
+ ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
+
+
+
+
+ ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
+
+
+
+
+ ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3/VKGSRender.vcxproj.filters b/rpcs3/VKGSRender.vcxproj.filters
new file mode 100644
index 0000000000..1868ae93ea
--- /dev/null
+++ b/rpcs3/VKGSRender.vcxproj.filters
@@ -0,0 +1,19 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+
+
+ Source Files
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj
index c6db0d280e..d1474f63e0 100644
--- a/rpcs3/rpcs3.vcxproj
+++ b/rpcs3/rpcs3.vcxproj
@@ -91,10 +91,15 @@
false
- ..\minidx9\Include;..\OpenAL\include;%(AdditionalIncludeDirectories)
+ ..\minidx9\Include;..\OpenAL\include;..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories)
- ..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ ..\Vulkan\Vulkan-build\loader\Debug;..\Vulkan\glslang-build\glslang\Debug;..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ ..\Vulkan\Vulkan-build\loader\Debug;..\Vulkan\glslang-build\glslang\Debug;..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ ..\Vulkan\Vulkan-build\loader\Debug;..\Vulkan\glslang-build\glslang\Debug;..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ ..\Vulkan\Vulkan-build\loader\Release;..\Vulkan\glslang-build\glslang\Release;..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ ..\Vulkan\Vulkan-build\loader\Release;..\Vulkan\glslang-build\glslang\Release;..\OpenAL\libs\Win64;%(AdditionalLibraryDirectories)
+ VKstatic.1.lib;glslang.lib;%(AdditionalDependencies)
@@ -183,6 +188,9 @@
{30a05c4d-f5fd-421c-a864-17a64bdeaa75}
+
+ {3ee5f075-b546-42c4-b6a8-e3ccef38b78d}
+
{78cb2f39-b809-4a06-8329-8c0a19119d3d}