Commit a6d46239 by Cody Northrop Committed by Commit Bot

Capture/Replay: Support CaptureGetQueryObject

Test: Fortnite MEC Bug: b/180418810 Bug: angleproject:5658 Change-Id: Icc95faeebbe1fa850f25252c90a5ef8b68634ea0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2702153Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
parent 4f639a7e
...@@ -2357,6 +2357,26 @@ void CaptureGenQueriesEXT_idsPacked(const State &glState, ...@@ -2357,6 +2357,26 @@ void CaptureGenQueriesEXT_idsPacked(const State &glState,
CaptureGenHandles(n, ids, paramCapture); CaptureGenHandles(n, ids, paramCapture);
} }
// For each of the GetQueryObject functions below, the spec states:
//
// There may be an indeterminate delay before a query object's
// result value is available. If pname is QUERY_RESULT_AVAILABLE,
// FALSE is returned if such a delay would be required; otherwise
// TRUE is returned. It must always be true that if any query
// object returns a result available of TRUE, all queries of the
// same type issued prior to that query must also return TRUE.
// Repeatedly querying QUERY_RESULT_AVAILABLE for any given query
// object is guaranteed to return TRUE eventually.
//
// If pname is QUERY_RESULT, then the query object's result value is
// returned as a single integer in params. If the value is so large
// in magnitude that it cannot be represented with the requested
// type, then the nearest value representable using the requested type
// is returned. Querying QUERY_RESULT for any given query object
// forces that query to complete within a finite amount of time.
//
// Thus, return a single value for each param.
//
void CaptureGetQueryObjecti64vEXT_params(const State &glState, void CaptureGetQueryObjecti64vEXT_params(const State &glState,
bool isCallValid, bool isCallValid,
QueryID id, QueryID id,
...@@ -2364,7 +2384,7 @@ void CaptureGetQueryObjecti64vEXT_params(const State &glState, ...@@ -2364,7 +2384,7 @@ void CaptureGetQueryObjecti64vEXT_params(const State &glState,
GLint64 *params, GLint64 *params,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
UNIMPLEMENTED(); paramCapture->readBufferSizeBytes = sizeof(GLint64);
} }
void CaptureGetInteger64vEXT_data(const State &glState, void CaptureGetInteger64vEXT_data(const State &glState,
...@@ -2383,7 +2403,7 @@ void CaptureGetQueryObjectivEXT_params(const State &glState, ...@@ -2383,7 +2403,7 @@ void CaptureGetQueryObjectivEXT_params(const State &glState,
GLint *params, GLint *params,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
UNIMPLEMENTED(); paramCapture->readBufferSizeBytes = sizeof(GLint);
} }
void CaptureGetQueryObjectui64vEXT_params(const State &glState, void CaptureGetQueryObjectui64vEXT_params(const State &glState,
...@@ -2393,7 +2413,7 @@ void CaptureGetQueryObjectui64vEXT_params(const State &glState, ...@@ -2393,7 +2413,7 @@ void CaptureGetQueryObjectui64vEXT_params(const State &glState,
GLuint64 *params, GLuint64 *params,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
UNIMPLEMENTED(); paramCapture->readBufferSizeBytes = sizeof(GLuint64);
} }
void CaptureGetQueryObjectuivEXT_params(const State &glState, void CaptureGetQueryObjectuivEXT_params(const State &glState,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment