Add renderer source to Vulkan project.

Bug b/117152542

Change-Id: I8bfa40d0e912f90946109c6d80889889ef7c5c55
Reviewed-on: https://swiftshader-review.googlesource.com/c/21249
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/System/Version.h b/src/Vulkan/Version.h
similarity index 86%
rename from src/System/Version.h
rename to src/Vulkan/Version.h
index 72bd15d..2629a34 100644
--- a/src/System/Version.h
+++ b/src/Vulkan/Version.h
@@ -1,4 +1,4 @@
-// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
+// Copyright 2018 The SwiftShader Authors. All Rights Reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#define MAJOR_VERSION 4
-#define MINOR_VERSION 1
+#define MAJOR_VERSION 5
+#define MINOR_VERSION 0
 #define BUILD_VERSION 0
-#define BUILD_REVISION 2
+#define BUILD_REVISION 0
 
 #define STRINGIFY(x) #x
 #define MACRO_STRINGIFY(x) STRINGIFY(x)
diff --git a/src/Vulkan/Vulkan.rc b/src/Vulkan/Vulkan.rc
new file mode 100644
index 0000000..e8c3c7a
--- /dev/null
+++ b/src/Vulkan/Vulkan.rc
@@ -0,0 +1,106 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <windows.h>
+#include "Version.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "#include ""Version.h""\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
+ PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+			#ifdef WIN64
+				VALUE "FileDescription", "SwiftShader Vulkan 64-bit Dynamic Link Library"
+			#else
+				VALUE "FileDescription", "SwiftShader Vulkan 32-bit Dynamic Link Library"
+			#endif
+            VALUE "FileVersion", VERSION_STRING
+            VALUE "InternalName", "Vulkan"
+            VALUE "LegalCopyright", "Copyright (C) 2018 Google Inc."
+            VALUE "OriginalFilename", "vk_swiftshader.dll"
+            VALUE "PrivateBuild", VERSION_STRING
+            VALUE "ProductName", "SwiftShader Vulkan Dynamic Link Library"
+            VALUE "ProductVersion", VERSION_STRING
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
diff --git a/src/Vulkan/vulkan.vcxproj b/src/Vulkan/vulkan.vcxproj
index fdd4c21..62a8ec8 100644
--- a/src/Vulkan/vulkan.vcxproj
+++ b/src/Vulkan/vulkan.vcxproj
@@ -37,13 +37,13 @@
     <UseDebugLibraries>false</UseDebugLibraries>

     <PlatformToolset>v141</PlatformToolset>

     <WholeProgramOptimization>true</WholeProgramOptimization>

-    <CharacterSet>Unicode</CharacterSet>

+    <CharacterSet>NotSet</CharacterSet>

   </PropertyGroup>

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

     <ConfigurationType>DynamicLibrary</ConfigurationType>

     <UseDebugLibraries>true</UseDebugLibraries>

     <PlatformToolset>v141</PlatformToolset>

-    <CharacterSet>Unicode</CharacterSet>

+    <CharacterSet>NotSet</CharacterSet>

   </PropertyGroup>

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

     <ConfigurationType>DynamicLibrary</ConfigurationType>

@@ -95,11 +95,13 @@
       <SDLCheck>true</SDLCheck>

       <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;EGL_EGLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

     </ClCompile>

     <Link>

       <EnableCOMDATFolding>true</EnableCOMDATFolding>

       <OptimizeReferences>true</OptimizeReferences>

       <ModuleDefinitionFile>swiftshader_icd.def</ModuleDefinitionFile>

+      <AdditionalDependencies>dxguid.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

     </Link>

     <PostBuildEvent>

       <Command>mkdir "$(SolutionDir)out\$(Configuration)_$(Platform)\"

@@ -113,9 +115,11 @@
       <SDLCheck>true</SDLCheck>

       <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;EGL_EGLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;DEBUGGER_WAIT_DIALOG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

     </ClCompile>

     <Link>

       <ModuleDefinitionFile>swiftshader_icd.def</ModuleDefinitionFile>

