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);