Add PrimitiveMode packed GLenum.

Bug: angleproject:2574
Change-Id: I3d7bd7ca0d69a364a611dc04799ea34906fc4a6c
Reviewed-on: https://chromium-review.googlesource.com/1067114
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index ccc30ff..125a398 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -53,7 +53,7 @@
 ContextVk::ContextVk(const gl::ContextState &state, RendererVk *renderer)
     : ContextImpl(state),
       mRenderer(renderer),
-      mCurrentDrawMode(GL_NONE),
+      mCurrentDrawMode(gl::PrimitiveMode::InvalidEnum),
       mDynamicDescriptorPool(),
       mTexturesDirty(false),
       mVertexArrayBindingHasChanged(false),
@@ -167,7 +167,7 @@
 
     if (!graphNode->getInsideRenderPassCommands()->valid())
     {
-        mTexturesDirty    = true;
+        mTexturesDirty       = true;
         *newCommandBufferOut = true;
         ANGLE_TRY(graphNode->beginInsideRenderPassRecording(mRenderer, &commandBuffer));
     }
@@ -218,7 +218,7 @@
 
     // Bind the graphics descriptor sets.
     // TODO(jmadill): Handle multiple command buffers.
-    const auto &descriptorSets = programVk->getDescriptorSets();
+    const auto &descriptorSets   = programVk->getDescriptorSets();
     const gl::RangeUI &usedRange = programVk->getUsedDescriptorSetRange();
     if (!usedRange.empty())
     {
@@ -235,7 +235,10 @@
     return gl::NoError();
 }
 
-gl::Error ContextVk::drawArrays(const gl::Context *context, GLenum mode, GLint first, GLsizei count)
+gl::Error ContextVk::drawArrays(const gl::Context *context,
+                                gl::PrimitiveMode mode,
+                                GLint first,
+                                GLsizei count)
 {
     const gl::DrawCallParams &drawCallParams = context->getParams<gl::DrawCallParams>();
 
@@ -251,7 +254,7 @@
 }
 
 gl::Error ContextVk::drawArraysInstanced(const gl::Context *context,
-                                         GLenum mode,
+                                         gl::PrimitiveMode mode,
                                          GLint first,
                                          GLsizei count,
                                          GLsizei instanceCount)
@@ -261,7 +264,7 @@
 }
 
 gl::Error ContextVk::drawElements(const gl::Context *context,
-                                  GLenum mode,
+                                  gl::PrimitiveMode mode,
                                   GLsizei count,
                                   GLenum type,
                                   const void *indices)