+      <AdditionalDependencies>dxguid.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

     </Link>

     <PostBuildEvent>

       <Command>mkdir "$(SolutionDir)out\$(Configuration)_$(Platform)\"

@@ -129,9 +133,11 @@
       <SDLCheck>true</SDLCheck>

       <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;EGL_EGLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;DEBUGGER_WAIT_DIALOG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

     </ClCompile>

     <Link>

       <ModuleDefinitionFile>swiftshader_icd.def</ModuleDefinitionFile>

+      <AdditionalDependencies>dxguid.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

     </Link>

     <PostBuildEvent>

       <Command>mkdir "$(SolutionDir)out\$(Configuration)_$(Platform)\"

@@ -147,11 +153,13 @@
       <SDLCheck>true</SDLCheck>

       <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;EGL_EGLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

     </ClCompile>

     <Link>

       <EnableCOMDATFolding>true</EnableCOMDATFolding>

       <OptimizeReferences>true</OptimizeReferences>

       <ModuleDefinitionFile>swiftshader_icd.def</ModuleDefinitionFile>

+      <AdditionalDependencies>dxguid.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

     </Link>

     <PostBuildEvent>

       <Command>mkdir "$(SolutionDir)out\$(Configuration)_$(Platform)\"

@@ -159,6 +167,88 @@
     </PostBuildEvent>

   </ItemDefinitionGroup>

   <ItemGroup>

+    <ClCompile Include="..\Device\Blitter.cpp" />

+    <ClCompile Include="..\Device\Clipper.cpp" />

+    <ClCompile Include="..\Device\Color.cpp" />

+    <ClCompile Include="..\Device\Config.cpp" />

+    <ClCompile Include="..\Device\Context.cpp" />

+    <ClCompile Include="..\Device\ETC_Decoder.cpp" />

+    <ClCompile Include="..\Device\Matrix.cpp" />

+    <ClCompile Include="..\Device\PixelProcessor.cpp" />

+    <ClCompile Include="..\Device\Plane.cpp" />

+    <ClCompile Include="..\Device\Point.cpp" />

+    <ClCompile Include="..\Device\QuadRasterizer.cpp" />

+    <ClCompile Include="..\Device\Renderer.cpp" />

+    <ClCompile Include="..\Device\Sampler.cpp" />

+    <ClCompile Include="..\Device\SetupProcessor.cpp" />

+    <ClCompile Include="..\Device\Surface.cpp" />

+    <ClCompile Include="..\Device\SwiftConfig.cpp" />

+    <ClCompile Include="..\Device\TextureStage.cpp" />

+    <ClCompile Include="..\Device\Vector.cpp" />

+    <ClCompile Include="..\Device\VertexProcessor.cpp" />

+    <ClCompile Include="..\Pipeline\Constants.cpp" />

+    <ClCompile Include="..\Pipeline\PixelPipeline.cpp" />

+    <ClCompile Include="..\Pipeline\PixelProgram.cpp" />

+    <ClCompile Include="..\Pipeline\PixelRoutine.cpp" />

+    <ClCompile Include="..\Pipeline\PixelShader.cpp" />

+    <ClCompile Include="..\Pipeline\SamplerCore.cpp" />

+    <ClCompile Include="..\Pipeline\SetupRoutine.cpp" />

+    <ClCompile Include="..\Pipeline\Shader.cpp" />

+    <ClCompile Include="..\Pipeline\ShaderCore.cpp" />

+    <ClCompile Include="..\Pipeline\VertexPipeline.cpp" />

+    <ClCompile Include="..\Pipeline\VertexProgram.cpp" />

+    <ClCompile Include="..\Pipeline\VertexRoutine.cpp" />

+    <ClCompile Include="..\Pipeline\VertexShader.cpp" />

+    <ClCompile Include="..\System\Configurator.cpp" />

+    <ClCompile Include="..\System\CPUID.cpp" />

+    <ClCompile Include="..\System\Debug.cpp" />

+    <ClCompile Include="..\System\DebugAndroid.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

+    <ClCompile Include="..\System\GrallocAndroid.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

+    <ClCompile Include="..\System\Half.cpp" />

+    <ClCompile Include="..\System\Math.cpp" />

