Use packed enums for QueryType.
BUG=angleproject:2169
Change-Id: I129a9d8e295859daa071a298dab9fe1895315cc0
Reviewed-on: https://chromium-review.googlesource.com/957318
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index d99c09e..132271c 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1069,7 +1069,7 @@
mGLState.setProgramPipelineBinding(this, pipeline);
}
-void Context::beginQuery(GLenum target, GLuint query)
+void Context::beginQuery(QueryType target, GLuint query)
{
Query *queryObject = getQuery(query, true, target);
ASSERT(queryObject);
@@ -1081,7 +1081,7 @@
mGLState.setActiveQuery(this, target, queryObject);
}
-void Context::endQuery(GLenum target)
+void Context::endQuery(QueryType target)
{
Query *queryObject = mGLState.getActiveQuery(target);
ASSERT(queryObject);
@@ -1092,9 +1092,9 @@
mGLState.setActiveQuery(this, target, nullptr);
}
-void Context::queryCounter(GLuint id, GLenum target)
+void Context::queryCounter(GLuint id, QueryType target)
{
- ASSERT(target == GL_TIMESTAMP_EXT);
+ ASSERT(target == QueryType::Timestamp);
Query *queryObject = getQuery(id, true, target);
ASSERT(queryObject);
@@ -1102,7 +1102,7 @@
handleError(queryObject->queryCounter());
}
-void Context::getQueryiv(GLenum target, GLenum pname, GLint *params)
+void Context::getQueryiv(QueryType target, GLenum pname, GLint *params)
{
switch (pname)
{
@@ -1112,10 +1112,10 @@
case GL_QUERY_COUNTER_BITS_EXT:
switch (target)
{
- case GL_TIME_ELAPSED_EXT:
+ case QueryType::TimeElapsed:
params[0] = getExtensions().queryCounterBitsTimeElapsed;
break;
- case GL_TIMESTAMP_EXT:
+ case QueryType::Timestamp:
params[0] = getExtensions().queryCounterBitsTimestamp;
break;
default:
@@ -1130,7 +1130,7 @@
}
}
-void Context::getQueryivRobust(GLenum target,
+void Context::getQueryivRobust(QueryType target,
GLenum pname,
GLsizei bufSize,
GLsizei *length,
@@ -1205,7 +1205,7 @@
return mFenceNVMap.query(handle);
}
-Query *Context::getQuery(GLuint handle, bool create, GLenum type)
+Query *Context::getQuery(GLuint handle, bool create, QueryType type)
{
if (!mQueryMap.contains(handle))
{
@@ -1215,6 +1215,7 @@
Query *query = mQueryMap.query(handle);
if (!query && create)
{
+ ASSERT(type != QueryType::InvalidEnum);
query = new Query(mImplementation->createQuery(type), handle);
query->addRef();
mQueryMap.assign(handle, query);
@@ -5690,7 +5691,7 @@
GLboolean Context::isQuery(GLuint id)
{
- return (getQuery(id, false, GL_NONE) != nullptr) ? GL_TRUE : GL_FALSE;
+ return (getQuery(id, false, QueryType::InvalidEnum) != nullptr) ? GL_TRUE : GL_FALSE;
}
void Context::uniformMatrix2x3fv(GLint location,
diff --git a/src/libANGLE/Context.h b/src/libANGLE/Context.h
index 8ebbc12..5d1343f 100644
--- a/src/libANGLE/Context.h
+++ b/src/libANGLE/Context.h
@@ -151,16 +151,15 @@
void bindTransformFeedback(GLenum target, GLuint transformFeedbackHandle);
void bindProgramPipeline(GLuint pipelineHandle);
- void beginQuery(GLenum target, GLuint query);
- void endQuery(GLenum target);
- void queryCounter(GLuint id, GLenum target);
- void getQueryiv(GLenum target, GLenum pname, GLint *params);
- void getQueryivRobust(GLenum target,
+ void beginQuery(QueryType target, GLuint query);
+ void endQuery(QueryType target);
+ void queryCounter(GLuint id, QueryType target);
+ void getQueryiv(QueryType target, GLenum pname, GLint *params);
+ void getQueryivRobust(QueryType target,
GLenum pname,
GLsizei bufSize,
GLsizei *length,
GLint *params);
-
void getQueryObjectiv(GLuint id, GLenum pname, GLint *params);
void getQueryObjectivRobust(GLuint id,
GLenum pname,
@@ -352,7 +351,7 @@
Renderbuffer *getRenderbuffer(GLuint handle) const;
VertexArray *getVertexArray(GLuint handle) const;
Sampler *getSampler(GLuint handle) const;
- Query *getQuery(GLuint handle, bool create, GLenum type);
+ Query *getQuery(GLuint handle, bool create, QueryType type);
Query *getQuery(GLuint handle) const;
TransformFeedback *getTransformFeedback(GLuint handle) const;
ProgramPipeline *getProgramPipeline(GLuint handle) const;
diff --git a/src/libANGLE/PackedGLEnums_autogen.cpp b/src/libANGLE/PackedGLEnums_autogen.cpp
index 23af4ab..d514312 100644
--- a/src/libANGLE/PackedGLEnums_autogen.cpp
+++ b/src/libANGLE/PackedGLEnums_autogen.cpp
@@ -444,6 +444,54 @@
}
template <>
+QueryType FromGLenum<QueryType>(GLenum from)
+{
+ switch (from)
+ {
+ case GL_ANY_SAMPLES_PASSED:
+ return QueryType::AnySamples;
+ case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+ return QueryType::AnySamplesConservative;
+ case GL_COMMANDS_COMPLETED_CHROMIUM:
+ return QueryType::CommandsCompleted;
+ case GL_PRIMITIVES_GENERATED_EXT:
+ return QueryType::PrimitivesGenerated;
+ case GL_TIME_ELAPSED_EXT:
+ return QueryType::TimeElapsed;
+ case GL_TIMESTAMP_EXT:
+ return QueryType::Timestamp;
+ case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ return QueryType::TransformFeedbackPrimitivesWritten;
+ default:
+ return QueryType::InvalidEnum;
+ }
+}
+
+GLenum ToGLenum(QueryType from)
+{
+ switch (from)
+ {
+ case QueryType::AnySamples:
+ return GL_ANY_SAMPLES_PASSED;
+ case QueryType::AnySamplesConservative:
+ return GL_ANY_SAMPLES_PASSED_CONSERVATIVE;
+ case QueryType::CommandsCompleted:
+ return GL_COMMANDS_COMPLETED_CHROMIUM;
+ case QueryType::PrimitivesGenerated:
+ return GL_PRIMITIVES_GENERATED_EXT;
+ case QueryType::TimeElapsed:
+ return GL_TIME_ELAPSED_EXT;
+ case QueryType::Timestamp:
+ return GL_TIMESTAMP_EXT;
+ case QueryType::TransformFeedbackPrimitivesWritten:
+ return GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN;
+ default:
+ UNREACHABLE();
+ return 0;
+ }
+}
+
+template <>
ShaderType FromGLenum<ShaderType>(GLenum from)
{
switch (from)
diff --git a/src/libANGLE/PackedGLEnums_autogen.h b/src/libANGLE/PackedGLEnums_autogen.h
index 6be0597..8b4c9ef 100644
--- a/src/libANGLE/PackedGLEnums_autogen.h
+++ b/src/libANGLE/PackedGLEnums_autogen.h
@@ -185,6 +185,24 @@
MatrixType FromGLenum<MatrixType>(GLenum from);
GLenum ToGLenum(MatrixType from);
+enum class QueryType : uint8_t
+{
+ AnySamples = 0,
+ AnySamplesConservative = 1,
+ CommandsCompleted = 2,
+ PrimitivesGenerated = 3,
+ TimeElapsed = 4,
+ Timestamp = 5,
+ TransformFeedbackPrimitivesWritten = 6,
+
+ InvalidEnum = 7,
+ EnumCount = 7,
+};
+
+template <>
+QueryType FromGLenum<QueryType>(GLenum from);
+GLenum ToGLenum(QueryType from);
+
enum class ShaderType : uint8_t
{
Vertex = 0,
diff --git a/src/libANGLE/Query.cpp b/src/libANGLE/Query.cpp
index cd1fb5f..15416ec 100644
--- a/src/libANGLE/Query.cpp
+++ b/src/libANGLE/Query.cpp
@@ -70,7 +70,7 @@
return mQuery->isResultAvailable(available);
}
-GLenum Query::getType() const
+QueryType Query::getType() const
{
return mQuery->getType();
}
diff --git a/src/libANGLE/Query.h b/src/libANGLE/Query.h
index c307eaa..64a7dcd 100644
--- a/src/libANGLE/Query.h
+++ b/src/libANGLE/Query.h
@@ -11,6 +11,7 @@
#include "libANGLE/Debug.h"
#include "libANGLE/Error.h"
+#include "libANGLE/PackedEnums.h"
#include "libANGLE/RefCountObject.h"
#include "common/angleutils.h"
@@ -44,7 +45,7 @@
Error getResult(GLuint64 *params);
Error isResultAvailable(bool *available);
- GLenum getType() const;
+ QueryType getType() const;
rx::QueryImpl *getImplementation();
const rx::QueryImpl *getImplementation() const;
diff --git a/src/libANGLE/State.cpp b/src/libANGLE/State.cpp
index 163f732..1d3db99 100644
--- a/src/libANGLE/State.cpp
+++ b/src/libANGLE/State.cpp
@@ -26,19 +26,29 @@
#include "libANGLE/queryutils.h"
#include "libANGLE/renderer/ContextImpl.h"
+namespace gl
+{
+
namespace
{
-GLenum ActiveQueryType(const GLenum type)
+bool GetAlternativeQueryType(QueryType type, QueryType *alternativeType)
{
- return (type == GL_ANY_SAMPLES_PASSED_CONSERVATIVE) ? GL_ANY_SAMPLES_PASSED : type;
+ switch (type)
+ {
+ case QueryType::AnySamples:
+ *alternativeType = QueryType::AnySamplesConservative;
+ return true;
+ case QueryType::AnySamplesConservative:
+ *alternativeType = QueryType::AnySamples;
+ return true;
+ default:
+ return false;
+ }
}
} // anonymous namepace
-namespace gl
-{
-
void UpdateBufferBinding(const Context *context,
BindingPointer<Buffer> *binding,
Buffer *buffer,
@@ -212,12 +222,10 @@
mSamplers.resize(caps.maxCombinedTextureImageUnits);
- mActiveQueries[GL_ANY_SAMPLES_PASSED].set(context, nullptr);
- mActiveQueries[GL_ANY_SAMPLES_PASSED_CONSERVATIVE].set(context, nullptr);
- mActiveQueries[GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN].set(context, nullptr);
- mActiveQueries[GL_TIME_ELAPSED_EXT].set(context, nullptr);
- mActiveQueries[GL_COMMANDS_COMPLETED_CHROMIUM].set(context, nullptr);
- mActiveQueries[GL_PRIMITIVES_GENERATED_EXT].set(context, nullptr);
+ for (QueryType type : angle::AllEnums<QueryType>())
+ {
+ mActiveQueries[type].set(context, nullptr);
+ }
mProgram = nullptr;
@@ -294,9 +302,9 @@
mTransformFeedback->onBindingChanged(context, false);
mTransformFeedback.set(context, nullptr);
- for (State::ActiveQueryMap::iterator i = mActiveQueries.begin(); i != mActiveQueries.end(); i++)
+ for (QueryType type : angle::AllEnums<QueryType>())
{
- i->second.set(context, nullptr);
+ mActiveQueries[type].set(context, nullptr);
}
for (auto &buf : mUniformBuffers)
@@ -1316,15 +1324,19 @@
mProgramPipeline.set(context, nullptr);
}
-bool State::isQueryActive(const GLenum type) const
+bool State::isQueryActive(QueryType type) const
{
- for (auto &iter : mActiveQueries)
+ const Query *query = mActiveQueries[type].get();
+ if (query != nullptr)
{
- const Query *query = iter.second.get();
- if (query != nullptr && ActiveQueryType(query->getType()) == ActiveQueryType(type))
- {
- return true;
- }
+ return true;
+ }
+
+ QueryType alternativeType;
+ if (GetAlternativeQueryType(type, &alternativeType))
+ {
+ query = mActiveQueries[alternativeType].get();
+ return query != nullptr;
}
return false;
@@ -1332,9 +1344,9 @@
bool State::isQueryActive(Query *query) const
{
- for (auto &iter : mActiveQueries)
+ for (auto &queryPointer : mActiveQueries)
{
- if (iter.second.get() == query)
+ if (queryPointer.get() == query)
{
return true;
}
@@ -1343,25 +1355,20 @@
return false;
}
-void State::setActiveQuery(const Context *context, GLenum target, Query *query)
+void State::setActiveQuery(const Context *context, QueryType type, Query *query)
{
- mActiveQueries[target].set(context, query);
+ mActiveQueries[type].set(context, query);
}
-GLuint State::getActiveQueryId(GLenum target) const
+GLuint State::getActiveQueryId(QueryType type) const
{
- const Query *query = getActiveQuery(target);
+ const Query *query = getActiveQuery(type);
return (query ? query->id() : 0u);
}
-Query *State::getActiveQuery(GLenum target) const
+Query *State::getActiveQuery(QueryType type) const
{
- const auto it = mActiveQueries.find(target);
-
- // All query types should already exist in the activeQueries map
- ASSERT(it != mActiveQueries.end());
-
- return it->second.get();
+ return mActiveQueries[type].get();
}
void State::setBufferBinding(const Context *context, BufferBinding target, Buffer *buffer)
diff --git a/src/libANGLE/State.h b/src/libANGLE/State.h
index 1ffa2b6..c15483c 100644
--- a/src/libANGLE/State.h
+++ b/src/libANGLE/State.h
@@ -220,11 +220,11 @@
bool removeTransformFeedbackBinding(const Context *context, GLuint transformFeedback);
// Query binding manipulation
- bool isQueryActive(const GLenum type) const;
+ bool isQueryActive(QueryType type) const;
bool isQueryActive(Query *query) const;
- void setActiveQuery(const Context *context, GLenum target, Query *query);
- GLuint getActiveQueryId(GLenum target) const;
- Query *getActiveQuery(GLenum target) const;
+ void setActiveQuery(const Context *context, QueryType type, Query *query);
+ GLuint getActiveQueryId(QueryType type) const;
+ Query *getActiveQuery(QueryType type) const;
// Program Pipeline binding manipulation
void setProgramPipelineBinding(const Context *context, ProgramPipeline *pipeline);
@@ -524,7 +524,7 @@
Program *mProgram;
BindingPointer<ProgramPipeline> mProgramPipeline;
- typedef std::vector<VertexAttribCurrentValueData> VertexAttribVector;
+ using VertexAttribVector = std::vector<VertexAttribCurrentValueData>;
VertexAttribVector mVertexAttribCurrentValues; // From glVertexAttrib
VertexArray *mVertexArray;
ComponentTypeMask mCurrentValuesTypeMask;
@@ -532,8 +532,8 @@
// Texture and sampler bindings
size_t mActiveSampler; // Active texture unit selector - GL_TEXTURE0
- typedef std::vector<BindingPointer<Texture>> TextureBindingVector;
- typedef angle::PackedEnumMap<TextureType, TextureBindingVector> TextureBindingMap;
+ using TextureBindingVector = std::vector<BindingPointer<Texture>>;
+ using TextureBindingMap = angle::PackedEnumMap<TextureType, TextureBindingVector>;
TextureBindingMap mSamplerTextures;
// Texture Completeness Caching
@@ -556,13 +556,13 @@
using ActiveTextureMask = angle::BitSet<IMPLEMENTATION_MAX_ACTIVE_TEXTURES>;
ActiveTextureMask mActiveTexturesMask;
- typedef std::vector<BindingPointer<Sampler>> SamplerBindingVector;
+ using SamplerBindingVector = std::vector<BindingPointer<Sampler>>;
SamplerBindingVector mSamplers;
- typedef std::vector<ImageUnit> ImageUnitVector;
+ using ImageUnitVector = std::vector<ImageUnit>;
ImageUnitVector mImageUnits;
- typedef std::map<GLenum, BindingPointer<Query>> ActiveQueryMap;
+ using ActiveQueryMap = angle::PackedEnumMap<QueryType, BindingPointer<Query>>;
ActiveQueryMap mActiveQueries;
// Stores the currently bound buffer for each binding point. It has an entry for the element
diff --git a/src/libANGLE/packed_gl_enums.json b/src/libANGLE/packed_gl_enums.json
index 53b840e..27143ed 100644
--- a/src/libANGLE/packed_gl_enums.json
+++ b/src/libANGLE/packed_gl_enums.json
@@ -88,6 +88,16 @@
"Projection" : "GL_PROJECTION",
"Texture" : "GL_TEXTURE"
},
+ "QueryType":
+ {
+ "AnySamples": "GL_ANY_SAMPLES_PASSED",
+ "AnySamplesConservative": "GL_ANY_SAMPLES_PASSED_CONSERVATIVE",
+ "CommandsCompleted": "GL_COMMANDS_COMPLETED_CHROMIUM",
+ "PrimitivesGenerated": "GL_PRIMITIVES_GENERATED_EXT",
+ "TimeElapsed": "GL_TIME_ELAPSED_EXT",
+ "Timestamp": "GL_TIMESTAMP_EXT",
+ "TransformFeedbackPrimitivesWritten": "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"
+ },
"ShaderType":
[
{"name": "Vertex", "gl_name": "GL_VERTEX_SHADER", "value": 0},
diff --git a/src/libANGLE/renderer/GLImplFactory.h b/src/libANGLE/renderer/GLImplFactory.h
index cc1ffe4..c23cb8d 100644
--- a/src/libANGLE/renderer/GLImplFactory.h
+++ b/src/libANGLE/renderer/GLImplFactory.h
@@ -71,7 +71,7 @@
virtual VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) = 0;
// Query and Fence creation
- virtual QueryImpl *createQuery(GLenum type) = 0;
+ virtual QueryImpl *createQuery(gl::QueryType type) = 0;
virtual FenceNVImpl *createFenceNV() = 0;
virtual SyncImpl *createSync() = 0;
diff --git a/src/libANGLE/renderer/QueryImpl.h b/src/libANGLE/renderer/QueryImpl.h
index d738eb4..9a90bf5 100644
--- a/src/libANGLE/renderer/QueryImpl.h
+++ b/src/libANGLE/renderer/QueryImpl.h
@@ -9,11 +9,10 @@
#ifndef LIBANGLE_RENDERER_QUERYIMPL_H_
#define LIBANGLE_RENDERER_QUERYIMPL_H_
-#include "libANGLE/Error.h"
#include "common/angleutils.h"
-
-#include <GLES2/gl2.h>
+#include "libANGLE/Error.h"
+#include "libANGLE/PackedEnums.h"
namespace rx
{
@@ -21,7 +20,7 @@
class QueryImpl : angle::NonCopyable
{
public:
- explicit QueryImpl(GLenum type) { mType = type; }
+ explicit QueryImpl(gl::QueryType type) { mType = type; }
virtual ~QueryImpl() { }
virtual gl::Error begin() = 0;
@@ -33,10 +32,10 @@
virtual gl::Error getResult(GLuint64 *params) = 0;
virtual gl::Error isResultAvailable(bool *available) = 0;
- GLenum getType() const { return mType; }
+ gl::QueryType getType() const { return mType; }
private:
- GLenum mType;
+ gl::QueryType mType;
};
}
diff --git a/src/libANGLE/renderer/d3d/d3d11/Context11.cpp b/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
index 5598367..0509f38 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
@@ -189,7 +189,7 @@
return new VertexArray11(data);
}
-QueryImpl *Context11::createQuery(GLenum type)
+QueryImpl *Context11::createQuery(gl::QueryType type)
{
return new Query11(mRenderer, type);
}
diff --git a/src/libANGLE/renderer/d3d/d3d11/Context11.h b/src/libANGLE/renderer/d3d/d3d11/Context11.h
index 2a46625..50829c4 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Context11.h
+++ b/src/libANGLE/renderer/d3d/d3d11/Context11.h
@@ -45,7 +45,7 @@
VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override;
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override;
+ QueryImpl *createQuery(gl::QueryType type) override;
FenceNVImpl *createFenceNV() override;
SyncImpl *createSync() override;
diff --git a/src/libANGLE/renderer/d3d/d3d11/Query11.cpp b/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
index 7175c14..66998d2 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
@@ -17,24 +17,24 @@
namespace
{
-GLuint64 MergeQueryResults(GLenum type, GLuint64 currentResult, GLuint64 newResult)
+GLuint64 MergeQueryResults(gl::QueryType type, GLuint64 currentResult, GLuint64 newResult)
{
switch (type)
{
- case GL_ANY_SAMPLES_PASSED:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
return (currentResult == GL_TRUE || newResult == GL_TRUE) ? GL_TRUE : GL_FALSE;
- case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ case gl::QueryType::TransformFeedbackPrimitivesWritten:
return currentResult + newResult;
- case GL_TIME_ELAPSED_EXT:
+ case gl::QueryType::TimeElapsed:
return currentResult + newResult;
- case GL_TIMESTAMP_EXT:
+ case gl::QueryType::Timestamp:
return newResult;
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
return newResult;
default:
@@ -57,7 +57,7 @@
{
}
-Query11::Query11(Renderer11 *renderer, GLenum type)
+Query11::Query11(Renderer11 *renderer, gl::QueryType type)
: QueryImpl(type), mResult(0), mResultSum(0), mRenderer(renderer)
{
mActiveQuery = std::unique_ptr<QueryState>(new QueryState());
@@ -83,7 +83,7 @@
gl::Error Query11::queryCounter()
{
// This doesn't do anything for D3D11 as we don't support timestamps
- ASSERT(getType() == GL_TIMESTAMP_EXT);
+ ASSERT(getType() == gl::QueryType::Timestamp);
mResultSum = 0;
mPendingQueries.push_back(std::unique_ptr<QueryState>(new QueryState()));
return gl::NoError();
@@ -133,10 +133,10 @@
if (mActiveQuery->query.valid())
{
ID3D11DeviceContext *context = mRenderer->getDeviceContext();
- GLenum queryType = getType();
+ gl::QueryType type = getType();
// If we are doing time elapsed query the end timestamp
- if (queryType == GL_TIME_ELAPSED_EXT)
+ if (type == gl::QueryType::TimeElapsed)
{
context->End(mActiveQuery->endTimestamp.get());
}
@@ -156,8 +156,8 @@
{
ANGLE_TRY(flush(false));
- GLenum queryType = getType();
- D3D11_QUERY d3dQueryType = gl_d3d11::ConvertQueryType(queryType);
+ gl::QueryType type = getType();
+ D3D11_QUERY d3dQueryType = gl_d3d11::ConvertQueryType(type);
D3D11_QUERY_DESC queryDesc;
queryDesc.Query = d3dQueryType;
@@ -166,7 +166,7 @@
ANGLE_TRY(mRenderer->allocateResource(queryDesc, &mActiveQuery->query));
// If we are doing time elapsed we also need a query to actually query the timestamp
- if (queryType == GL_TIME_ELAPSED_EXT)
+ if (type == gl::QueryType::TimeElapsed)
{
D3D11_QUERY_DESC desc;
desc.Query = D3D11_QUERY_TIMESTAMP;
@@ -184,7 +184,7 @@
}
// If we are doing time elapsed, query the begin timestamp
- if (queryType == GL_TIME_ELAPSED_EXT)
+ if (type == gl::QueryType::TimeElapsed)
{
context->End(mActiveQuery->beginTimestamp.get());
}
@@ -222,8 +222,8 @@
ID3D11DeviceContext *context = mRenderer->getDeviceContext();
switch (getType())
{
- case GL_ANY_SAMPLES_PASSED_EXT:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
{
ASSERT(queryState->query.valid());
UINT64 numPixels = 0;
@@ -243,7 +243,7 @@
}
break;
- case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ case gl::QueryType::TransformFeedbackPrimitivesWritten:
{
ASSERT(queryState->query.valid());
D3D11_QUERY_DATA_SO_STATISTICS soStats = {0};
@@ -263,7 +263,7 @@
}
break;
- case GL_TIME_ELAPSED_EXT:
+ case gl::QueryType::TimeElapsed:
{
ASSERT(queryState->query.valid());
ASSERT(queryState->beginTimestamp.valid());
@@ -326,7 +326,7 @@
}
break;
- case GL_TIMESTAMP_EXT:
+ case gl::QueryType::Timestamp:
{
// D3D11 doesn't support GL timestamp queries as D3D timestamps are not guaranteed
// to have any sort of continuity outside of a disjoint timestamp query block, which
@@ -337,7 +337,7 @@
}
break;
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
{
ASSERT(queryState->query.valid());
BOOL completed = 0;
diff --git a/src/libANGLE/renderer/d3d/d3d11/Query11.h b/src/libANGLE/renderer/d3d/d3d11/Query11.h
index 724319a..ef23dda 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Query11.h
+++ b/src/libANGLE/renderer/d3d/d3d11/Query11.h
@@ -21,7 +21,7 @@
class Query11 : public QueryImpl
{
public:
- Query11(Renderer11 *renderer, GLenum type);
+ Query11(Renderer11 *renderer, gl::QueryType type);
~Query11() override;
gl::Error begin() override;
diff --git a/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp b/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
index 089a4f8..53ef72a 100644
--- a/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
@@ -560,10 +560,6 @@
return gl::NoError();
}
-static const GLenum QueryTypes[] = {GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
- GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED_EXT,
- GL_COMMANDS_COMPLETED_CHROMIUM};
-
StateManager11::StateManager11(Renderer11 *renderer)
: mRenderer(renderer),
mInternalDirtyBits(),
@@ -1596,9 +1592,9 @@
}
mCurrentQueries.clear();
- for (GLenum queryType : QueryTypes)
+ for (gl::QueryType type : angle::AllEnums<gl::QueryType>())
{
- gl::Query *query = state.getActiveQuery(queryType);
+ gl::Query *query = state.getActiveQuery(type);
if (query != nullptr)
{
Query11 *query11 = GetImplAs<Query11>(query);
diff --git a/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp b/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
index 49ef806..84f1c36 100644
--- a/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
@@ -1852,19 +1852,19 @@
return static_cast<UINT>(std::min(maxAnisotropy, d3d11_gl::GetMaximumAnisotropy(featureLevel)));
}
-D3D11_QUERY ConvertQueryType(GLenum queryType)
+D3D11_QUERY ConvertQueryType(gl::QueryType type)
{
- switch (queryType)
+ switch (type)
{
- case GL_ANY_SAMPLES_PASSED_EXT:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
return D3D11_QUERY_OCCLUSION;
- case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ case gl::QueryType::TransformFeedbackPrimitivesWritten:
return D3D11_QUERY_SO_STATISTICS;
- case GL_TIME_ELAPSED_EXT:
+ case gl::QueryType::TimeElapsed:
// Two internal queries are also created for begin/end timestamps
return D3D11_QUERY_TIMESTAMP_DISJOINT;
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
return D3D11_QUERY_EVENT;
default:
UNREACHABLE();
diff --git a/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h b/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
index f3a9586..2916753 100644
--- a/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
+++ b/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
@@ -53,7 +53,7 @@
D3D11_TEXTURE_ADDRESS_MODE ConvertTextureWrap(GLenum wrap);
UINT ConvertMaxAnisotropy(float maxAnisotropy, D3D_FEATURE_LEVEL featureLevel);
-D3D11_QUERY ConvertQueryType(GLenum queryType);
+D3D11_QUERY ConvertQueryType(gl::QueryType type);
UINT8 GetColorMask(const gl::InternalFormat &formatInfo);
diff --git a/src/libANGLE/renderer/d3d/d3d9/Context9.cpp b/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
index 5dd8f7a..3ea733f 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
@@ -92,7 +92,7 @@
return new VertexArray9(data);
}
-QueryImpl *Context9::createQuery(GLenum type)
+QueryImpl *Context9::createQuery(gl::QueryType type)
{
return new Query9(mRenderer, type);
}
diff --git a/src/libANGLE/renderer/d3d/d3d9/Context9.h b/src/libANGLE/renderer/d3d/d3d9/Context9.h
index a991b99..321ffba 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Context9.h
+++ b/src/libANGLE/renderer/d3d/d3d9/Context9.h
@@ -45,7 +45,7 @@
VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override;
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override;
+ QueryImpl *createQuery(gl::QueryType type) override;
FenceNVImpl *createFenceNV() override;
SyncImpl *createSync() override;
diff --git a/src/libANGLE/renderer/d3d/d3d9/Query9.cpp b/src/libANGLE/renderer/d3d/d3d9/Query9.cpp
index b7592a0..e6fc405 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Query9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/Query9.cpp
@@ -14,7 +14,7 @@
namespace rx
{
-Query9::Query9(Renderer9 *renderer, GLenum type)
+Query9::Query9(Renderer9 *renderer, gl::QueryType type)
: QueryImpl(type),
mGetDataAttemptCount(0),
mResult(GL_FALSE),
@@ -141,8 +141,8 @@
HRESULT result = S_OK;
switch (getType())
{
- case GL_ANY_SAMPLES_PASSED_EXT:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
{
DWORD numPixels = 0;
result = mQuery->GetData(&numPixels, sizeof(numPixels), D3DGETDATA_FLUSH);
@@ -154,7 +154,7 @@
break;
}
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
{
BOOL completed = FALSE;
result = mQuery->GetData(&completed, sizeof(completed), D3DGETDATA_FLUSH);
diff --git a/src/libANGLE/renderer/d3d/d3d9/Query9.h b/src/libANGLE/renderer/d3d/d3d9/Query9.h
index 91da2d7..64c8576 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Query9.h
+++ b/src/libANGLE/renderer/d3d/d3d9/Query9.h
@@ -18,7 +18,7 @@
class Query9 : public QueryImpl
{
public:
- Query9(Renderer9 *renderer, GLenum type);
+ Query9(Renderer9 *renderer, gl::QueryType type);
~Query9() override;
gl::Error begin() override;
diff --git a/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp b/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
index 9066313..2ec05f2 100644
--- a/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
@@ -268,14 +268,14 @@
}
}
-D3DQUERYTYPE ConvertQueryType(GLenum queryType)
+D3DQUERYTYPE ConvertQueryType(gl::QueryType type)
{
- switch (queryType)
+ switch (type)
{
- case GL_ANY_SAMPLES_PASSED_EXT:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
return D3DQUERYTYPE_OCCLUSION;
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
return D3DQUERYTYPE_EVENT;
default:
UNREACHABLE();
diff --git a/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h b/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h
index 8d83d87..9021b3d 100644
--- a/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h
+++ b/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h
@@ -39,7 +39,7 @@
D3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter, float maxAnisotropy);
void ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter,
float *d3dLodBias, float maxAnisotropy, size_t baseLevel);
-D3DQUERYTYPE ConvertQueryType(GLenum queryType);
+D3DQUERYTYPE ConvertQueryType(gl::QueryType type);
D3DMULTISAMPLE_TYPE GetMultisampleType(GLuint samples);
diff --git a/src/libANGLE/renderer/gl/ContextGL.cpp b/src/libANGLE/renderer/gl/ContextGL.cpp
index 1147ae5..b9d6375 100644
--- a/src/libANGLE/renderer/gl/ContextGL.cpp
+++ b/src/libANGLE/renderer/gl/ContextGL.cpp
@@ -91,11 +91,11 @@
return new VertexArrayGL(data, getFunctions(), getStateManager());
}
-QueryImpl *ContextGL::createQuery(GLenum type)
+QueryImpl *ContextGL::createQuery(gl::QueryType type)
{
switch (type)
{
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case gl::QueryType::CommandsCompleted:
return new SyncQueryGL(type, getFunctions(), getStateManager());
default:
diff --git a/src/libANGLE/renderer/gl/ContextGL.h b/src/libANGLE/renderer/gl/ContextGL.h
index 368de1b..9a4e83b 100644
--- a/src/libANGLE/renderer/gl/ContextGL.h
+++ b/src/libANGLE/renderer/gl/ContextGL.h
@@ -53,7 +53,7 @@
VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override;
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override;
+ QueryImpl *createQuery(gl::QueryType type) override;
FenceNVImpl *createFenceNV() override;
SyncImpl *createSync() override;
diff --git a/src/libANGLE/renderer/gl/QueryGL.cpp b/src/libANGLE/renderer/gl/QueryGL.cpp
index 9126c86..449f819 100644
--- a/src/libANGLE/renderer/gl/QueryGL.cpp
+++ b/src/libANGLE/renderer/gl/QueryGL.cpp
@@ -16,24 +16,24 @@
namespace
{
-GLuint64 MergeQueryResults(GLenum type, GLuint64 currentResult, GLuint64 newResult)
+GLuint64 MergeQueryResults(gl::QueryType type, GLuint64 currentResult, GLuint64 newResult)
{
switch (type)
{
- case GL_ANY_SAMPLES_PASSED:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+ case gl::QueryType::AnySamples:
+ case gl::QueryType::AnySamplesConservative:
return (currentResult == GL_TRUE || newResult == GL_TRUE) ? GL_TRUE : GL_FALSE;
- case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ case gl::QueryType::TransformFeedbackPrimitivesWritten:
return currentResult + newResult;
- case GL_TIME_ELAPSED:
+ case gl::QueryType::TimeElapsed:
return currentResult + newResult;
- case GL_TIMESTAMP:
+ case gl::QueryType::Timestamp:
return newResult;
- case GL_PRIMITIVES_GENERATED_EXT:
+ case gl::QueryType::PrimitivesGenerated:
return currentResult + newResult;
default:
@@ -47,7 +47,7 @@
namespace rx
{
-QueryGL::QueryGL(GLenum type) : QueryImpl(type)
+QueryGL::QueryGL(gl::QueryType type) : QueryImpl(type)
{
}
@@ -55,7 +55,7 @@
{
}
-StandardQueryGL::StandardQueryGL(GLenum type,
+StandardQueryGL::StandardQueryGL(gl::QueryType type,
const FunctionsGL *functions,
StateManagerGL *stateManager)
: QueryGL(type),
@@ -98,7 +98,7 @@
gl::Error StandardQueryGL::queryCounter()
{
- ASSERT(mType == GL_TIMESTAMP);
+ ASSERT(mType == gl::QueryType::Timestamp);
// Directly create a query for the timestamp and add it to the pending query queue, as timestamp
// queries do not have the traditional begin/end block and never need to be paused/resumed
@@ -282,14 +282,14 @@
public:
SyncProviderGLQuery(const FunctionsGL *functions,
StateManagerGL *stateManager,
- GLenum queryType)
+ gl::QueryType type)
: mFunctions(functions), mQuery(0)
{
mFunctions->genQueries(1, &mQuery);
- ANGLE_SWALLOW_ERR(stateManager->pauseQuery(queryType));
- mFunctions->beginQuery(queryType, mQuery);
- mFunctions->endQuery(queryType);
- ANGLE_SWALLOW_ERR(stateManager->resumeQuery(queryType));
+ ANGLE_SWALLOW_ERR(stateManager->pauseQuery(type));
+ mFunctions->beginQuery(ToGLenum(type), mQuery);
+ mFunctions->endQuery(ToGLenum(type));
+ ANGLE_SWALLOW_ERR(stateManager->resumeQuery(type));
}
~SyncProviderGLQuery() override { mFunctions->deleteQueries(1, &mQuery); }
@@ -317,7 +317,9 @@
GLuint mQuery;
};
-SyncQueryGL::SyncQueryGL(GLenum type, const FunctionsGL *functions, StateManagerGL *stateManager)
+SyncQueryGL::SyncQueryGL(gl::QueryType type,
+ const FunctionsGL *functions,
+ StateManagerGL *stateManager)
: QueryGL(type),
mFunctions(functions),
mStateManager(stateManager),
@@ -325,7 +327,7 @@
mFinished(false)
{
ASSERT(IsSupported(mFunctions));
- ASSERT(type == GL_COMMANDS_COMPLETED_CHROMIUM);
+ ASSERT(type == gl::QueryType::CommandsCompleted);
}
SyncQueryGL::~SyncQueryGL()
@@ -351,7 +353,7 @@
else if (nativegl::SupportsOcclusionQueries(mFunctions))
{
mSyncProvider.reset(
- new SyncProviderGLQuery(mFunctions, mStateManager, GL_ANY_SAMPLES_PASSED));
+ new SyncProviderGLQuery(mFunctions, mStateManager, gl::QueryType::AnySamples));
}
else
{
diff --git a/src/libANGLE/renderer/gl/QueryGL.h b/src/libANGLE/renderer/gl/QueryGL.h
index 887665a..866d97f 100644
--- a/src/libANGLE/renderer/gl/QueryGL.h
+++ b/src/libANGLE/renderer/gl/QueryGL.h
@@ -22,7 +22,7 @@
class QueryGL : public QueryImpl
{
public:
- QueryGL(GLenum type);
+ QueryGL(gl::QueryType type);
~QueryGL() override;
// OpenGL is only allowed to have one query of each type active at any given time. Since ANGLE
@@ -38,7 +38,7 @@
class StandardQueryGL : public QueryGL
{
public:
- StandardQueryGL(GLenum type, const FunctionsGL *functions, StateManagerGL *stateManager);
+ StandardQueryGL(gl::QueryType type, const FunctionsGL *functions, StateManagerGL *stateManager);
~StandardQueryGL() override;
gl::Error begin() override;
@@ -59,7 +59,7 @@
template <typename T>
gl::Error getResultBase(T *params);
- GLenum mType;
+ gl::QueryType mType;
const FunctionsGL *mFunctions;
StateManagerGL *mStateManager;
@@ -73,7 +73,7 @@
class SyncQueryGL : public QueryGL
{
public:
- SyncQueryGL(GLenum type, const FunctionsGL *functions, StateManagerGL *stateManager);
+ SyncQueryGL(gl::QueryType type, const FunctionsGL *functions, StateManagerGL *stateManager);
~SyncQueryGL() override;
static bool IsSupported(const FunctionsGL *functions);
diff --git a/src/libANGLE/renderer/gl/StateManagerGL.cpp b/src/libANGLE/renderer/gl/StateManagerGL.cpp
index de01c36..83d9f7e 100644
--- a/src/libANGLE/renderer/gl/StateManagerGL.cpp
+++ b/src/libANGLE/renderer/gl/StateManagerGL.cpp
@@ -33,13 +33,6 @@
namespace rx
{
-static constexpr GLenum QueryTypes[] = {GL_ANY_SAMPLES_PASSED,
- GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
- GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
- GL_TIME_ELAPSED,
- GL_COMMANDS_COMPLETED_CHROMIUM,
- GL_PRIMITIVES_GENERATED_EXT};
-
StateManagerGL::IndexedBufferBinding::IndexedBufferBinding() : offset(0), size(0), buffer(0)
{
}
@@ -190,11 +183,8 @@
mSampleMaskValues.fill(~GLbitfield(0));
- for (GLenum queryType : QueryTypes)
- {
- mQueries[queryType] = nullptr;
- mTemporaryPausedQueries[queryType] = nullptr;
- }
+ mQueries.fill(nullptr);
+ mTemporaryPausedQueries.fill(nullptr);
// Initialize point sprite state for desktop GL
if (mFunctions->standard == STANDARD_GL_DESKTOP)
@@ -674,23 +664,22 @@
mLocalDirtyBits.set(gl::State::DIRTY_BIT_TRANSFORM_FEEDBACK_BINDING);
}
-void StateManagerGL::beginQuery(GLenum type, QueryGL *queryObject, GLuint queryId)
+void StateManagerGL::beginQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId)
{
// Make sure this is a valid query type and there is no current active query of this type
- ASSERT(mQueries.find(type) != mQueries.end());
ASSERT(mQueries[type] == nullptr);
ASSERT(queryId != 0);
mQueries[type] = queryObject;
- mFunctions->beginQuery(type, queryId);
+ mFunctions->beginQuery(ToGLenum(type), queryId);
}
-void StateManagerGL::endQuery(GLenum type, QueryGL *queryObject, GLuint queryId)
+void StateManagerGL::endQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId)
{
ASSERT(queryObject != nullptr);
ASSERT(mQueries[type] == queryObject);
mQueries[type] = nullptr;
- mFunctions->endQuery(type);
+ mFunctions->endQuery(ToGLenum(type));
}
gl::Error StateManagerGL::setDrawArraysState(const gl::Context *context,
@@ -776,27 +765,29 @@
gl::Error StateManagerGL::pauseAllQueries()
{
- for (auto &prevQuery : mQueries)
+ for (gl::QueryType type : angle::AllEnums<gl::QueryType>())
{
- if (prevQuery.second)
+ QueryGL *previousQuery = mQueries[type];
+
+ if (previousQuery != nullptr)
{
- ANGLE_TRY(prevQuery.second->pause());
- mTemporaryPausedQueries[prevQuery.first] = prevQuery.second;
- prevQuery.second = nullptr;
+ ANGLE_TRY(previousQuery->pause());
+ mTemporaryPausedQueries[type] = previousQuery;
+ mQueries[type] = nullptr;
}
}
+
return gl::NoError();
}
-gl::Error StateManagerGL::pauseQuery(GLenum type)
+gl::Error StateManagerGL::pauseQuery(gl::QueryType type)
{
- ASSERT(mQueries.find(type) != mQueries.end());
- ASSERT(mTemporaryPausedQueries.find(type) == mQueries.end());
- QueryGL *prevQuery = mQueries[type];
- if (prevQuery)
+ QueryGL *previousQuery = mQueries[type];
+
+ if (previousQuery)
{
- ANGLE_TRY(prevQuery->pause());
- mTemporaryPausedQueries[type] = prevQuery;
+ ANGLE_TRY(previousQuery->pause());
+ mTemporaryPausedQueries[type] = previousQuery;
mQueries[type] = nullptr;
}
@@ -805,26 +796,26 @@
gl::Error StateManagerGL::resumeAllQueries()
{
- for (auto &pausedQuery : mTemporaryPausedQueries)
+ for (gl::QueryType type : angle::AllEnums<gl::QueryType>())
{
- if (pausedQuery.second)
+ QueryGL *pausedQuery = mTemporaryPausedQueries[type];
+
+ if (pausedQuery != nullptr)
{
- ASSERT(mQueries[pausedQuery.first] == nullptr);
- ANGLE_TRY(pausedQuery.second->resume());
- pausedQuery.second = nullptr;
+ ASSERT(mQueries[type] == nullptr);
+ ANGLE_TRY(pausedQuery->resume());
+ mTemporaryPausedQueries[type] = nullptr;
}
}
return gl::NoError();
}
-gl::Error StateManagerGL::resumeQuery(GLenum type)
+gl::Error StateManagerGL::resumeQuery(gl::QueryType type)
{
- ASSERT(mQueries.find(type) != mQueries.end());
- ASSERT(mTemporaryPausedQueries.find(type) != mTemporaryPausedQueries.end());
-
QueryGL *pausedQuery = mTemporaryPausedQueries[type];
- if (pausedQuery)
+
+ if (pausedQuery != nullptr)
{
ANGLE_TRY(pausedQuery->resume());
mTemporaryPausedQueries[type] = nullptr;
@@ -841,7 +832,7 @@
// Temporarily pausing queries during context switch is not supported
for (auto &pausedQuery : mTemporaryPausedQueries)
{
- ASSERT(pausedQuery.second == nullptr);
+ ASSERT(pausedQuery == nullptr);
}
#endif
@@ -849,17 +840,18 @@
auto contextID = context->getContextState().getContextID();
if (contextID != mPrevDrawContext)
{
- for (auto ¤tQuery : mQueries)
+ for (gl::QueryType type : angle::AllEnums<gl::QueryType>())
{
+ QueryGL *currentQuery = mQueries[type];
// Pause any old query object
- if (currentQuery.second)
+ if (currentQuery != nullptr)
{
- ANGLE_TRY(currentQuery.second->pause());
- currentQuery.second = nullptr;
+ ANGLE_TRY(currentQuery->pause());
+ mQueries[type] = nullptr;
}
// Check if this new context needs to resume a query
- gl::Query *newQuery = glState.getActiveQuery(currentQuery.first);
+ gl::Query *newQuery = glState.getActiveQuery(type);
if (newQuery != nullptr)
{
QueryGL *queryGL = GetImplAs<QueryGL>(newQuery);
diff --git a/src/libANGLE/renderer/gl/StateManagerGL.h b/src/libANGLE/renderer/gl/StateManagerGL.h
index 5ec46ca..45a8d8d 100644
--- a/src/libANGLE/renderer/gl/StateManagerGL.h
+++ b/src/libANGLE/renderer/gl/StateManagerGL.h
@@ -75,8 +75,8 @@
void bindRenderbuffer(GLenum type, GLuint renderbuffer);
void bindTransformFeedback(GLenum type, GLuint transformFeedback);
void onTransformFeedbackStateChange();
- void beginQuery(GLenum type, QueryGL *queryObject, GLuint queryId);
- void endQuery(GLenum type, QueryGL *queryObject, GLuint queryId);
+ void beginQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId);
+ void endQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId);
void onBeginQuery(QueryGL *query);
void setAttributeCurrentData(size_t index, const gl::VertexAttribCurrentValueData &data);
@@ -169,9 +169,9 @@
void pauseTransformFeedback();
gl::Error pauseAllQueries();
- gl::Error pauseQuery(GLenum type);
+ gl::Error pauseQuery(gl::QueryType type);
gl::Error resumeAllQueries();
- gl::Error resumeQuery(GLenum type);
+ gl::Error resumeQuery(gl::QueryType type);
gl::Error onMakeCurrent(const gl::Context *context);
void syncState(const gl::Context *context, const gl::State::DirtyBits &glDirtyBits);
@@ -253,11 +253,11 @@
TransformFeedbackGL *mCurrentTransformFeedback;
// Queries that are currently running on the driver
- std::map<GLenum, QueryGL *> mQueries;
+ angle::PackedEnumMap<gl::QueryType, QueryGL *> mQueries;
// Queries that are temporarily in the paused state so that their results will not be affected
// by other operations
- std::map<GLenum, QueryGL *> mTemporaryPausedQueries;
+ angle::PackedEnumMap<gl::QueryType, QueryGL *> mTemporaryPausedQueries;
gl::ContextID mPrevDrawContext;
diff --git a/src/libANGLE/renderer/null/ContextNULL.cpp b/src/libANGLE/renderer/null/ContextNULL.cpp
index 5a523d3..94becb4 100644
--- a/src/libANGLE/renderer/null/ContextNULL.cpp
+++ b/src/libANGLE/renderer/null/ContextNULL.cpp
@@ -373,7 +373,7 @@
return new VertexArrayNULL(data);
}
-QueryImpl *ContextNULL::createQuery(GLenum type)
+QueryImpl *ContextNULL::createQuery(gl::QueryType type)
{
return new QueryNULL(type);
}
diff --git a/src/libANGLE/renderer/null/ContextNULL.h b/src/libANGLE/renderer/null/ContextNULL.h
index 212e5ba..08f5cb9 100644
--- a/src/libANGLE/renderer/null/ContextNULL.h
+++ b/src/libANGLE/renderer/null/ContextNULL.h
@@ -178,7 +178,7 @@
VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override;
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override;
+ QueryImpl *createQuery(gl::QueryType type) override;
FenceNVImpl *createFenceNV() override;
SyncImpl *createSync() override;
diff --git a/src/libANGLE/renderer/null/QueryNULL.cpp b/src/libANGLE/renderer/null/QueryNULL.cpp
index 8888028..2797f41 100644
--- a/src/libANGLE/renderer/null/QueryNULL.cpp
+++ b/src/libANGLE/renderer/null/QueryNULL.cpp
@@ -14,7 +14,7 @@
namespace rx
{
-QueryNULL::QueryNULL(GLenum type) : QueryImpl(type)
+QueryNULL::QueryNULL(gl::QueryType type) : QueryImpl(type)
{
}
diff --git a/src/libANGLE/renderer/null/QueryNULL.h b/src/libANGLE/renderer/null/QueryNULL.h
index 40082a9..177eb66 100644
--- a/src/libANGLE/renderer/null/QueryNULL.h
+++ b/src/libANGLE/renderer/null/QueryNULL.h
@@ -18,7 +18,7 @@
class QueryNULL : public QueryImpl
{
public:
- QueryNULL(GLenum type);
+ QueryNULL(gl::QueryType type);
~QueryNULL() override;
gl::Error begin() override;
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index c4f38ff..841fd4d 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -678,7 +678,7 @@
return new VertexArrayVk(state);
}
-QueryImpl *ContextVk::createQuery(GLenum type)
+QueryImpl *ContextVk::createQuery(gl::QueryType type)
{
return new QueryVk(type);
}
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.h b/src/libANGLE/renderer/vulkan/ContextVk.h
index 5bb741d..3eb98b0 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.h
+++ b/src/libANGLE/renderer/vulkan/ContextVk.h
@@ -123,7 +123,7 @@
VertexArrayImpl *createVertexArray(const gl::VertexArrayState &state) override;
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override;
+ QueryImpl *createQuery(gl::QueryType type) override;
FenceNVImpl *createFenceNV() override;
SyncImpl *createSync() override;
diff --git a/src/libANGLE/renderer/vulkan/QueryVk.cpp b/src/libANGLE/renderer/vulkan/QueryVk.cpp
index c3eb2c4..42e33e3 100644
--- a/src/libANGLE/renderer/vulkan/QueryVk.cpp
+++ b/src/libANGLE/renderer/vulkan/QueryVk.cpp
@@ -14,7 +14,7 @@
namespace rx
{
-QueryVk::QueryVk(GLenum type) : QueryImpl(type)
+QueryVk::QueryVk(gl::QueryType type) : QueryImpl(type)
{
}
diff --git a/src/libANGLE/renderer/vulkan/QueryVk.h b/src/libANGLE/renderer/vulkan/QueryVk.h
index 7c92734..a4e978c 100644
--- a/src/libANGLE/renderer/vulkan/QueryVk.h
+++ b/src/libANGLE/renderer/vulkan/QueryVk.h
@@ -18,7 +18,7 @@
class QueryVk : public QueryImpl
{
public:
- QueryVk(GLenum type);
+ QueryVk(gl::QueryType type);
~QueryVk() override;
gl::Error begin() override;
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index 9d4ea71..56d6e76 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -966,26 +966,21 @@
return true;
}
-bool ValidQueryType(const Context *context, GLenum queryType)
+bool ValidQueryType(const Context *context, QueryType queryType)
{
- static_assert(GL_ANY_SAMPLES_PASSED == GL_ANY_SAMPLES_PASSED_EXT,
- "GL extension enums not equal.");
- static_assert(GL_ANY_SAMPLES_PASSED_CONSERVATIVE == GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT,
- "GL extension enums not equal.");
-
switch (queryType)
{
- case GL_ANY_SAMPLES_PASSED:
- case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+ case QueryType::AnySamples:
+ case QueryType::AnySamplesConservative:
return context->getClientMajorVersion() >= 3 ||
context->getExtensions().occlusionQueryBoolean;
- case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ case QueryType::TransformFeedbackPrimitivesWritten:
return (context->getClientMajorVersion() >= 3);
- case GL_TIME_ELAPSED_EXT:
+ case QueryType::TimeElapsed:
return context->getExtensions().disjointTimerQuery;
- case GL_COMMANDS_COMPLETED_CHROMIUM:
+ case QueryType::CommandsCompleted:
return context->getExtensions().syncQuery;
- case GL_PRIMITIVES_GENERATED_EXT:
+ case QueryType::PrimitivesGenerated:
return context->getExtensions().geometryShader;
default:
return false;
@@ -1611,7 +1606,7 @@
return true;
}
-bool ValidateBeginQueryBase(gl::Context *context, GLenum target, GLuint id)
+bool ValidateBeginQueryBase(gl::Context *context, QueryType target, GLuint id)
{
if (!ValidQueryType(context, target))
{
@@ -1666,7 +1661,7 @@
return true;
}
-bool ValidateBeginQueryEXT(gl::Context *context, GLenum target, GLuint id)
+bool ValidateBeginQueryEXT(gl::Context *context, QueryType target, GLuint id)
{
if (!context->getExtensions().occlusionQueryBoolean &&
!context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery)
@@ -1678,7 +1673,7 @@
return ValidateBeginQueryBase(context, target, id);
}
-bool ValidateEndQueryBase(gl::Context *context, GLenum target)
+bool ValidateEndQueryBase(gl::Context *context, QueryType target)
{
if (!ValidQueryType(context, target))
{
@@ -1697,7 +1692,7 @@
return true;
}
-bool ValidateEndQueryEXT(gl::Context *context, GLenum target)
+bool ValidateEndQueryEXT(gl::Context *context, QueryType target)
{
if (!context->getExtensions().occlusionQueryBoolean &&
!context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery)
@@ -1709,7 +1704,7 @@
return ValidateEndQueryBase(context, target);
}
-bool ValidateQueryCounterEXT(Context *context, GLuint id, GLenum target)
+bool ValidateQueryCounterEXT(Context *context, GLuint id, QueryType target)
{
if (!context->getExtensions().disjointTimerQuery)
{
@@ -1717,7 +1712,7 @@
return false;
}
- if (target != GL_TIMESTAMP_EXT)
+ if (target != QueryType::Timestamp)
{
ANGLE_VALIDATION_ERR(context, InvalidEnum(), InvalidQueryTarget);
return false;
@@ -1739,14 +1734,14 @@
return true;
}
-bool ValidateGetQueryivBase(Context *context, GLenum target, GLenum pname, GLsizei *numParams)
+bool ValidateGetQueryivBase(Context *context, QueryType target, GLenum pname, GLsizei *numParams)
{
if (numParams)
{
*numParams = 0;
}
- if (!ValidQueryType(context, target) && target != GL_TIMESTAMP_EXT)
+ if (!ValidQueryType(context, target) && target != QueryType::Timestamp)
{
ANGLE_VALIDATION_ERR(context, InvalidEnum(), InvalidQueryType);
return false;
@@ -1755,7 +1750,7 @@
switch (pname)
{
case GL_CURRENT_QUERY_EXT:
- if (target == GL_TIMESTAMP_EXT)
+ if (target == QueryType::Timestamp)
{
context->handleError(InvalidEnum() << "Cannot use current query for timestamp");
return false;
@@ -1763,7 +1758,7 @@
break;
case GL_QUERY_COUNTER_BITS_EXT:
if (!context->getExtensions().disjointTimerQuery ||
- (target != GL_TIMESTAMP_EXT && target != GL_TIME_ELAPSED_EXT))
+ (target != QueryType::Timestamp && target != QueryType::TimeElapsed))
{
ANGLE_VALIDATION_ERR(context, InvalidEnum(), InvalidPname);
return false;
@@ -1783,7 +1778,7 @@
return true;
}
-bool ValidateGetQueryivEXT(Context *context, GLenum target, GLenum pname, GLint *params)
+bool ValidateGetQueryivEXT(Context *context, QueryType target, GLenum pname, GLint *params)
{
if (!context->getExtensions().occlusionQueryBoolean &&
!context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery)
@@ -1796,7 +1791,7 @@
}
bool ValidateGetQueryivRobustANGLE(Context *context,
- GLenum target,
+ QueryType target,
GLenum pname,
GLsizei bufSize,
GLsizei *length,
@@ -1831,7 +1826,7 @@
*numParams = 0;
}
- Query *queryObject = context->getQuery(id, false, GL_NONE);
+ Query *queryObject = context->getQuery(id, false, QueryType::InvalidEnum);
if (!queryObject)
{
@@ -2728,7 +2723,7 @@
}
if (extensions.disjointTimerQuery && framebufferNumViews > 1 &&
- state.isQueryActive(GL_TIME_ELAPSED_EXT))
+ state.isQueryActive(QueryType::TimeElapsed))
{
context->handleError(InvalidOperation() << "There is an active query for target "
"GL_TIME_ELAPSED_EXT when the number of "
diff --git a/src/libANGLE/validationES.h b/src/libANGLE/validationES.h
index f4e4538..f66484f 100644
--- a/src/libANGLE/validationES.h
+++ b/src/libANGLE/validationES.h
@@ -74,7 +74,7 @@
const void *pixels,
GLsizei imageSize);
-bool ValidQueryType(const Context *context, GLenum queryType);
+bool ValidQueryType(const Context *context, QueryType queryType);
bool ValidateWebGLVertexAttribPointer(Context *context,
GLenum type,
@@ -167,23 +167,20 @@
bool ValidateGenQueriesEXT(gl::Context *context, GLsizei n, GLuint *ids);
bool ValidateDeleteQueriesEXT(gl::Context *context, GLsizei n, const GLuint *ids);
bool ValidateIsQueryEXT(gl::Context *context, GLuint id);
-bool ValidateBeginQueryBase(Context *context, GLenum target, GLuint id);
-bool ValidateBeginQueryEXT(Context *context, GLenum target, GLuint id);
-bool ValidateEndQueryBase(Context *context, GLenum target);
-bool ValidateEndQueryEXT(Context *context, GLenum target);
-bool ValidateQueryCounterEXT(Context *context, GLuint id, GLenum target);
-bool ValidateGetQueryivBase(Context *context, GLenum target, GLenum pname, GLsizei *numParams);
-bool ValidateGetQueryivEXT(Context *context, GLenum target, GLenum pname, GLint *params);
+bool ValidateBeginQueryBase(Context *context, QueryType target, GLuint id);
+bool ValidateBeginQueryEXT(Context *context, QueryType target, GLuint id);
+bool ValidateEndQueryBase(Context *context, QueryType target);
+bool ValidateEndQueryEXT(Context *context, QueryType target);
+bool ValidateQueryCounterEXT(Context *context, GLuint id, QueryType target);
+bool ValidateGetQueryivBase(Context *context, QueryType target, GLenum pname, GLsizei *numParams);
+bool ValidateGetQueryivEXT(Context *context, QueryType target, GLenum pname, GLint *params);
bool ValidateGetQueryivRobustANGLE(Context *context,
- GLenum target,
+ QueryType target,
GLenum pname,
GLsizei bufSize,
GLsizei *length,
GLint *params);
-bool ValidateGetQueryObjectValueBase(Context *context,
- GLenum target,
- GLenum pname,
- GLsizei *numParams);
+bool ValidateGetQueryObjectValueBase(Context *context, GLuint id, GLenum pname, GLsizei *numParams);
bool ValidateGetQueryObjectivEXT(Context *context, GLuint id, GLenum pname, GLint *params);
bool ValidateGetQueryObjectivRobustANGLE(Context *context,
GLuint id,
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index a7f522c..097d924 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -1063,7 +1063,7 @@
height, depth);
}
-bool ValidateBeginQuery(gl::Context *context, GLenum target, GLuint id)
+bool ValidateBeginQuery(gl::Context *context, QueryType target, GLuint id)
{
if (context->getClientMajorVersion() < 3)
{
@@ -1074,7 +1074,7 @@
return ValidateBeginQueryBase(context, target, id);
}
-bool ValidateEndQuery(gl::Context *context, GLenum target)
+bool ValidateEndQuery(gl::Context *context, QueryType target)
{
if (context->getClientMajorVersion() < 3)
{
@@ -1085,7 +1085,7 @@
return ValidateEndQueryBase(context, target);
}
-bool ValidateGetQueryiv(Context *context, GLenum target, GLenum pname, GLint *params)
+bool ValidateGetQueryiv(Context *context, QueryType target, GLenum pname, GLint *params)
{
if (context->getClientMajorVersion() < 3)
{
diff --git a/src/libANGLE/validationES3.h b/src/libANGLE/validationES3.h
index bdce129..b4b1d18 100644
--- a/src/libANGLE/validationES3.h
+++ b/src/libANGLE/validationES3.h
@@ -146,11 +146,11 @@
GLsizei height,
GLsizei depth);
-bool ValidateBeginQuery(Context *context, GLenum target, GLuint id);
+bool ValidateBeginQuery(Context *context, QueryType target, GLuint id);
-bool ValidateEndQuery(Context *context, GLenum target);
+bool ValidateEndQuery(Context *context, QueryType target);
-bool ValidateGetQueryiv(Context *context, GLenum target, GLenum pname, GLint *params);
+bool ValidateGetQueryiv(Context *context, QueryType target, GLenum pname, GLint *params);
bool ValidateGetQueryObjectuiv(Context *context, GLuint id, GLenum pname, GLuint *params);
diff --git a/src/libGLESv2/entry_points_gles_3_0_autogen.cpp b/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
index e227021..d25bfea 100644
--- a/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
@@ -23,11 +23,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::BeginQuery>(target, id);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::BeginQuery>(targetPacked, id);
- if (context->skipValidation() || ValidateBeginQuery(context, target, id))
+ if (context->skipValidation() || ValidateBeginQuery(context, targetPacked, id))
{
- context->beginQuery(target, id);
+ context->beginQuery(targetPacked, id);
}
}
}
@@ -560,11 +561,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::EndQuery>(target);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::EndQuery>(targetPacked);
- if (context->skipValidation() || ValidateEndQuery(context, target))
+ if (context->skipValidation() || ValidateEndQuery(context, targetPacked))
{
- context->endQuery(target);
+ context->endQuery(targetPacked);
}
}
}
@@ -963,11 +965,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::GetQueryiv>(target, pname, params);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::GetQueryiv>(targetPacked, pname, params);
- if (context->skipValidation() || ValidateGetQueryiv(context, target, pname, params))
+ if (context->skipValidation() || ValidateGetQueryiv(context, targetPacked, pname, params))
{
- context->getQueryiv(target, pname, params);
+ context->getQueryiv(targetPacked, pname, params);
}
}
}
diff --git a/src/libGLESv2/entry_points_gles_ext_autogen.cpp b/src/libGLESv2/entry_points_gles_ext_autogen.cpp
index 69f4e6c..61dced0 100644
--- a/src/libGLESv2/entry_points_gles_ext_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_ext_autogen.cpp
@@ -972,13 +972,14 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::GetQueryivRobustANGLE>(target, pname, bufSize, length,
- params);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::GetQueryivRobustANGLE>(targetPacked, pname, bufSize,
+ length, params);
if (context->skipValidation() ||
- ValidateGetQueryivRobustANGLE(context, target, pname, bufSize, length, params))
+ ValidateGetQueryivRobustANGLE(context, targetPacked, pname, bufSize, length, params))
{
- context->getQueryivRobust(target, pname, bufSize, length, params);
+ context->getQueryivRobust(targetPacked, pname, bufSize, length, params);
}
}
}
@@ -2726,11 +2727,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::BeginQueryEXT>(target, id);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::BeginQueryEXT>(targetPacked, id);
- if (context->skipValidation() || ValidateBeginQueryEXT(context, target, id))
+ if (context->skipValidation() || ValidateBeginQueryEXT(context, targetPacked, id))
{
- context->beginQuery(target, id);
+ context->beginQuery(targetPacked, id);
}
}
}
@@ -2758,11 +2760,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::EndQueryEXT>(target);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::EndQueryEXT>(targetPacked);
- if (context->skipValidation() || ValidateEndQueryEXT(context, target))
+ if (context->skipValidation() || ValidateEndQueryEXT(context, targetPacked))
{
- context->endQuery(target);
+ context->endQuery(targetPacked);
}
}
}
@@ -2855,11 +2858,13 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::GetQueryivEXT>(target, pname, params);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::GetQueryivEXT>(targetPacked, pname, params);
- if (context->skipValidation() || ValidateGetQueryivEXT(context, target, pname, params))
+ if (context->skipValidation() ||
+ ValidateGetQueryivEXT(context, targetPacked, pname, params))
{
- context->getQueryiv(target, pname, params);
+ context->getQueryiv(targetPacked, pname, params);
}
}
}
@@ -2889,11 +2894,12 @@
Context *context = GetValidGlobalContext();
if (context)
{
- context->gatherParams<EntryPoint::QueryCounterEXT>(id, target);
+ QueryType targetPacked = FromGLenum<QueryType>(target);
+ context->gatherParams<EntryPoint::QueryCounterEXT>(id, targetPacked);
- if (context->skipValidation() || ValidateQueryCounterEXT(context, id, target))
+ if (context->skipValidation() || ValidateQueryCounterEXT(context, id, targetPacked))
{
- context->queryCounter(id, target);
+ context->queryCounter(id, targetPacked);
}
}
}
diff --git a/src/tests/angle_unittests_utils.h b/src/tests/angle_unittests_utils.h
index cf8648e..1436208 100644
--- a/src/tests/angle_unittests_utils.h
+++ b/src/tests/angle_unittests_utils.h
@@ -53,7 +53,7 @@
}
// Query and Fence creation
- QueryImpl *createQuery(GLenum type) override { return nullptr; }
+ QueryImpl *createQuery(gl::QueryType type) override { return nullptr; }
FenceNVImpl *createFenceNV() override { return nullptr; }
SyncImpl *createSync() override { return nullptr; }
@@ -92,7 +92,7 @@
MOCK_METHOD1(createRenderbuffer, RenderbufferImpl *(const gl::RenderbufferState &));
MOCK_METHOD1(createBuffer, BufferImpl *(const gl::BufferState &));
MOCK_METHOD1(createVertexArray, VertexArrayImpl *(const gl::VertexArrayState &));
- MOCK_METHOD1(createQuery, QueryImpl *(GLenum type));
+ MOCK_METHOD1(createQuery, QueryImpl *(gl::QueryType type));
MOCK_METHOD0(createFenceNV, FenceNVImpl *());
MOCK_METHOD0(createSync, SyncImpl *());
MOCK_METHOD1(createTransformFeedback,