@@ -281,7 +284,7 @@
 }
 
 gl::Error ContextVk::drawElementsInstanced(const gl::Context *context,
-                                           GLenum mode,
+                                           gl::PrimitiveMode mode,
                                            GLsizei count,
                                            GLenum type,
                                            const void *indices,
@@ -292,7 +295,7 @@
 }
 
 gl::Error ContextVk::drawRangeElements(const gl::Context *context,
-                                       GLenum mode,
+                                       gl::PrimitiveMode mode,
                                        GLuint start,
                                        GLuint end,
                                        GLsizei count,
@@ -308,7 +311,7 @@
 }
 
 gl::Error ContextVk::drawArraysIndirect(const gl::Context *context,
-                                        GLenum mode,
+                                        gl::PrimitiveMode mode,
                                         const void *indirect)
 {
     UNIMPLEMENTED();
@@ -316,7 +319,7 @@
 }
 
 gl::Error ContextVk::drawElementsIndirect(const gl::Context *context,
-                                          GLenum mode,
+                                          gl::PrimitiveMode mode,
                                           GLenum type,
                                           const void *indirect)
 {
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.h b/src/libANGLE/renderer/vulkan/ContextVk.h
index 23569f3..1903a0f 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.h
+++ b/src/libANGLE/renderer/vulkan/ContextVk.h
@@ -35,38 +35,38 @@
 
     // Drawing methods.
     gl::Error drawArrays(const gl::Context *context,
-                         GLenum mode,
+                         gl::PrimitiveMode mode,
                          GLint first,
                          GLsizei count) override;
     gl::Error drawArraysInstanced(const gl::Context *context,
-                                  GLenum mode,
+                                  gl::PrimitiveMode mode,
                                   GLint first,
                                   GLsizei count,
                                   GLsizei instanceCount) override;
 
     gl::Error drawElements(const gl::Context *context,
-                           GLenum mode,
+                           gl::PrimitiveMode mode,
                            GLsizei count,
                            GLenum type,
                            const void *indices) override;
     gl::Error drawElementsInstanced(const gl::Context *context,
-                                    GLenum mode,
+                                    gl::PrimitiveMode mode,
                                     GLsizei count,
                                     GLenum type,
                                     const void *indices,
                                     GLsizei instances) override;
     gl::Error drawRangeElements(const gl::Context *context,
-                                GLenum mode,
+                                gl::PrimitiveMode mode,
                                 GLuint start,
                                 GLuint end,
                                 GLsizei count,
                                 GLenum type,
                                 const void *indices) override;
     gl::Error drawArraysIndirect(const gl::Context *context,
-                                 GLenum mode,
+                                 gl::PrimitiveMode mode,
                                  const void *indirect) override;
     gl::Error drawElementsIndirect(const gl::Context *context,
-                                   GLenum mode,
+                                   gl::PrimitiveMode mode,
                                    GLenum type,
                                    const void *indirect) override;
 
@@ -175,7 +175,7 @@
 
     RendererVk *mRenderer;
     vk::PipelineAndSerial *mCurrentPipeline;
-    GLenum mCurrentDrawMode;
+    gl::PrimitiveMode mCurrentDrawMode;
 
     // Keep a cached pipeline description structure that can be used to query the pipeline cache.
     // Kept in a pointer so allocations can be aligned, and structs can be portably packed.
diff --git a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
index 5e80078..add9b3f 100644
--- a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
+++ b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
@@ -23,7 +23,7 @@
 {
 }
 
-void TransformFeedbackVk::begin(GLenum primitiveMode)
+void TransformFeedbackVk::begin(gl::PrimitiveMode primitiveMode)
 {
     UNIMPLEMENTED();
 }
diff --git a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h
index a379b36..a257057 100644
--- a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h
+++ b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h
@@ -21,7 +21,7 @@
     TransformFeedbackVk(const gl::TransformFeedbackState &state);
     ~TransformFeedbackVk() override;
 
-    void begin(GLenum primitiveMode) override;
+    void begin(gl::PrimitiveMode primitiveMode) override;
     void end() override;
     void pause() override;
     void resume() override;
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index f6ce42c..577717a 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -98,7 +98,7 @@
         const size_t firstByte = drawCallParams.firstVertex() * binding.getStride();
         const size_t lastByte =
             lastVertex * binding.getStride() + gl::ComputeVertexAttributeTypeSize(attrib);
-        uint8_t *dst = nullptr;
+        uint8_t *dst    = nullptr;
         uint32_t offset = 0;
         ANGLE_TRY(mDynamicVertexData.allocate(
             renderer, lastByte, &dst, &mCurrentArrayBufferHandles[attribIndex], &offset, nullptr));
@@ -361,7 +361,7 @@
     // Note: Vertex indexes can be arbitrarily large.
     uint32_t clampedVertexCount = drawCallParams.getClampedVertexCount<uint32_t>();
 
-    if (drawCallParams.mode() != GL_LINE_LOOP)
+    if (drawCallParams.mode() != gl::PrimitiveMode::LineLoop)
     {
         commandBuffer->draw(clampedVertexCount, 1, drawCallParams.firstVertex(), 0);
         return gl::NoError();
@@ -398,7 +398,7 @@
     vk::CommandBuffer *commandBuffer = drawNode->getInsideRenderPassCommands();
     ASSERT(commandBuffer->valid());
 
-    if (drawCallParams.mode() != GL_LINE_LOOP)
+    if (drawCallParams.mode() != gl::PrimitiveMode::LineLoop)
     {
         ANGLE_TRY(onIndexedDraw(context, renderer, drawCallParams, drawNode, newCommandBuffer));
         commandBuffer->drawIndexed(drawCallParams.indexCount(), 1, 0, 0, 0);
@@ -491,7 +491,8 @@
 {
     ANGLE_TRY(onDraw(context, renderer, drawCallParams, drawNode, newCommandBuffer));
 
-    if (!mState.getElementArrayBuffer().get() && drawCallParams.mode() != GL_LINE_LOOP)
+    if (!mState.getElementArrayBuffer().get() &&
+        drawCallParams.mode() != gl::PrimitiveMode::LineLoop)
     {
         ANGLE_TRY(drawCallParams.ensureIndexRangeResolved(context));
         ANGLE_TRY(streamIndexData(renderer, drawCallParams));
diff --git a/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp b/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
index 2f5d14f..9bda8e3 100644
--- a/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
@@ -643,10 +643,10 @@
 
 void PipelineDesc::updateViewport(const gl::Rectangle &viewport, float nearPlane, float farPlane)
 {
-    mViewport.x        = static_cast<float>(viewport.x);
-    mViewport.y        = static_cast<float>(viewport.y);
-    mViewport.width    = static_cast<float>(viewport.width);
-    mViewport.height   = static_cast<float>(viewport.height);
+    mViewport.x      = static_cast<float>(viewport.x);
+    mViewport.y      = static_cast<float>(viewport.y);
+    mViewport.width  = static_cast<float>(viewport.width);
+    mViewport.height = static_cast<float>(viewport.height);
     updateDepthRange(nearPlane, farPlane);
 }
 
@@ -665,7 +665,7 @@
     mVertexInputAttribs  = attribs;
 }
 
-void PipelineDesc::updateTopology(GLenum drawMode)
+void PipelineDesc::updateTopology(gl::PrimitiveMode drawMode)
 {
     mInputAssemblyInfo.topology = static_cast<uint32_t>(gl_vk::GetPrimitiveTopology(drawMode));
 }
diff --git a/src/libANGLE/renderer/vulkan/vk_cache_utils.h b/src/libANGLE/renderer/vulkan/vk_cache_utils.h
index 48a040a..03bd4c9 100644
--- a/src/libANGLE/renderer/vulkan/vk_cache_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_cache_utils.h
@@ -280,7 +280,7 @@
                                const VertexInputAttributes &attribs);
 
     // Input assembly info
-    void updateTopology(GLenum drawMode);
+    void updateTopology(gl::PrimitiveMode drawMode);
 
     // Raster states
     void updateCullMode(const gl::RasterizerState &rasterState);
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.cpp b/src/libANGLE/renderer/vulkan/vk_utils.cpp
index fcd1811..c06b443 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -149,8 +149,8 @@
 }
 }  // anonymous namespace
 
-const char *g_VkLoaderLayersPathEnv    = "VK_LAYER_PATH";
-const char *g_VkICDPathEnv             = "VK_ICD_FILENAMES";
+const char *g_VkLoaderLayersPathEnv = "VK_LAYER_PATH";
+const char *g_VkICDPathEnv          = "VK_ICD_FILENAMES";
 
 const char *VulkanResultString(VkResult result)
 {
@@ -1251,23 +1251,23 @@
             {static_cast<uint32_t>(source.width), static_cast<uint32_t>(source.height)}};
 }
 