+    <ClCompile Include="..\System\Memory.cpp" />

+    <ClCompile Include="..\System\Resource.cpp" />

+    <ClCompile Include="..\System\Socket.cpp" />

+    <ClCompile Include="..\System\Thread.cpp" />

+    <ClCompile Include="..\System\Timer.cpp" />

+    <ClCompile Include="..\WSI\FrameBuffer.cpp" />

+    <ClCompile Include="..\WSI\FrameBufferAndroid.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferDD.cpp" />

+    <ClCompile Include="..\WSI\FrameBufferGDI.cpp" />

+    <ClCompile Include="..\WSI\FrameBufferOzone.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferWin.cpp" />

+    <ClCompile Include="..\WSI\FrameBufferX11.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

+    <ClCompile Include="..\WSI\libX11.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClCompile>

     <ClCompile Include="libVulkan.cpp" />

     <ClCompile Include="main.cpp" />

     <ClCompile Include="VkDebug.cpp" />

@@ -166,13 +256,126 @@
     <ClCompile Include="VkPromotedExtensions.cpp" />

   </ItemGroup>

   <ItemGroup>

+    <ClInclude Include="..\Device\Blitter.hpp" />

+    <ClInclude Include="..\Device\Clipper.hpp" />

+    <ClInclude Include="..\Device\Color.hpp" />

+    <ClInclude Include="..\Device\Config.hpp" />

+    <ClInclude Include="..\Device\Context.hpp" />

+    <ClInclude Include="..\Device\ETC_Decoder.hpp" />

+    <ClInclude Include="..\Device\LRUCache.hpp" />

+    <ClInclude Include="..\Device\Matrix.hpp" />

+    <ClInclude Include="..\Device\PixelProcessor.hpp" />

+    <ClInclude Include="..\Device\Plane.hpp" />

+    <ClInclude Include="..\Device\Point.hpp" />

+    <ClInclude Include="..\Device\Polygon.hpp" />

+    <ClInclude Include="..\Device\Primitive.hpp" />

+    <ClInclude Include="..\Device\QuadRasterizer.hpp" />

+    <ClInclude Include="..\Device\Rasterizer.hpp" />

+    <ClInclude Include="..\Device\Renderer.hpp" />

+    <ClInclude Include="..\Device\RoutineCache.hpp" />

+    <ClInclude Include="..\Device\Sampler.hpp" />

+    <ClInclude Include="..\Device\SetupProcessor.hpp" />

+    <ClInclude Include="..\Device\Stream.hpp" />

+    <ClInclude Include="..\Device\Surface.hpp" />

+    <ClInclude Include="..\Device\SwiftConfig.hpp" />

+    <ClInclude Include="..\Device\TextureStage.hpp" />

+    <ClInclude Include="..\Device\Triangle.hpp" />

+    <ClInclude Include="..\Device\Vector.hpp" />

+    <ClInclude Include="..\Device\Vertex.hpp" />

+    <ClInclude Include="..\Device\VertexProcessor.hpp" />

+    <ClInclude Include="..\Pipeline\Constants.hpp" />

+    <ClInclude Include="..\Pipeline\PixelPipeline.hpp" />

+    <ClInclude Include="..\Pipeline\PixelProgram.hpp" />

+    <ClInclude Include="..\Pipeline\PixelRoutine.hpp" />

+    <ClInclude Include="..\Pipeline\PixelShader.hpp" />

+    <ClInclude Include="..\Pipeline\SamplerCore.hpp" />

+    <ClInclude Include="..\Pipeline\SetupRoutine.hpp" />

+    <ClInclude Include="..\Pipeline\Shader.hpp" />

+    <ClInclude Include="..\Pipeline\ShaderCore.hpp" />

+    <ClInclude Include="..\Pipeline\VertexPipeline.hpp" />

+    <ClInclude Include="..\Pipeline\VertexProgram.hpp" />

+    <ClInclude Include="..\Pipeline\VertexRoutine.hpp" />

+    <ClInclude Include="..\Pipeline\VertexShader.hpp" />

+    <ClInclude Include="..\System\Configurator.hpp" />

