diff --git a/SwiftShader.sln b/SwiftShader.sln
index 4f0986f..d758896 100644
--- a/SwiftShader.sln
+++ b/SwiftShader.sln
@@ -260,6 +260,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactorUnitTests", "src\Reactor\ReactorUnitTests.vcxproj", "{4EC107AB-89E8-4A0B-8366-B3E81085AE07}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VulkanUnitTests", "tests\VulkanUnitTests\VulkanUnitTests.vcxproj", "{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -783,6 +785,18 @@
 		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|Win32.Build.0 = Release|Win32
 		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x64.ActiveCfg = Release|x64
 		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x64.Build.0 = Release|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|Win32.ActiveCfg = Debug|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|Win32.Build.0 = Debug|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|x64.ActiveCfg = Debug|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|x64.Build.0 = Debug|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|Win32.ActiveCfg = Release|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|Win32.Build.0 = Release|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|x64.ActiveCfg = Release|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|x64.Build.0 = Release|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|Win32.ActiveCfg = Release|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|Win32.Build.0 = Release|Win32
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|x64.ActiveCfg = Release|x64
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -825,6 +839,7 @@
 		{CF8EBC89-8762-49DC-9440-6C82B3499913} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
 		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
 		{4EC107AB-89E8-4A0B-8366-B3E81085AE07} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {4DF423D2-8425-48A7-9CEC-835C4C3CA957}
diff --git a/tests/VulkanUnitTests/SwiftShaderTest.h b/tests/VulkanUnitTests/SwiftShaderTest.h
new file mode 100644
index 0000000..3bb3c6a
--- /dev/null
+++ b/tests/VulkanUnitTests/SwiftShaderTest.h
@@ -0,0 +1,26 @@
+// Copyright 2017 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.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef SWIFTSHADER_TEST_H_
+#define SWIFTSHADER_TEST_H_
+
+#include <gtest/gtest.h>
+
+class SwiftShaderTestEnvironment : public testing::Environment {
+ public:
+  void SetUp() override {}
+  void TearDown() override {}
+};
+
+#endif  // SWIFTSHADER_TEST_H_
diff --git a/tests/VulkanUnitTests/VulkanUnitTests.vcxproj b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj
new file mode 100644
index 0000000..d840243
--- /dev/null
+++ b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>GLESUnitTests</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <IntDir>$(SolutionDir)obj\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <IntDir>$(SolutionDir)obj\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <IntDir>$(SolutionDir)obj\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <IntDir>$(SolutionDir)obj\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>GL_GLEXT_PROTOTYPES;STANDALONE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)include\;$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\googletest\googlemock\include\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ForcedIncludeFiles>
+      </ForcedIncludeFiles>
+      <TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+      <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>GL_GLEXT_PROTOTYPES;STANDALONE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)include\;$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\googletest\googlemock\include\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ForcedIncludeFiles>
+      </ForcedIncludeFiles>
+      <TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+      <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>GL_GLEXT_PROTOTYPES;STANDALONE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)include\;$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\googletest\googlemock\include\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ForcedIncludeFiles>
+      </ForcedIncludeFiles>
+      <TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+      <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>GL_GLEXT_PROTOTYPES;STANDALONE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)include\;$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\googletest\googlemock\include\;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ForcedIncludeFiles>
+      </ForcedIncludeFiles>
+      <TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+      <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\third_party\googletest\googletest\src\gtest-all.cc" />
+    <ClCompile Include="main.cpp" />
+    <ClCompile Include="unittests.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\src\OpenGL\libEGL\libEGL.vcxproj">
+      <Project>{e746fca9-64c3-433e-85e8-9a5a67ab7ed6}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\OpenGL\libGLESv2\libGLESv2.vcxproj">
+      <Project>{b5871a7a-968c-42e3-a33b-981e6f448e78}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.filters b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.filters
new file mode 100644
index 0000000..1044d65
--- /dev/null
+++ b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.filters
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <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>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\third_party\googletest\googletest\src\gtest-all.cc">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="unittests.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="main.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.user b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.user
new file mode 100644
index 0000000..e306b3a
--- /dev/null
+++ b/tests/VulkanUnitTests/VulkanUnitTests.vcxproj.user
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LocalDebuggerEnvironment>PATH=$(SolutionDir)out\$(Configuration)_$(Platform)</LocalDebuggerEnvironment>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+    <LocalDebuggerCommandArguments>--gtest_break_on_failure --gtest_filter=*</LocalDebuggerCommandArguments>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LocalDebuggerEnvironment>PATH=$(SolutionDir)out\$(Configuration)_$(Platform)</LocalDebuggerEnvironment>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LocalDebuggerEnvironment>PATH=$(SolutionDir)out\$(Configuration)_$(Platform)</LocalDebuggerEnvironment>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+    <LocalDebuggerCommandArguments>--gtest_break_on_failure --gtest_filter=*</LocalDebuggerCommandArguments>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LocalDebuggerEnvironment>PATH=$(SolutionDir)out\$(Configuration)_$(Platform)</LocalDebuggerEnvironment>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+  </PropertyGroup>
+</Project>
diff --git a/tests/VulkanUnitTests/main.cpp b/tests/VulkanUnitTests/main.cpp
new file mode 100644
index 0000000..8f7e13f
--- /dev/null
+++ b/tests/VulkanUnitTests/main.cpp
@@ -0,0 +1,21 @@
+// Copyright 2017 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.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "gtest/gtest.h"
+
+int main(int argc, char **argv)
+{
+	::testing::InitGoogleTest(&argc, argv);
+	return RUN_ALL_TESTS();
+}
diff --git a/tests/VulkanUnitTests/unittests.cpp b/tests/VulkanUnitTests/unittests.cpp
new file mode 100644
index 0000000..cbe1fb2
--- /dev/null
+++ b/tests/VulkanUnitTests/unittests.cpp
@@ -0,0 +1,329 @@
+// Copyright 2017 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.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// OpenGL ES unit tests that provide coverage for functionality not tested by
+// the dEQP test suite. Also used as a smoke test.
+
+#include "gtest/gtest.h"
+#include "gmock/gmock.h"
+
+#include <vulkan/vulkan.h>
+#include <vulkan/vk_icd.h>
+
+#include <cstring>
+
+typedef PFN_vkVoidFunction(__stdcall *vk_icdGetInstanceProcAddrPtr)(VkInstance, const char*);
+
+#if defined(_WIN32)
+#include <Windows.h>
+#endif
+
+class SwiftShaderVulkanTest : public testing::Test
+{
+protected:
+	void SetUp() override
+	{
+		HMODULE libVulkan = nullptr;
+		const char* libVulkanName = nullptr;
+
+		#if defined(_WIN64)
+			#if defined(NDEBUG)
+				libVulkanName = "..\\..\\..\\vulkan\\x64\\Release\\vk_swiftshader.dll";
+			#else
+				libVulkanName = "..\\..\\..\\vulkan\\x64\\Debug\\vk_swiftshader.dll";
+			#endif
+		#elif defined(_WIN32)
+			#if defined(NDEBUG)
+				libVulkanName = "..\\..\\..\\vulkan\\Win32\\Release\\vk_swiftshader.dll";
+			#else
+				libVulkanName = "..\\..\\..\\vulkan\\Win32\\Debug\\vk_swiftshader.dll";
+			#endif
+		#endif
+
+		#if defined(_WIN32)
+			libVulkan = LoadLibraryA(libVulkanName);
+			EXPECT_NE((HMODULE)NULL, libVulkan);
+			vk_icdGetInstanceProcAddr = (vk_icdGetInstanceProcAddrPtr)GetProcAddress(libVulkan, "vk_icdGetInstanceProcAddr");
+			EXPECT_NE((vk_icdGetInstanceProcAddrPtr)nullptr, vk_icdGetInstanceProcAddr);
+		#endif
+	}
+
+	vk_icdGetInstanceProcAddrPtr vk_icdGetInstanceProcAddr = nullptr;
+};
+
+TEST_F(SwiftShaderVulkanTest, API_Check)
+{
+	if(vk_icdGetInstanceProcAddr)
+	{
+		#define API_CHECK(function) auto function = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, #function); \
+		                            EXPECT_NE(function, nullptr);
+
+		API_CHECK(vkCreateInstance);
+		API_CHECK(vkDestroyInstance);
+		API_CHECK(vkEnumeratePhysicalDevices);
+		API_CHECK(vkGetPhysicalDeviceFeatures);
+		API_CHECK(vkGetPhysicalDeviceFormatProperties);
+		API_CHECK(vkGetPhysicalDeviceImageFormatProperties);
+		API_CHECK(vkGetPhysicalDeviceProperties);
+		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties);
+		API_CHECK(vkGetPhysicalDeviceMemoryProperties);
+		API_CHECK(vkGetInstanceProcAddr);
+		API_CHECK(vkGetDeviceProcAddr);
+		API_CHECK(vkCreateDevice);
+		API_CHECK(vkDestroyDevice);
+		API_CHECK(vkEnumerateInstanceExtensionProperties);
+		API_CHECK(vkEnumerateDeviceExtensionProperties);
+		API_CHECK(vkEnumerateInstanceLayerProperties);
+		API_CHECK(vkEnumerateDeviceLayerProperties);
+		API_CHECK(vkGetDeviceQueue);
+		API_CHECK(vkQueueSubmit);
+		API_CHECK(vkQueueWaitIdle);
+		API_CHECK(vkDeviceWaitIdle);
+		API_CHECK(vkAllocateMemory);
+		API_CHECK(vkFreeMemory);
+		API_CHECK(vkMapMemory);
+		API_CHECK(vkUnmapMemory);
+		API_CHECK(vkFlushMappedMemoryRanges);
+		API_CHECK(vkInvalidateMappedMemoryRanges);
+		API_CHECK(vkGetDeviceMemoryCommitment);
+		API_CHECK(vkBindBufferMemory);
+		API_CHECK(vkBindImageMemory);
+		API_CHECK(vkGetBufferMemoryRequirements);
+		API_CHECK(vkGetImageMemoryRequirements);
+		API_CHECK(vkGetImageSparseMemoryRequirements);
+		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties);
+		API_CHECK(vkQueueBindSparse);
+		API_CHECK(vkCreateFence);
+		API_CHECK(vkDestroyFence);
+		API_CHECK(vkResetFences);
+		API_CHECK(vkGetFenceStatus);
+		API_CHECK(vkWaitForFences);
+		API_CHECK(vkCreateSemaphore);
+		API_CHECK(vkDestroySemaphore);
+		API_CHECK(vkCreateEvent);
+		API_CHECK(vkDestroyEvent);
+		API_CHECK(vkGetEventStatus);
+		API_CHECK(vkSetEvent);
+		API_CHECK(vkResetEvent);
+		API_CHECK(vkCreateQueryPool);
+		API_CHECK(vkDestroyQueryPool);
+		API_CHECK(vkGetQueryPoolResults);
+		API_CHECK(vkCreateBuffer);
+		API_CHECK(vkDestroyBuffer);
+		API_CHECK(vkCreateBufferView);
+		API_CHECK(vkDestroyBufferView);
+		API_CHECK(vkCreateImage);
+		API_CHECK(vkDestroyImage);
+		API_CHECK(vkGetImageSubresourceLayout);
+		API_CHECK(vkCreateImageView);
+		API_CHECK(vkDestroyImageView);
+		API_CHECK(vkCreateShaderModule);
+		API_CHECK(vkDestroyShaderModule);
+		API_CHECK(vkCreatePipelineCache);
+		API_CHECK(vkDestroyPipelineCache);
+		API_CHECK(vkGetPipelineCacheData);
+		API_CHECK(vkMergePipelineCaches);
+		API_CHECK(vkCreateGraphicsPipelines);
+		API_CHECK(vkCreateComputePipelines);
+		API_CHECK(vkDestroyPipeline);
+		API_CHECK(vkCreatePipelineLayout);
+		API_CHECK(vkDestroyPipelineLayout);
+		API_CHECK(vkCreateSampler);
+		API_CHECK(vkDestroySampler);
+		API_CHECK(vkCreateDescriptorSetLayout);
+		API_CHECK(vkDestroyDescriptorSetLayout);
+		API_CHECK(vkCreateDescriptorPool);
+		API_CHECK(vkDestroyDescriptorPool);
+		API_CHECK(vkResetDescriptorPool);
+		API_CHECK(vkAllocateDescriptorSets);
+		API_CHECK(vkFreeDescriptorSets);
+		API_CHECK(vkUpdateDescriptorSets);
+		API_CHECK(vkCreateFramebuffer);
+		API_CHECK(vkDestroyFramebuffer);
+		API_CHECK(vkCreateRenderPass);
+		API_CHECK(vkDestroyRenderPass);
+		API_CHECK(vkGetRenderAreaGranularity);
+		API_CHECK(vkCreateCommandPool);
+		API_CHECK(vkDestroyCommandPool);
+		API_CHECK(vkResetCommandPool);
+		API_CHECK(vkAllocateCommandBuffers);
+		API_CHECK(vkFreeCommandBuffers);
+		API_CHECK(vkBeginCommandBuffer);
+		API_CHECK(vkEndCommandBuffer);
+		API_CHECK(vkResetCommandBuffer);
+		API_CHECK(vkCmdBindPipeline);
+		API_CHECK(vkCmdSetViewport);
+		API_CHECK(vkCmdSetScissor);
+		API_CHECK(vkCmdSetLineWidth);
+		API_CHECK(vkCmdSetDepthBias);
+		API_CHECK(vkCmdSetBlendConstants);
+		API_CHECK(vkCmdSetDepthBounds);
+		API_CHECK(vkCmdSetStencilCompareMask);
+		API_CHECK(vkCmdSetStencilWriteMask);
+		API_CHECK(vkCmdSetStencilReference);
+		API_CHECK(vkCmdBindDescriptorSets);
+		API_CHECK(vkCmdBindIndexBuffer);
+		API_CHECK(vkCmdBindVertexBuffers);
+		API_CHECK(vkCmdDraw);
+		API_CHECK(vkCmdDrawIndexed);
+		API_CHECK(vkCmdDrawIndirect);
+		API_CHECK(vkCmdDrawIndexedIndirect);
+		API_CHECK(vkCmdDispatch);
+		API_CHECK(vkCmdDispatchIndirect);
+		API_CHECK(vkCmdCopyBuffer);
+		API_CHECK(vkCmdCopyImage);
+		API_CHECK(vkCmdBlitImage);
+		API_CHECK(vkCmdCopyBufferToImage);
+		API_CHECK(vkCmdCopyImageToBuffer);
+		API_CHECK(vkCmdUpdateBuffer);
+		API_CHECK(vkCmdFillBuffer);
+		API_CHECK(vkCmdClearColorImage);
+		API_CHECK(vkCmdClearDepthStencilImage);
+		API_CHECK(vkCmdClearAttachments);
+		API_CHECK(vkCmdResolveImage);
+		API_CHECK(vkCmdSetEvent);
+		API_CHECK(vkCmdResetEvent);
+		API_CHECK(vkCmdWaitEvents);
+		API_CHECK(vkCmdPipelineBarrier);
+		API_CHECK(vkCmdBeginQuery);
+		API_CHECK(vkCmdEndQuery);
+		API_CHECK(vkCmdResetQueryPool);
+		API_CHECK(vkCmdWriteTimestamp);
+		API_CHECK(vkCmdCopyQueryPoolResults);
+		API_CHECK(vkCmdPushConstants);
+		API_CHECK(vkCmdBeginRenderPass);
+		API_CHECK(vkCmdNextSubpass);
+		API_CHECK(vkCmdEndRenderPass);
+		API_CHECK(vkCmdExecuteCommands);
+		API_CHECK(vkEnumerateInstanceVersion);
+		API_CHECK(vkBindBufferMemory2);
+		API_CHECK(vkBindImageMemory2);
+		API_CHECK(vkGetDeviceGroupPeerMemoryFeatures);
+		API_CHECK(vkCmdSetDeviceMask);
+		API_CHECK(vkCmdDispatchBase);
+		API_CHECK(vkEnumeratePhysicalDeviceGroups);
+		API_CHECK(vkGetImageMemoryRequirements2);
+		API_CHECK(vkGetBufferMemoryRequirements2);
+		API_CHECK(vkGetImageSparseMemoryRequirements2);
+		API_CHECK(vkGetPhysicalDeviceFeatures2);
+		API_CHECK(vkGetPhysicalDeviceProperties2);
+		API_CHECK(vkGetPhysicalDeviceFormatProperties2);
+		API_CHECK(vkGetPhysicalDeviceImageFormatProperties2);
+		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties2);
+		API_CHECK(vkGetPhysicalDeviceMemoryProperties2);
+		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties2);
+		API_CHECK(vkTrimCommandPool);
+		API_CHECK(vkGetDeviceQueue2);
+		API_CHECK(vkCreateSamplerYcbcrConversion);
+		API_CHECK(vkDestroySamplerYcbcrConversion);
+		API_CHECK(vkCreateDescriptorUpdateTemplate);
+		API_CHECK(vkDestroyDescriptorUpdateTemplate);
+		API_CHECK(vkUpdateDescriptorSetWithTemplate);
+		API_CHECK(vkGetPhysicalDeviceExternalBufferProperties);
+		API_CHECK(vkGetPhysicalDeviceExternalFenceProperties);
+		API_CHECK(vkGetPhysicalDeviceExternalSemaphoreProperties);
+		API_CHECK(vkGetDescriptorSetLayoutSupport);
+		// VK_KHR_bind_memory2
+		API_CHECK(vkBindBufferMemory2KHR);
+		API_CHECK(vkBindImageMemory2KHR);
+		// VK_KHR_descriptor_update_template
+		API_CHECK(vkCreateDescriptorUpdateTemplateKHR);
+		API_CHECK(vkDestroyDescriptorUpdateTemplateKHR);
+		API_CHECK(vkUpdateDescriptorSetWithTemplateKHR);
+		// VK_KHR_device_group
+		API_CHECK(vkGetDeviceGroupPeerMemoryFeaturesKHR);
+		API_CHECK(vkCmdSetDeviceMaskKHR);
+		API_CHECK(vkCmdDispatchBaseKHR);
+		// VK_KHR_device_group_creation
+		API_CHECK(vkEnumeratePhysicalDeviceGroupsKHR);
+		// VK_KHR_external_fence_capabilities
+		API_CHECK(vkGetPhysicalDeviceExternalFencePropertiesKHR);
+		// VK_KHR_external_memory_capabilities
+		API_CHECK(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
+		// VK_KHR_external_semaphore_capabilities
+		API_CHECK(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
+		// VK_KHR_get_memory_requirements2
+		API_CHECK(vkGetImageMemoryRequirements2KHR);
+		API_CHECK(vkGetBufferMemoryRequirements2KHR);
+		API_CHECK(vkGetImageSparseMemoryRequirements2KHR);
+		// VK_KHR_get_physical_device_properties2
+		API_CHECK(vkGetPhysicalDeviceFeatures2KHR);
+		API_CHECK(vkGetPhysicalDeviceProperties2KHR);
+		API_CHECK(vkGetPhysicalDeviceFormatProperties2KHR);
+		API_CHECK(vkGetPhysicalDeviceImageFormatProperties2KHR);
+		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
+		API_CHECK(vkGetPhysicalDeviceMemoryProperties2KHR);
+		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
+		// VK_KHR_maintenance1
+		API_CHECK(vkTrimCommandPoolKHR);
+		// VK_KHR_maintenance3
+		API_CHECK(vkGetDescriptorSetLayoutSupportKHR);
+		// VK_KHR_sampler_ycbcr_conversion
+		API_CHECK(vkCreateSamplerYcbcrConversionKHR);
+		API_CHECK(vkDestroySamplerYcbcrConversionKHR);
+
+		#undef API_CHECK
+
+		auto bad_function = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "bad_function");
+		EXPECT_EQ(bad_function, nullptr);
+	}
+}
+
+TEST_F(SwiftShaderVulkanTest, Version)
+{
+	if(vk_icdGetInstanceProcAddr)
+	{
+		auto vkCreateInstance = (PFN_vkCreateInstance)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateInstance");
+		EXPECT_NE(vkCreateInstance, nullptr);
+
+		const VkInstanceCreateInfo createInfo = 
+		{
+				VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, // sType
+				nullptr, // pNext
+				0, // flags
+				nullptr, // pApplicationInfo
+				0, // enabledLayerCount
+				nullptr, // ppEnabledLayerNames
+				0, // enabledExtensionCount
+				nullptr, // ppEnabledExtensionNames
+		};
+		VkInstance instance;
+		VkResult result = vkCreateInstance(&createInfo, nullptr, &instance);
+		EXPECT_EQ(result, VK_SUCCESS);
+
+		auto vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumeratePhysicalDevices");
+		EXPECT_NE(vkEnumeratePhysicalDevices, nullptr);
+
+		uint32_t pPhysicalDeviceCount = 0;
+		result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, nullptr);
+		EXPECT_EQ(result, VK_SUCCESS);
+		EXPECT_EQ(pPhysicalDeviceCount, 1);
+
+		VkPhysicalDevice pPhysicalDevice = VK_NULL_HANDLE;
+		result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, &pPhysicalDevice);
+		EXPECT_EQ(result, VK_SUCCESS);
+		EXPECT_NE(pPhysicalDevice, (VkPhysicalDevice)VK_NULL_HANDLE);
+
+		auto vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkGetPhysicalDeviceProperties");
+		EXPECT_NE(vkEnumeratePhysicalDevices, nullptr);
+
+		VkPhysicalDeviceProperties physicalDeviceProperties;
+		vkGetPhysicalDeviceProperties(pPhysicalDevice, &physicalDeviceProperties);
+		EXPECT_EQ(physicalDeviceProperties.apiVersion, VK_API_VERSION_1_1);
+		EXPECT_EQ(physicalDeviceProperties.deviceID, 0xC0DE);
+		EXPECT_EQ(physicalDeviceProperties.deviceType, VK_PHYSICAL_DEVICE_TYPE_CPU);
+
+		EXPECT_EQ(strncmp(physicalDeviceProperties.deviceName, "SwiftShader Device", VK_MAX_PHYSICAL_DEVICE_NAME_SIZE), 0);
+	}
+}
