diff --git a/src/Device/Renderer.cpp b/src/Device/Renderer.cpp
index 66428f1..42dcfdd 100644
--- a/src/Device/Renderer.cpp
+++ b/src/Device/Renderer.cpp
@@ -269,7 +269,6 @@
 		draw->vertexRoutine = vertexRoutine;
 		draw->setupRoutine = setupRoutine;
 		draw->pixelRoutine = pixelRoutine;
-		draw->setupPointer = (SetupProcessor::RoutinePointer)setupRoutine->getEntry();
 		draw->setupPrimitives = setupPrimitives;
 		draw->setupState = setupState;
 
@@ -432,7 +431,7 @@
 		}
 
 		vertexRoutine = {};
-		setupRoutine.reset();
+		setupRoutine = {};
 		pixelRoutine = {};
 	}
 
@@ -614,7 +613,6 @@
 	int DrawCall::setupSolidTriangles(Triangle *triangles, Primitive *primitives, const DrawCall *drawCall, int count)
 	{
 		auto &state = drawCall->setupState;
-		auto setupRoutine = drawCall->setupPointer;
 
 		int ms = state.multiSample;
 		const DrawData *data = drawCall->data;
@@ -640,7 +638,7 @@
 					}
 				}
 
-				if(setupRoutine(primitives, triangles, &polygon, data))
+				if(drawCall->setupRoutine(primitives, triangles, &polygon, data))
 				{
 					primitives += ms;
 					visible++;
@@ -788,7 +786,6 @@
 
 	bool DrawCall::setupLine(Primitive &primitive, Triangle &triangle, const DrawCall &draw)
 	{
-		const SetupProcessor::RoutinePointer &setupRoutine = draw.setupPointer;
 		const DrawData &data = *draw.data;
 
 		float lineWidth = data.lineWidth;
@@ -876,7 +873,7 @@
 					}
 				}
 
-				return setupRoutine(&primitive, &triangle, &polygon, &data);
+				return draw.setupRoutine(&primitive, &triangle, &polygon, &data);
 			}
 		}
 		else   // Diamond test convention
@@ -982,7 +979,7 @@
 					}
 				}
 
-				return setupRoutine(&primitive, &triangle, &polygon, &data);
+				return draw.setupRoutine(&primitive, &triangle, &polygon, &data);
 			}
 		}
 
@@ -991,7 +988,6 @@
 
 	bool DrawCall::setupPoint(Primitive &primitive, Triangle &triangle, const DrawCall &draw)
 	{
-		const SetupProcessor::RoutinePointer &setupRoutine = draw.setupPointer;
 		const DrawData &data = *draw.data;
 
 		Vertex &v = triangle.v0;
@@ -1048,7 +1044,7 @@
 
 			triangle.v1.projected.x += iround(subPixF * 0.5f * pSize);
 			triangle.v2.projected.y -= iround(subPixF * 0.5f * pSize) * (data.HxF[0] > 0.0f ? 1 : -1);   // Both Direct3D and OpenGL expect (0, 0) in the top-left corner
-			return setupRoutine(&primitive, &triangle, &polygon, &data);
+			return draw.setupRoutine(&primitive, &triangle, &polygon, &data);
 		}
 
 		return false;
diff --git a/src/Device/Renderer.hpp b/src/Device/Renderer.hpp
index 71cf349..93bd9bf 100644
--- a/src/Device/Renderer.hpp
+++ b/src/Device/Renderer.hpp
@@ -155,11 +155,9 @@
 		VkLineRasterizationModeEXT lineRasterizationMode;
 
 		VertexProcessor::RoutineType vertexRoutine;
-		std::shared_ptr<Routine> setupRoutine;
+		SetupProcessor::RoutineType setupRoutine;
 		PixelProcessor::RoutineType pixelRoutine;
 
-		SetupProcessor::RoutinePointer setupPointer;
-
 		SetupFunction setupPrimitives;
 		SetupProcessor::State setupState;
 
@@ -236,7 +234,7 @@
 		PixelProcessor::State pixelState;
 
 		VertexProcessor::RoutineType vertexRoutine;
-		std::shared_ptr<Routine> setupRoutine;
+		SetupProcessor::RoutineType setupRoutine;
 		PixelProcessor::RoutineType pixelRoutine;
 
 		vk::Device* device;
