vkCmdDraw implementation

Piped all the information from the vertex buffers and
the pipeline to the renderer to perform a draw.

In order for the renderer and the context to have proper
lifetimes, they both reside in the Queue object for now.

Bug b/118619338

Change-Id: Ifa03acd13ceb065a856b50f2cffadd4ee6b9a163
Reviewed-on: https://swiftshader-review.googlesource.com/c/23111
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkPipeline.hpp b/src/Vulkan/VkPipeline.hpp
index 77a3d21..a38a105 100644
--- a/src/Vulkan/VkPipeline.hpp
+++ b/src/Vulkan/VkPipeline.hpp
@@ -58,13 +58,14 @@
 
 	void compileShaders(const VkAllocationCallbacks* pAllocator, const VkGraphicsPipelineCreateInfo* pCreateInfo);
 
+	uint32_t computePrimitiveCount(uint32_t vertexCount) const;
 	const sw::Context& getContext() const;
 	const sw::Rect& getScissor() const;
 	const VkViewport& getViewport() const;
 	const sw::Color<float>& getBlendConstants() const;
 
 private:
-	rr::Routine* vertexRoutine;

+	rr::Routine* vertexRoutine;
 	rr::Routine* fragmentRoutine;
 	sw::Context context;
 	sw::Rect scissor;