Use more explicit include paths.

This helps clarify dependencies and simplifies include paths.

Bug swiftshader:86

Change-Id: I564ee420bb9029fa6428e49b63a86d633301bec2
Reviewed-on: https://swiftshader-review.googlesource.com/13288
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e96a24..f60f6e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -688,11 +688,6 @@
 
 set(COMMON_INCLUDE_DIR
     ${SOURCE_DIR}
-    ${SOURCE_DIR}/Common
-    ${SOURCE_DIR}/Main
-    ${SOURCE_DIR}/Reactor
-    ${SOURCE_DIR}/Renderer
-    ${SOURCE_DIR}/Shader
     ${CMAKE_SOURCE_DIR}/include
     ${LLVM_INCLUDE_DIR}
 )
diff --git a/src/Android.mk b/src/Android.mk
index 8621c9f..3eebf5a 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -4,11 +4,7 @@
 	bionic \
 	$(LOCAL_PATH)/../include \
 	$(LOCAL_PATH)/OpenGL/ \
-	$(LOCAL_PATH) \
-	$(LOCAL_PATH)/Renderer/ \
-	$(LOCAL_PATH)/Common/ \
-	$(LOCAL_PATH)/Shader/ \
-	$(LOCAL_PATH)/Main/
+	$(LOCAL_PATH)
 
 ifdef use_subzero
 COMMON_C_INCLUDES += \