+    <ClInclude Include="..\System\CPUID.hpp" />

+    <ClInclude Include="..\System\Debug.hpp" />

+    <ClInclude Include="..\System\DebugAndroid.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\System\GrallocAndroid.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\System\Half.hpp" />

+    <ClInclude Include="..\System\Math.hpp" />

+    <ClInclude Include="..\System\Memory.hpp" />

+    <ClInclude Include="..\System\MutexLock.hpp" />

+    <ClInclude Include="..\System\Resource.hpp" />

+    <ClInclude Include="..\System\SharedLibrary.hpp" />

+    <ClInclude Include="..\System\Socket.hpp" />

+    <ClInclude Include="..\System\Thread.hpp" />

+    <ClInclude Include="..\System\Timer.hpp" />

+    <ClInclude Include="..\System\Types.hpp" />

+    <ClInclude Include="..\WSI\FrameBuffer.hpp" />

+    <ClInclude Include="..\WSI\FrameBufferAndroid.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferDD.hpp" />

+    <ClInclude Include="..\WSI\FrameBufferGDI.hpp" />

+    <ClInclude Include="..\WSI\FrameBufferOSX.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferOzone.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferWin.hpp" />

+    <ClInclude Include="..\WSI\FrameBufferX11.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

+    <ClInclude Include="..\WSI\libX11.hpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </ClInclude>

     <ClInclude Include="VkDebug.hpp" />

     <ClInclude Include="resource.h" />

     <ClInclude Include="VkGetProcAddress.h" />

   </ItemGroup>

   <ItemGroup>

+    <None Include="..\WSI\FrameBufferOSX.mm">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

+    </None>

     <None Include="swiftshader_icd.def" />

   </ItemGroup>

+  <ItemGroup>

+    <ResourceCompile Include="Vulkan.rc" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="..\Reactor\Reactor.vcxproj">

+      <Project>{28fd076d-10b5-4bd8-a4cf-f44c7002a803}</Project>

+    </ProjectReference>

+  </ItemGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

   </ImportGroup>

diff --git a/src/Vulkan/vulkan.vcxproj.filters b/src/Vulkan/vulkan.vcxproj.filters
index 3c129fe..99a4c89 100644
--- a/src/Vulkan/vulkan.vcxproj.filters
+++ b/src/Vulkan/vulkan.vcxproj.filters
@@ -13,36 +13,422 @@
       <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>

       <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>

     </Filter>

+    <Filter Include="Header Files\System">

+      <UniqueIdentifier>{418e1cb0-43cc-48db-a593-e2bcad00c8b7}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\WSI">

+      <UniqueIdentifier>{18e0b347-5c1c-41a2-9cee-e32b367ac198}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Pipeline">

+      <UniqueIdentifier>{ab31f9cb-85bf-4ad3-8ee0-1810977a5944}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\System">

+      <UniqueIdentifier>{c9884906-cd72-4adb-9641-d72660051aa3}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\WSI">

+      <UniqueIdentifier>{972c7616-8e16-4187-b855-ec1cad06cc26}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\Pipeline">

+      <UniqueIdentifier>{b9ad5e13-0a3f-419c-b1e7-52028d4b6785}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\Vulkan">

+      <UniqueIdentifier>{bf65a604-51e1-494d-926e-6852a115fb76}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\Device">

+      <UniqueIdentifier>{3fd774af-dfbe-40e2-9944-a85206cf00ee}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Vulkan">

+      <UniqueIdentifier>{eae937f9-88b4-4bd4-ba7b-bb4a4dcdaf52}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Device">

+      <UniqueIdentifier>{31e80f94-e9d4-42cf-97b1-58bda4d1ab31}</UniqueIdentifier>

+    </Filter>

   </ItemGroup>

   <ItemGroup>

-    <ClCompile Include="main.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

     <ClCompile Include="libVulkan.cpp">

-      <Filter>Source Files</Filter>

+      <Filter>Source Files\Vulkan</Filter>

     </ClCompile>

-    <ClCompile Include="VkGetProcAddress.cpp">

-      <Filter>Source Files</Filter>

+    <ClCompile Include="main.cpp">

