Merge changes If2b3adf8,I8408644a

* changes:
  Update Marl to f936d9438
  Squashed 'third_party/marl/' changes from 7b43abfc4..f936d9438
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 197b408..8bde18b 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -20,7 +20,6 @@
 #include "System/Debug.hpp"
 #include "System/Half.hpp"
 #include "System/Memory.hpp"
-#include "Vulkan/VkBuffer.hpp"
 #include "Vulkan/VkImage.hpp"
 #include "Vulkan/VkImageView.hpp"
 
diff --git a/src/Device/Blitter.hpp b/src/Device/Blitter.hpp
index 0d91e50..fe60164 100644
--- a/src/Device/Blitter.hpp
+++ b/src/Device/Blitter.hpp
@@ -29,7 +29,6 @@
 
 class Image;
 class ImageView;
-class Buffer;
 
 }  // namespace vk
 
diff --git a/src/Device/CMakeLists.txt b/src/Device/CMakeLists.txt
index 2904017..c7f082d 100644
--- a/src/Device/CMakeLists.txt
+++ b/src/Device/CMakeLists.txt
@@ -46,7 +46,6 @@
     SetupProcessor.cpp
     SetupProcessor.hpp
     Stream.hpp
-    Triangle.hpp
     Vertex.hpp
     VertexProcessor.cpp
     VertexProcessor.hpp
diff --git a/src/Device/Polygon.hpp b/src/Device/Polygon.hpp
index c4152f9..a77e7b2 100644
--- a/src/Device/Polygon.hpp
+++ b/src/Device/Polygon.hpp
@@ -15,8 +15,6 @@
 #ifndef sw_Polygon_hpp
 #define sw_Polygon_hpp
 
-#include "Vertex.hpp"
-
 namespace sw {
 
 struct Polygon
diff --git a/src/Device/Renderer.hpp b/src/Device/Renderer.hpp
index 2ae9d33..be0bb94 100644
--- a/src/Device/Renderer.hpp
+++ b/src/Device/Renderer.hpp
@@ -15,7 +15,6 @@
 #ifndef sw_Renderer_hpp
 #define sw_Renderer_hpp
 
-#include "Blitter.hpp"
 #include "PixelProcessor.hpp"
 #include "Primitive.hpp"
 #include "SetupProcessor.hpp"
@@ -28,9 +27,6 @@
 #include "marl/ticket.h"
 
 #include <atomic>
-#include <list>
-#include <mutex>
-#include <thread>
 
 namespace vk {
 
diff --git a/src/Device/Sampler.hpp b/src/Device/Sampler.hpp
index ae02a8a..983db10 100644
--- a/src/Device/Sampler.hpp
+++ b/src/Device/Sampler.hpp
@@ -19,10 +19,6 @@
 #include "System/Types.hpp"
 #include "Vulkan/VkFormat.hpp"
 
-namespace vk {
-class Image;
-}
-
 namespace sw {
 
 struct Mipmap
diff --git a/src/Device/SetupProcessor.hpp b/src/Device/SetupProcessor.hpp
index 2fdb632..4cfc0b1 100644
--- a/src/Device/SetupProcessor.hpp
+++ b/src/Device/SetupProcessor.hpp
@@ -28,8 +28,6 @@
 struct Primitive;
 struct Triangle;
 struct Polygon;
-struct Vertex;
-struct DrawCall;
 struct DrawData;
 
 using SetupFunction = FunctionT<int(const vk::Device *device, Primitive *primitive, const Triangle *triangle, const Polygon *polygon, const DrawData *draw)>;
diff --git a/src/Device/Triangle.hpp b/src/Device/Triangle.hpp
deleted file mode 100644
index d99fe84..0000000
--- a/src/Device/Triangle.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2016 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 sw_Triangle_hpp
-#define sw_Triangle_hpp
-
-#include "Vertex.hpp"
-
-namespace sw {
-
-struct Triangle
-{
-	Vertex V0;
-	Vertex V1;
-	Vertex V2;
-};
-
-}  // namespace sw
-
-#endif  // sw_Triangle_hpp
diff --git a/src/Vulkan/VkDevice.hpp b/src/Vulkan/VkDevice.hpp
index 45336bc..b01862e 100644
--- a/src/Vulkan/VkDevice.hpp
+++ b/src/Vulkan/VkDevice.hpp
@@ -17,6 +17,7 @@
 
 #include "VkImageView.hpp"
 #include "VkSampler.hpp"
+#include "Device/Blitter.hpp"
 #include "Pipeline/Constants.hpp"
 #include "Reactor/Routine.hpp"
 #include "System/LRUCache.hpp"
@@ -32,9 +33,6 @@
 namespace marl {
 class Scheduler;
 }
-namespace sw {
-class Blitter;
-}
 
 namespace vk {