Index: .gitignore
===================================================================
--- .gitignore	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ .gitignore	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
@@ -6,4 +6,5 @@
 crash.log
 
+*.spv
 imgui.ini
 
Index: compile.sh
===================================================================
--- compile.sh	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
+++ compile.sh	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
@@ -0,0 +1,15 @@
+# TODO: Maybe turn this into a target in the makefile
+
+OS=$(uname)
+
+if [ $OS = "Darwin" ]; then
+   VULKAN_SDK_PATH=/Users/dportnoy15/Development/vulkan-sdk-macos-1.1.108.0/macOS
+fi
+if [ $OS = "Linux" ]; then
+   VULKAN_SDK_PATH=/home/dportnoy/Desktop/VulkanSDK/1.1.106.0/x86_64
+fi
+
+echo $VULKAN_SDK_PATH
+
+$VULKAN_SDK_PATH/bin/glslangValidator -V shader.vert
+$VULKAN_SDK_PATH/bin/glslangValidator -V shader.frag
Index: aders/ColorFragmentShader.fragmentshader
===================================================================
--- shaders/ColorFragmentShader.fragmentshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,15 +1,0 @@
-#version 330 core
-
-// Interpolated values from the vertex shaders
-in vec3 fragmentColor;
-
-// Ouput data
-out vec3 color;
-
-void main(){
-
-	// Output color = color specified in the vertex shader, 
-	// interpolated between all 3 surrounding vertices
-	color = fragmentColor;
-
-}
Index: aders/SimpleFragmentShader.fragmentshader
===================================================================
--- shaders/SimpleFragmentShader.fragmentshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#version 330 core
-
-// Ouput data
-out vec3 color;
-
-void main()
-{
-
-	// Output color = red 
-	color = vec3(1,0,0);
-
-}
Index: aders/SimpleVertexShader.vertexshader
===================================================================
--- shaders/SimpleVertexShader.vertexshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-
-void main(){
-
-    gl_Position.xyz = vertexPosition_modelspace;
-    gl_Position.w = 1.0;
-
-}
-
Index: aders/TextureFragmentShader.fragmentshader
===================================================================
--- shaders/TextureFragmentShader.fragmentshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#version 330 core
-
-// Interpolated values from the vertex shaders
-in vec2 UV;
-
-// Ouput data
-out vec3 color;
-
-// Values that stay constant for the whole mesh.
-uniform sampler2D myTextureSampler;
-
-void main(){
-
-	// Output color = color of the texture at the specified UV
-	color = texture( myTextureSampler, UV ).rgb;
-}
Index: aders/TransformVertexShader-color.vertexshader
===================================================================
--- shaders/TransformVertexShader-color.vertexshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-layout(location = 1) in vec3 vertexColor;
-
-// Output data ; will be interpolated for each fragment.
-out vec3 fragmentColor;
-// Values that stay constant for the whole mesh.
-uniform mat4 MVP;
-
-void main(){	
-
-	// Output position of the vertex, in clip space : MVP * position
-	gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
-
-	// The color of each vertex will be interpolated
-	// to produce the color of each fragment
-	fragmentColor = vertexColor;
-}
-
Index: aders/TransformVertexShader.vertexshader
===================================================================
--- shaders/TransformVertexShader.vertexshader	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-layout(location = 1) in vec2 vertexUV;
-
-// Output data ; will be interpolated for each fragment.
-out vec2 UV;
-
-// Values that stay constant for the whole mesh.
-uniform mat4 MVP;
-
-void main(){
-
-	// Output position of the vertex, in clip space : MVP * position
-	gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
-	
-	// UV of the vertex. No special space for this one.
-	UV = vertexUV;
-}
-
Index: shaders/shader.frag
===================================================================
--- shaders/shader.frag	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
+++ shaders/shader.frag	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
@@ -0,0 +1,10 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 0) in vec3 fragColor;
+
+layout(location = 0) out vec4 outColor;
+
+void main() {
+    outColor = vec4(fragColor, 1.0);
+}
Index: shaders/shader.vert
===================================================================
--- shaders/shader.vert	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
+++ shaders/shader.vert	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
@@ -0,0 +1,20 @@
+#version 450
+
+layout(location = 0) out vec3 fragColor;
+
+vec2 positions[3] = vec2[](
+   vec2(0.0, -0.5),
+   vec2(0.5, 0.5),
+   vec2(-0.5, 0.5)
+);
+
+vec3 colors[3] = vec3[](
+   vec3(1.0, 0.0, 0.0),
+   vec3(0.0, 1.0, 0.0),
+   vec3(0.0, 0.0, 1.0)
+);
+
+void main() {
+   gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
+   fragColor = colors[gl_VertexIndex];
+}
Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision bfd620e370dc06281e31f8a0451c885e1aecb45e)
+++ vulkan-game.cpp	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
@@ -155,4 +155,5 @@
          createSwapChain();
          createImageViews();
+         createGraphicsPipeline();
       }
 
@@ -564,4 +565,7 @@
             }
          }
+      }
+
+      void createGraphicsPipeline() {
       }
 