diff --git a/src/Device/SetupProcessor.cpp b/src/Device/SetupProcessor.cpp
index 9984051..61634af 100644
--- a/src/Device/SetupProcessor.cpp
+++ b/src/Device/SetupProcessor.cpp
@@ -94,7 +94,7 @@
 		return state;
 	}
 
-	std::shared_ptr<Routine> SetupProcessor::routine(const State &state)
+	SetupProcessor::RoutineType SetupProcessor::routine(const State &state)
 	{
 		auto routine = routineCache->query(state);
 
@@ -114,6 +114,6 @@
 	void SetupProcessor::setRoutineCacheSize(int cacheSize)
 	{
 		delete routineCache;
-		routineCache = new RoutineCache<State>(clamp(cacheSize, 1, 65536));
+		routineCache = new RoutineCacheType(clamp(cacheSize, 1, 65536));
 	}
 }
diff --git a/src/Device/SetupProcessor.hpp b/src/Device/SetupProcessor.hpp
index 1c79710..335a6b2 100644
--- a/src/Device/SetupProcessor.hpp
+++ b/src/Device/SetupProcessor.hpp
@@ -30,6 +30,8 @@
 	struct DrawCall;
 	struct DrawData;
 
+	using SetupFunction = FunctionT<int(Primitive* primitive, const Triangle* triangle, const Polygon* polygon, const DrawData* draw)>;
+
 	class SetupProcessor
 	{
 	public:
@@ -60,7 +62,7 @@
 			uint32_t hash;
 		};
 
-		typedef bool (*RoutinePointer)(Primitive *primitive, const Triangle *triangle, const Polygon *polygon, const DrawData *draw);
+		using RoutineType = SetupFunction::RoutineType;
 
 		SetupProcessor();
 
@@ -68,12 +70,13 @@
 
 	protected:
 		State update(const sw::Context* context) const;
-		std::shared_ptr<Routine> routine(const State &state);
+		RoutineType routine(const State &state);
 
 		void setRoutineCacheSize(int cacheSize);
 
 	private:
-		RoutineCache<State> *routineCache;
+		using RoutineCacheType = RoutineCacheT<State, SetupFunction::CFunctionType>;
+		RoutineCacheType *routineCache;
 	};
 }
 
diff --git a/src/Pipeline/SetupRoutine.cpp b/src/Pipeline/SetupRoutine.cpp
index 7ebd9ef..3627220 100644
--- a/src/Pipeline/SetupRoutine.cpp
+++ b/src/Pipeline/SetupRoutine.cpp
@@ -25,7 +25,6 @@
 {
 	SetupRoutine::SetupRoutine(const SetupProcessor::State &state) : state(state)
 	{
-		routine = 0;
 	}
 
 	SetupRoutine::~SetupRoutine()
@@ -34,7 +33,7 @@
 
 	void SetupRoutine::generate()
 	{
-		Function<Int(Pointer<Byte>, Pointer<Byte>, Pointer<Byte>, Pointer<Byte>)> function;
+		SetupFunction function;
 		{
 			Pointer<Byte> primitive(function.Arg<0>());
 			Pointer<Byte> tri(function.Arg<1>());
@@ -610,7 +609,7 @@
 		#endif
 	}
 
-	std::shared_ptr<Routine> SetupRoutine::getRoutine()
+	SetupFunction::RoutineType SetupRoutine::getRoutine()
 	{
 		return routine;
 	}
diff --git a/src/Pipeline/SetupRoutine.hpp b/src/Pipeline/SetupRoutine.hpp
index 469b4de..953bf42 100644
--- a/src/Pipeline/SetupRoutine.hpp
+++ b/src/Pipeline/SetupRoutine.hpp
@@ -30,7 +30,7 @@
 		virtual ~SetupRoutine();
 
 		void generate();
-		std::shared_ptr<Routine> getRoutine();
+		SetupFunction::RoutineType getRoutine();
 
 	private:
 		void setupGradient(Pointer<Byte> &primitive, Pointer<Byte> &triangle, Float4 &w012, Float4 (&m)[3], Pointer<Byte> &v0, Pointer<Byte> &v1, Pointer<Byte> &v2, int attribute, int planeEquation, bool flatShading, bool perspective, int component);
@@ -40,7 +40,7 @@
 
 		const SetupProcessor::State &state;
 
-		std::shared_ptr<Routine> routine;
+		SetupFunction::RoutineType routine;
 	};
 }
 
