diff options
author | Jose Fonseca <jfonseca@vmware.com> | 2015-08-13 21:25:54 +0100 |
---|---|---|
committer | Jose Fonseca <jfonseca@vmware.com> | 2015-08-13 21:25:54 +0100 |
commit | 6f05ff3b9e3da0f394a23b5a6c94a08f8bdd1532 (patch) | |
tree | 46402d4db80bbbeb531d98f5e33181b717ce3d0f | |
parent | 6a7815c2c75464e687a45b1c696bdbcfdd567360 (diff) |
glretrace: Support GL_ARB_gpu_shader_int64 uniforms.
-rw-r--r-- | helpers/glsize.hpp | 30 | ||||
-rw-r--r-- | retrace/glstate_shaders.cpp | 16 |
2 files changed, 46 insertions, 0 deletions
diff --git a/helpers/glsize.hpp b/helpers/glsize.hpp index f0f2ae6b..9557a612 100644 --- a/helpers/glsize.hpp +++ b/helpers/glsize.hpp @@ -146,6 +146,36 @@ _gl_uniform_size(GLenum type, GLenum &elemType, GLint &numCols, GLint &numRows) elemType = GL_UNSIGNED_INT; numCols = 4; break; + case GL_INT64_ARB: + elemType = GL_INT64_ARB; + break; + case GL_INT64_VEC2_ARB: + elemType = GL_INT64_ARB; + numCols = 2; + break; + case GL_INT64_VEC3_ARB: + elemType = GL_INT64_ARB; + numCols = 3; + break; + case GL_INT64_VEC4_ARB: + elemType = GL_INT64_ARB; + numCols = 4; + break; + case GL_UNSIGNED_INT64_ARB: + elemType = GL_UNSIGNED_INT64_ARB; + break; + case GL_UNSIGNED_INT64_VEC2_ARB: + elemType = GL_UNSIGNED_INT64_ARB; + numCols = 2; + break; + case GL_UNSIGNED_INT64_VEC3_ARB: + elemType = GL_UNSIGNED_INT64_ARB; + numCols = 3; + break; + case GL_UNSIGNED_INT64_VEC4_ARB: + elemType = GL_UNSIGNED_INT64_ARB; + numCols = 4; + break; case GL_BOOL: elemType = GL_BOOL; break; diff --git a/retrace/glstate_shaders.cpp b/retrace/glstate_shaders.cpp index 903deb28..8ef46a3b 100644 --- a/retrace/glstate_shaders.cpp +++ b/retrace/glstate_shaders.cpp @@ -289,6 +289,8 @@ dumpAttrib(StateWriter &writer, const GLdouble *dvalue; const GLint *ivalue; const GLuint *uivalue; + const GLint64 *i64value; + const GLuint64 *ui64value; } u; u.rawvalue = data + row*desc.rowStride + col*desc.colStride; @@ -306,6 +308,12 @@ dumpAttrib(StateWriter &writer, case GL_UNSIGNED_INT: writer.writeInt(*u.uivalue); break; + case GL_INT64_ARB: + writer.writeInt(*u.i64value); + break; + case GL_UNSIGNED_INT64_ARB: + writer.writeInt(*u.ui64value); + break; case GL_BOOL: writer.writeBool(*u.uivalue); break; @@ -435,6 +443,8 @@ dumpUniform(StateWriter &writer, GLdouble dvalues[4*4]; GLint ivalues[4*4]; GLuint uivalues[4*4]; + GLint64 i64values[4*4]; + GLuint64 ui64values[4*4]; GLbyte data[4*4*4]; } u; @@ -474,6 +484,12 @@ dumpUniform(StateWriter &writer, case GL_UNSIGNED_INT: glGetUniformuiv(program, location, u.uivalues); break; + case GL_INT64_ARB: + glGetUniformi64vARB(program, location, u.i64values); + break; + case GL_UNSIGNED_INT64_ARB: + glGetUniformui64vARB(program, location, u.ui64values); + break; case GL_BOOL: glGetUniformiv(program, location, u.ivalues); break; |