-VkPrimitiveTopology GetPrimitiveTopology(GLenum mode)
+VkPrimitiveTopology GetPrimitiveTopology(gl::PrimitiveMode mode)
 {
     switch (mode)
     {
-        case GL_TRIANGLES:
+        case gl::PrimitiveMode::Triangles:
             return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-        case GL_POINTS:
+        case gl::PrimitiveMode::Points:
             return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
-        case GL_LINES:
+        case gl::PrimitiveMode::Lines:
             return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
-        case GL_LINE_STRIP:
+        case gl::PrimitiveMode::LineStrip:
             return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
-        case GL_TRIANGLE_FAN:
+        case gl::PrimitiveMode::TriangleFan:
             return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN;
-        case GL_TRIANGLE_STRIP:
+        case gl::PrimitiveMode::TriangleStrip:
             return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-        case GL_LINE_LOOP:
+        case gl::PrimitiveMode::LineLoop:
             return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
         default:
             UNREACHABLE();
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.h b/src/libANGLE/renderer/vulkan/vk_utils.h
index 00a9fe3..c02399e 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -690,7 +690,7 @@
 VkFilter GetFilter(const GLenum filter);
 VkSamplerMipmapMode GetSamplerMipmapMode(const GLenum filter);
 VkSamplerAddressMode GetSamplerAddressMode(const GLenum wrap);
-VkPrimitiveTopology GetPrimitiveTopology(GLenum mode);
+VkPrimitiveTopology GetPrimitiveTopology(gl::PrimitiveMode mode);
 VkCullModeFlags GetCullMode(const gl::RasterizerState &rasterState);
 VkFrontFace GetFrontFace(GLenum frontFace);
 VkSampleCountFlagBits GetSamples(GLint sampleCount);