diff --git a/src/Main/BUILD.gn b/src/Main/BUILD.gn
index 1f6d69c..99882a9 100644
--- a/src/Main/BUILD.gn
+++ b/src/Main/BUILD.gn
@@ -72,7 +72,6 @@
 
   include_dirs = [
     "..",
-    "../Common",
   ]
 
   if (is_mac) {
diff --git a/src/Main/Config.cpp b/src/Main/Config.cpp
index cee01ee..7cb309a 100644
--- a/src/Main/Config.cpp
+++ b/src/Main/Config.cpp
@@ -14,8 +14,8 @@
 
 #include "Config.hpp"
 
-#include "Thread.hpp"
-#include "Timer.hpp"
+#include "Common/Thread.hpp"
+#include "Common/Timer.hpp"
 
 namespace sw
 {
diff --git a/src/Main/FrameBuffer.cpp b/src/Main/FrameBuffer.cpp
index d3e6383..96b8e02 100644
--- a/src/Main/FrameBuffer.cpp
+++ b/src/Main/FrameBuffer.cpp
@@ -14,9 +14,9 @@
 
 #include "FrameBuffer.hpp"
 
-#include "Timer.hpp"
 #include "Renderer/Surface.hpp"
 #include "Reactor/Reactor.hpp"
+#include "Common/Timer.hpp"
 #include "Common/Debug.hpp"
 
 #include <stdio.h>
diff --git a/src/Main/FrameBufferAndroid.cpp b/src/Main/FrameBufferAndroid.cpp
index 16e63ab..a12ae94 100644
--- a/src/Main/FrameBufferAndroid.cpp
+++ b/src/Main/FrameBufferAndroid.cpp
@@ -13,7 +13,8 @@
 // limitations under the License.
 
 #include "FrameBufferAndroid.hpp"
-#include "GrallocAndroid.hpp"
+
+#include "Common/GrallocAndroid.hpp"
 
 #include <system/window.h>
 #include <cutils/log.h>
diff --git a/src/Main/FrameBufferDD.cpp b/src/Main/FrameBufferDD.cpp
index 9d85ea5..36570bd 100644
--- a/src/Main/FrameBufferDD.cpp
+++ b/src/Main/FrameBufferDD.cpp
@@ -14,7 +14,7 @@
 
 #include "FrameBufferDD.hpp"
 
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Main/FrameBufferGDI.cpp b/src/Main/FrameBufferGDI.cpp
index e528d26..551a476 100644
--- a/src/Main/FrameBufferGDI.cpp
+++ b/src/Main/FrameBufferGDI.cpp
@@ -14,7 +14,7 @@
 
 #include "FrameBufferGDI.hpp"
 
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Main/FrameBufferX11.cpp b/src/Main/FrameBufferX11.cpp
index eeef9f2..365c638 100644
--- a/src/Main/FrameBufferX11.cpp
+++ b/src/Main/FrameBufferX11.cpp
@@ -15,7 +15,7 @@
 #include "FrameBufferX11.hpp"
 
 #include "libX11.hpp"
-#include "Timer.hpp"
+#include "Common/Timer.hpp"
 
 #include <sys/ipc.h>
 #include <sys/shm.h>
diff --git a/src/Main/SwiftConfig.cpp b/src/Main/SwiftConfig.cpp
index b1cc2e9..e29c82f 100644
--- a/src/Main/SwiftConfig.cpp
+++ b/src/Main/SwiftConfig.cpp
@@ -14,10 +14,10 @@
 
 #include "SwiftConfig.hpp"
 
-#include "Configurator.hpp"
-#include "Debug.hpp"
 #include "Config.hpp"
-#include "Version.h"
+#include "Common/Configurator.hpp"
+#include "Common/Debug.hpp"
+#include "Common/Version.h"
 
 #include <sstream>
 #include <stdio.h>
diff --git a/src/OpenGL/libGLES_CM/libGLES_CM.vcxproj b/src/OpenGL/libGLES_CM/libGLES_CM.vcxproj
index 0fd77ea..298d740 100644
--- a/src/OpenGL/libGLES_CM/libGLES_CM.vcxproj
+++ b/src/OpenGL/libGLES_CM/libGLES_CM.vcxproj
@@ -125,7 +125,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

     <ClCompile>

       <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>$(SolutionDir)\src;$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;GL_API=;GL_APICALL=;GL_GLEXT_PROTOTYPES;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

@@ -154,7 +154,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

     <ClCompile>

       <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>$(SolutionDir)\src;$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;EGLAPI=;GL_API=;GL_APICALL=;GL_GLEXT_PROTOTYPES;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

diff --git a/src/OpenGL/libGLESv2/libGLESv2.vcxproj b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
index c5ccc81..4f3baaf 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.vcxproj
+++ b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
@@ -125,7 +125,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

     <ClCompile>

       <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>$(SolutionDir)\src;$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;GL_API=;GL_APICALL=;GL_GLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

@@ -156,7 +156,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

     <ClCompile>

       <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>$(SolutionDir)\src;$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(ProjectDir)/..;$(ProjectDir)/../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;GL_API=;GL_APICALL=;GL_GLEXT_PROTOTYPES;NO_SANITIZE_FUNCTION=;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index 59e7e09..8a4ba2f 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -32,10 +32,10 @@
 #include "LLVMRoutine.hpp"
 #include "LLVMRoutineManager.hpp"
 #include "x86.hpp"
-#include "CPUID.hpp"
-#include "Thread.hpp"
-#include "Memory.hpp"
-#include "MutexLock.hpp"
+#include "Common/CPUID.hpp"
+#include "Common/Thread.hpp"
+#include "Common/Memory.hpp"
+#include "Common/MutexLock.hpp"
 
 #include <fstream>
 
diff --git a/src/Reactor/Reactor.vcxproj b/src/Reactor/Reactor.vcxproj
index 05598ef..c126c35 100644
--- a/src/Reactor/Reactor.vcxproj
+++ b/src/Reactor/Reactor.vcxproj
@@ -110,7 +110,7 @@
     <ClCompile>

       <Optimization>Disabled</Optimization>

       <IntrinsicFunctions>true</IntrinsicFunctions>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

@@ -134,7 +134,7 @@
     </Midl>

     <ClCompile>

       <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <ExceptionHandling>false</ExceptionHandling>

@@ -161,7 +161,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>true</OmitFramePointers>

       <WholeProgramOptimization>true</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -190,7 +190,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

       <WholeProgramOptimization>false</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -220,7 +220,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>true</OmitFramePointers>

       <WholeProgramOptimization>true</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -251,7 +251,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

       <WholeProgramOptimization>false</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;..\..\third_party\LLVM\include;..\..\third_party\LLVM\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

diff --git a/src/Renderer/BUILD.gn b/src/Renderer/BUILD.gn
index a8ad847..04ccd2e 100644
--- a/src/Renderer/BUILD.gn
+++ b/src/Renderer/BUILD.gn
@@ -60,8 +60,5 @@
   include_dirs = [
     ".",
     "..",
-    "../Common",
-    "../Main",
-    "../Shader",
   ]
 }
diff --git a/src/Renderer/Clipper.cpp b/src/Renderer/Clipper.cpp
index cf3fe3c..a100f05 100644
--- a/src/Renderer/Clipper.cpp
+++ b/src/Renderer/Clipper.cpp
@@ -16,7 +16,7 @@
 
 #include "Polygon.hpp"
 #include "Renderer.hpp"
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/Context.cpp b/src/Renderer/Context.cpp
index 45ad436..c325de9 100644
--- a/src/Renderer/Context.cpp
+++ b/src/Renderer/Context.cpp
@@ -14,12 +14,12 @@
 
 #include "Context.hpp"
 
-#include "PixelShader.hpp"
-#include "VertexShader.hpp"
 #include "Primitive.hpp"
 #include "Surface.hpp"
-#include "Memory.hpp"
-#include "Debug.hpp"
+#include "Shader/PixelShader.hpp"
+#include "Shader/VertexShader.hpp"
+#include "Common/Memory.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/Renderer/Matrix.cpp b/src/Renderer/Matrix.cpp
index 1b27bf8..0da07e5 100644
--- a/src/Renderer/Matrix.cpp
+++ b/src/Renderer/Matrix.cpp
@@ -15,7 +15,7 @@
 #include "Matrix.hpp"
 
 #include "Point.hpp"
-#include "Math.hpp"
+#include "Common/Math.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/PixelProcessor.cpp b/src/Renderer/PixelProcessor.cpp
index abf6593..356aa47 100644
--- a/src/Renderer/PixelProcessor.cpp
+++ b/src/Renderer/PixelProcessor.cpp
@@ -14,13 +14,13 @@
 
 #include "PixelProcessor.hpp"
 
-#include "PixelPipeline.hpp"
-#include "PixelProgram.hpp"
-#include "PixelShader.hpp"
 #include "Surface.hpp"
 #include "Primitive.hpp"
-#include "Constants.hpp"
-#include "Debug.hpp"
+#include "Shader/PixelPipeline.hpp"
+#include "Shader/PixelProgram.hpp"
+#include "Shader/PixelShader.hpp"
+#include "Shader/Constants.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/Renderer/Primitive.hpp b/src/Renderer/Primitive.hpp
index 9f19c4b..52daa18 100644
--- a/src/Renderer/Primitive.hpp
+++ b/src/Renderer/Primitive.hpp
@@ -16,7 +16,7 @@
 #define sw_Primitive_hpp
 
 #include "Vertex.hpp"
-#include "Config.hpp"
+#include "Main/Config.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/QuadRasterizer.cpp b/src/Renderer/QuadRasterizer.cpp
index 795e1ee..e54ba73 100644
--- a/src/Renderer/QuadRasterizer.cpp
+++ b/src/Renderer/QuadRasterizer.cpp
@@ -14,11 +14,11 @@
 
 #include "QuadRasterizer.hpp"
 
-#include "Math.hpp"
 #include "Primitive.hpp"
 #include "Renderer.hpp"
-#include "Constants.hpp"
-#include "Debug.hpp"
+#include "Shader/Constants.hpp"
+#include "Common/Math.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/QuadRasterizer.hpp b/src/Renderer/QuadRasterizer.hpp
index 4dfe527..1d7681d 100644
--- a/src/Renderer/QuadRasterizer.hpp
+++ b/src/Renderer/QuadRasterizer.hpp
@@ -16,10 +16,9 @@
 #define sw_QuadRasterizer_hpp
 
 #include "Rasterizer.hpp"
-#include "ShaderCore.hpp"
-#include "PixelShader.hpp"
-
-#include "Types.hpp"
+#include "Shader/ShaderCore.hpp"
+#include "Shader/PixelShader.hpp"
+#include "Common/Types.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/Rasterizer.hpp b/src/Renderer/Rasterizer.hpp
index 8d0b4fb..3811a25 100644
--- a/src/Renderer/Rasterizer.hpp
+++ b/src/Renderer/Rasterizer.hpp
@@ -16,9 +16,8 @@
 #define sw_Rasterizer_hpp
 
 #include "Context.hpp"
-
 #include "PixelProcessor.hpp"
-#include "Config.hpp"
+#include "Main/Config.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/Renderer.cpp b/src/Renderer/Renderer.cpp
index 6fda715..b7c423f 100644
--- a/src/Renderer/Renderer.cpp
+++ b/src/Renderer/Renderer.cpp
@@ -15,21 +15,21 @@
 #include "Renderer.hpp"
 
 #include "Clipper.hpp"
-#include "Math.hpp"
-#include "FrameBuffer.hpp"
-#include "Timer.hpp"
 #include "Surface.hpp"
-#include "Half.hpp"
 #include "Primitive.hpp"
 #include "Polygon.hpp"
-#include "SwiftConfig.hpp"
-#include "MutexLock.hpp"
-#include "CPUID.hpp"
-#include "Memory.hpp"
-#include "Resource.hpp"
-#include "Constants.hpp"
-#include "Debug.hpp"
+#include "Main/FrameBuffer.hpp"
+#include "Main/SwiftConfig.hpp"
 #include "Reactor/Reactor.hpp"
+#include "Shader/Constants.hpp"
+#include "Common/MutexLock.hpp"
+#include "Common/CPUID.hpp"
+#include "Common/Memory.hpp"
+#include "Common/Resource.hpp"
+#include "Common/Half.hpp"
+#include "Common/Math.hpp"
+#include "Common/Timer.hpp"
+#include "Common/Debug.hpp"
 
 #undef max
 
diff --git a/src/Renderer/Sampler.cpp b/src/Renderer/Sampler.cpp
index 60f5e35..123a1c9 100644
--- a/src/Renderer/Sampler.cpp
+++ b/src/Renderer/Sampler.cpp
@@ -16,8 +16,8 @@
 
 #include "Context.hpp"
 #include "Surface.hpp"
-#include "PixelRoutine.hpp"
-#include "Debug.hpp"
+#include "Shader/PixelRoutine.hpp"
+#include "Common/Debug.hpp"
 
 #include <memory.h>
 #include <string.h>
diff --git a/src/Renderer/SetupProcessor.cpp b/src/Renderer/SetupProcessor.cpp
index bc456e9..7588810 100644
--- a/src/Renderer/SetupProcessor.cpp
+++ b/src/Renderer/SetupProcessor.cpp
@@ -14,13 +14,13 @@
 
 #include "SetupProcessor.hpp"
 
-#include "SetupRoutine.hpp"
 #include "Primitive.hpp"
 #include "Polygon.hpp"
 #include "Context.hpp"
 #include "Renderer.hpp"
-#include "Constants.hpp"
-#include "Debug.hpp"
+#include "Shader/SetupRoutine.hpp"
+#include "Shader/Constants.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/TextureStage.cpp b/src/Renderer/TextureStage.cpp
index 583f82e..0327478 100644
--- a/src/Renderer/TextureStage.cpp
+++ b/src/Renderer/TextureStage.cpp
@@ -15,7 +15,7 @@
 #include "TextureStage.hpp"
 
 #include "Sampler.hpp"
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/Renderer/Vector.cpp b/src/Renderer/Vector.cpp
index a212f3d..4a02534 100644
--- a/src/Renderer/Vector.cpp
+++ b/src/Renderer/Vector.cpp
@@ -14,8 +14,8 @@
 
 #include "Vector.hpp"
 
-#include "Math.hpp"
 #include "Matrix.hpp"
+#include "Common/Math.hpp"
 
 namespace sw
 {
diff --git a/src/Renderer/VertexProcessor.cpp b/src/Renderer/VertexProcessor.cpp
index 6972d94..2fa6caa 100644
--- a/src/Renderer/VertexProcessor.cpp
+++ b/src/Renderer/VertexProcessor.cpp
@@ -14,13 +14,13 @@
 
 #include "VertexProcessor.hpp"
 
-#include "Math.hpp"
-#include "VertexPipeline.hpp"
-#include "VertexProgram.hpp"
-#include "VertexShader.hpp"
-#include "PixelShader.hpp"
-#include "Constants.hpp"
-#include "Debug.hpp"
+#include "Shader/VertexPipeline.hpp"
+#include "Shader/VertexProgram.hpp"
+#include "Shader/VertexShader.hpp"
+#include "Shader/PixelShader.hpp"
+#include "Shader/Constants.hpp"
+#include "Common/Math.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/Shader/BUILD.gn b/src/Shader/BUILD.gn
index 3b19766..baf1233 100644
--- a/src/Shader/BUILD.gn
+++ b/src/Shader/BUILD.gn
@@ -55,8 +55,5 @@
   include_dirs = [
     ".",
     "..",
-    "../Common",
-    "../Main",
-    "../Renderer",
   ]
 }
diff --git a/src/Shader/PixelPipeline.cpp b/src/Shader/PixelPipeline.cpp
index 4ed1830..de594e7 100644
--- a/src/Shader/PixelPipeline.cpp
+++ b/src/Shader/PixelPipeline.cpp
@@ -13,8 +13,8 @@
 // limitations under the License.
 
 #include "PixelPipeline.hpp"
-#include "Renderer.hpp"
 #include "SamplerCore.hpp"
+#include "Renderer/Renderer.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/PixelProgram.cpp b/src/Shader/PixelProgram.cpp
index 948f103..6816238 100644
--- a/src/Shader/PixelProgram.cpp
+++ b/src/Shader/PixelProgram.cpp
@@ -13,9 +13,10 @@
 // limitations under the License.
 
 #include "PixelProgram.hpp"
-#include "Primitive.hpp"
-#include "Renderer.hpp"
+
 #include "SamplerCore.hpp"
+#include "Renderer/Primitive.hpp"
+#include "Renderer/Renderer.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/PixelRoutine.cpp b/src/Shader/PixelRoutine.cpp
index 4794557..975d3be 100644
--- a/src/Shader/PixelRoutine.cpp
+++ b/src/Shader/PixelRoutine.cpp
@@ -14,13 +14,13 @@
 
 #include "PixelRoutine.hpp"
 
-#include "Renderer.hpp"
-#include "QuadRasterizer.hpp"
-#include "Surface.hpp"
-#include "Primitive.hpp"
 #include "SamplerCore.hpp"
 #include "Constants.hpp"
-#include "Debug.hpp"
+#include "Renderer/Renderer.hpp"
+#include "Renderer/QuadRasterizer.hpp"
+#include "Renderer/Surface.hpp"
+#include "Renderer/Primitive.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/PixelRoutine.hpp b/src/Shader/PixelRoutine.hpp
index d57f2cb..e9cee79 100644
--- a/src/Shader/PixelRoutine.hpp
+++ b/src/Shader/PixelRoutine.hpp
@@ -15,7 +15,7 @@
 #ifndef sw_PixelRoutine_hpp
 #define sw_PixelRoutine_hpp
 
-#include "QuadRasterizer.hpp"
+#include "Renderer/QuadRasterizer.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/PixelShader.cpp b/src/Shader/PixelShader.cpp
index c659248..9e36be6 100644
--- a/src/Shader/PixelShader.cpp
+++ b/src/Shader/PixelShader.cpp
@@ -14,7 +14,7 @@
 
 #include "PixelShader.hpp"
 
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/Shader/SamplerCore.cpp b/src/Shader/SamplerCore.cpp
index cf02699..86c08fa 100644
--- a/src/Shader/SamplerCore.cpp
+++ b/src/Shader/SamplerCore.cpp
@@ -15,7 +15,7 @@
 #include "SamplerCore.hpp"
 
 #include "Constants.hpp"
-#include "Debug.hpp"
+#include "Common/Debug.hpp"
 
 namespace
 {
diff --git a/src/Shader/SetupRoutine.hpp b/src/Shader/SetupRoutine.hpp
index ebcc080..c1c3205 100644
--- a/src/Shader/SetupRoutine.hpp
+++ b/src/Shader/SetupRoutine.hpp
@@ -15,7 +15,7 @@
 #ifndef sw_SetupRoutine_hpp
 #define sw_SetupRoutine_hpp
 
-#include "SetupProcessor.hpp"
+#include "Renderer/SetupProcessor.hpp"
 #include "Reactor/Reactor.hpp"
 
 namespace sw
diff --git a/src/Shader/Shader.cpp b/src/Shader/Shader.cpp
index ff1482e..e99f13a 100644
--- a/src/Shader/Shader.cpp
+++ b/src/Shader/Shader.cpp
@@ -16,8 +16,8 @@
 
 #include "VertexShader.hpp"
 #include "PixelShader.hpp"
-#include "Math.hpp"
-#include "Debug.hpp"
+#include "Common/Math.hpp"
+#include "Common/Debug.hpp"
 
 #include <set>
 #include <fstream>
diff --git a/src/Shader/ShaderCore.hpp b/src/Shader/ShaderCore.hpp
index c7b8be4..bcb4cb3 100644
--- a/src/Shader/ShaderCore.hpp
+++ b/src/Shader/ShaderCore.hpp
@@ -15,9 +15,9 @@
 #ifndef sw_ShaderCore_hpp
 #define sw_ShaderCore_hpp
 
-#include "Debug.hpp"
 #include "Shader.hpp"
 #include "Reactor/Reactor.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/VertexPipeline.cpp b/src/Shader/VertexPipeline.cpp
index 8792884..129d8a8 100644
--- a/src/Shader/VertexPipeline.cpp
+++ b/src/Shader/VertexPipeline.cpp
@@ -14,9 +14,9 @@
 
 #include "VertexPipeline.hpp"
 
-#include "Vertex.hpp"
-#include "Renderer.hpp"
-#include "Debug.hpp"
+#include "Renderer/Vertex.hpp"
+#include "Renderer/Renderer.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/src/Shader/VertexPipeline.hpp b/src/Shader/VertexPipeline.hpp
index e3c0cbe..0736afb 100644
--- a/src/Shader/VertexPipeline.hpp
+++ b/src/Shader/VertexPipeline.hpp
@@ -17,8 +17,8 @@
 
 #include "VertexRoutine.hpp"
 
-#include "Context.hpp"
-#include "VertexProcessor.hpp"
+#include "Renderer/Context.hpp"
+#include "Renderer/VertexProcessor.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/VertexProgram.cpp b/src/Shader/VertexProgram.cpp
index c9ed8aa..9a8495f 100644
--- a/src/Shader/VertexProgram.cpp
+++ b/src/Shader/VertexProgram.cpp
@@ -14,12 +14,12 @@
 
 #include "VertexProgram.hpp"
 
-#include "Renderer.hpp"
 #include "VertexShader.hpp"
-#include "Vertex.hpp"
-#include "Half.hpp"
 #include "SamplerCore.hpp"
-#include "Debug.hpp"
+#include "Renderer/Renderer.hpp"
+#include "Renderer/Vertex.hpp"
+#include "Common/Half.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/VertexProgram.hpp b/src/Shader/VertexProgram.hpp
index b537af3..f1c776a 100644
--- a/src/Shader/VertexProgram.hpp
+++ b/src/Shader/VertexProgram.hpp
@@ -17,10 +17,10 @@
 
 #include "VertexRoutine.hpp"
 #include "ShaderCore.hpp"
-#include "SamplerCore.hpp"
 
-#include "Stream.hpp"
-#include "Types.hpp"
+#include "SamplerCore.hpp"
+#include "Renderer/Stream.hpp"
+#include "Common/Types.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/VertexRoutine.cpp b/src/Shader/VertexRoutine.cpp
index 0f1ccdf..2d7c2c6 100644
--- a/src/Shader/VertexRoutine.cpp
+++ b/src/Shader/VertexRoutine.cpp
@@ -15,11 +15,11 @@
 #include "VertexRoutine.hpp"
 
 #include "VertexShader.hpp"
-#include "Vertex.hpp"
-#include "Half.hpp"
-#include "Renderer.hpp"
 #include "Constants.hpp"
-#include "Debug.hpp"
+#include "Renderer/Vertex.hpp"
+#include "Renderer/Renderer.hpp"
+#include "Common/Half.hpp"
+#include "Common/Debug.hpp"
 
 namespace sw
 {
diff --git a/src/Shader/VertexShader.cpp b/src/Shader/VertexShader.cpp
index 361c76f..260ee4f 100644
--- a/src/Shader/VertexShader.cpp
+++ b/src/Shader/VertexShader.cpp
@@ -14,8 +14,8 @@
 
 #include "VertexShader.hpp"
 
-#include "Vertex.hpp"
-#include "Debug.hpp"
+#include "Renderer/Vertex.hpp"
+#include "Common/Debug.hpp"
 
 #include <string.h>
 
diff --git a/src/SwiftShader/SwiftShader.vcxproj b/src/SwiftShader/SwiftShader.vcxproj
index 3d6cb2f..ec9c467 100644
--- a/src/SwiftShader/SwiftShader.vcxproj
+++ b/src/SwiftShader/SwiftShader.vcxproj
@@ -118,7 +118,7 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;_DEBUG;_LIB;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <ExceptionHandling>false</ExceptionHandling>

@@ -153,7 +153,7 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;_DEBUG;_LIB;_HAS_EXCEPTIONS=0;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <MinimalRebuild>true</MinimalRebuild>

       <ExceptionHandling>false</ExceptionHandling>

@@ -186,7 +186,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>true</OmitFramePointers>

       <WholeProgramOptimization>true</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -221,7 +221,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

       <WholeProgramOptimization>false</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -257,7 +257,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>true</OmitFramePointers>

       <WholeProgramOptimization>true</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

@@ -295,7 +295,7 @@
       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>false</OmitFramePointers>

       <WholeProgramOptimization>false</WholeProgramOptimization>

-      <AdditionalIncludeDirectories>..\;..\Main;..\Renderer;..\Shader;..\Common;..\SwiftAsm;..\libjpeg;..\SwiftShader;..\D3D9;..\Reactor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>WIN32;NO_SANITIZE_FUNCTION=;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <ExceptionHandling>false</ExceptionHandling>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>