+      <Filter>Source Files\Vulkan</Filter>

     </ClCompile>

     <ClCompile Include="VkDebug.cpp">

-      <Filter>Source Files</Filter>

+      <Filter>Source Files\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="VkGetProcAddress.cpp">

+      <Filter>Source Files\Vulkan</Filter>

     </ClCompile>

     <ClCompile Include="VkPromotedExtensions.cpp">

-      <Filter>Source Files</Filter>

+      <Filter>Source Files\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\VertexProcessor.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Vector.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\TextureStage.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\SwiftConfig.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Surface.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\SetupProcessor.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Sampler.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Renderer.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\QuadRasterizer.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Point.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Plane.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\PixelProcessor.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Matrix.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\ETC_Decoder.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Context.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Config.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Color.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Clipper.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Device\Blitter.cpp">

+      <Filter>Source Files\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\VertexShader.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\VertexRoutine.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\VertexProgram.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\VertexPipeline.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\ShaderCore.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\Shader.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\SetupRoutine.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\SamplerCore.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\PixelShader.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\PixelRoutine.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\PixelProgram.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\PixelPipeline.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\Pipeline\Constants.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBuffer.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferAndroid.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferDD.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferGDI.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferOzone.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferWin.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\FrameBufferX11.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\WSI\libX11.cpp">

+      <Filter>Source Files\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Configurator.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\CPUID.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Debug.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\DebugAndroid.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\GrallocAndroid.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Half.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Math.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Memory.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Resource.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Socket.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Thread.cpp">

+      <Filter>Source Files\System</Filter>

+    </ClCompile>

+    <ClCompile Include="..\System\Timer.cpp">

+      <Filter>Source Files\System</Filter>

     </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="resource.h">

-      <Filter>Header Files</Filter>

+      <Filter>Header Files\Vulkan</Filter>

     </ClInclude>

     <ClInclude Include="VkDebug.hpp">

-      <Filter>Header Files</Filter>

+      <Filter>Header Files\Vulkan</Filter>

     </ClInclude>

     <ClInclude Include="VkGetProcAddress.h">

-      <Filter>Header Files</Filter>

+      <Filter>Header Files\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\VertexProcessor.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Vertex.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Vector.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Triangle.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\TextureStage.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\SwiftConfig.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Surface.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Stream.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\SetupProcessor.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Sampler.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\RoutineCache.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Renderer.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Rasterizer.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\QuadRasterizer.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Primitive.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Polygon.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Point.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Plane.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\PixelProcessor.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Matrix.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\LRUCache.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\ETC_Decoder.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Context.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Config.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Color.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Clipper.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Device\Blitter.hpp">

+      <Filter>Header Files\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBuffer.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferAndroid.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferDD.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferGDI.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferOSX.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferOzone.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferWin.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\FrameBufferX11.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\WSI\libX11.hpp">

+      <Filter>Header Files\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\VertexShader.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\VertexRoutine.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\VertexProgram.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\VertexPipeline.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\ShaderCore.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\Shader.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\SetupRoutine.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\SamplerCore.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\PixelShader.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\PixelRoutine.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\PixelProgram.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\PixelPipeline.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\Pipeline\Constants.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Configurator.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\CPUID.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Debug.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\DebugAndroid.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\GrallocAndroid.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Half.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Math.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Memory.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\MutexLock.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Resource.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\SharedLibrary.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Socket.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Thread.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Timer.hpp">

+      <Filter>Header Files\System</Filter>

+    </ClInclude>

+    <ClInclude Include="..\System\Types.hpp">

+      <Filter>Header Files\System</Filter>

     </ClInclude>

   </ItemGroup>

   <ItemGroup>

     <None Include="swiftshader_icd.def" />

+    <None Include="..\WSI\FrameBufferOSX.mm">

+      <Filter>Source Files\WSI</Filter>

+    </None>

+  </ItemGroup>

+  <ItemGroup>

+    <ResourceCompile Include="Vulkan.rc">

+      <Filter>Resource Files</Filter>

+    </ResourceCompile>

   </ItemGroup>

 </Project>
\ No newline at end of file