summaryrefslogtreecommitdiff
path: root/host
diff options
context:
space:
mode:
authorLingfeng Yang <lfy@google.com>2017-01-17 06:04:56 -0800
committerGreg Hartman <ghartman@google.com>2018-08-23 17:30:51 -0700
commit1efed05b0331491aa22474c45d348e830153d120 (patch)
tree758c2476255aee4133aa4dbeeb3720afa7fe2636 /host
parent60c7e2f2f9b84d24540ee249bca0485745d7e6dd (diff)
downloadopengl-transport-1efed05b0331491aa22474c45d348e830153d120.tar.gz
[WIP] glesv31 hostside changes
Change-Id: I2710d1685e19071cdadf0d5eeb1f29fae6f68e9a
Diffstat (limited to 'host')
-rw-r--r--host/libs/virglrenderer/GLESv3_dec/gles3.attrib28
-rw-r--r--host/libs/virglrenderer/GLESv3_dec/gles3.in1
-rw-r--r--host/libs/virglrenderer/OpenGLESDispatch/gles31_only.entries2
3 files changed, 17 insertions, 14 deletions
diff --git a/host/libs/virglrenderer/GLESv3_dec/gles3.attrib b/host/libs/virglrenderer/GLESv3_dec/gles3.attrib
index 1782a6f16..bc657c582 100644
--- a/host/libs/virglrenderer/GLESv3_dec/gles3.attrib
+++ b/host/libs/virglrenderer/GLESv3_dec/gles3.attrib
@@ -151,9 +151,7 @@ glGetIntegerv
#void glGetProgramiv(GLuint program, GLenum pname, GLint *params)
glGetProgramiv
dir params out
- len params sizeof(GLint)
-#XXX - might change if extension constants that return more then one value
-
+ len params (glUtilsParamSize(pname) * sizeof(GLint))
#void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog)
glGetProgramInfoLog
@@ -844,11 +842,12 @@ glIsSyncAEMU
glGetSyncivAEMU
flag custom_decoder
flag not_api
+ param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
dir length out
len length (sizeof(GLsizei))
+ var_flag length nullAllowed
dir values out
- len values bufSize
- param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
+ len values (bufSize * sizeof(GLint))
glGetInternalformativ
dir params out
@@ -945,6 +944,7 @@ glGetProgramBinary
len binary bufSize
dir binaryFormat out
len binaryFormat (sizeof(GLenum))
+ var_flag length nullAllowed
dir length out
len length (sizeof(GLsizei))
@@ -1042,37 +1042,37 @@ glProgramUniform1fv
len value (count * sizeof(GLfloat))
glProgramUniform2fv
- len value (count * sizeof(GLfloat))
+ len value (count * 2 * sizeof(GLfloat))
glProgramUniform3fv
- len value (count * sizeof(GLfloat))
+ len value (count * 3 * sizeof(GLfloat))
glProgramUniform4fv
- len value (count * sizeof(GLfloat))
+ len value (count * 4 * sizeof(GLfloat))
glProgramUniform1iv
len value (count * sizeof(GLint))
glProgramUniform2iv
- len value (count * sizeof(GLint))
+ len value (count * 2 * sizeof(GLint))
glProgramUniform3iv
- len value (count * sizeof(GLint))
+ len value (count * 3 * sizeof(GLint))
glProgramUniform4iv
- len value (count * sizeof(GLint))
+ len value (count * 4 * sizeof(GLint))
glProgramUniform1uiv
len value (count * sizeof(GLuint))
glProgramUniform2uiv
- len value (count * sizeof(GLuint))
+ len value (count * 2 * sizeof(GLuint))
glProgramUniform3uiv
- len value (count * sizeof(GLuint))
+ len value (count * 3 * sizeof(GLuint))
glProgramUniform4uiv
- len value (count * sizeof(GLuint))
+ len value (count * 4 * sizeof(GLuint))
glProgramUniformMatrix2fv
len value (count * 4 * sizeof(GLfloat))
diff --git a/host/libs/virglrenderer/GLESv3_dec/gles3.in b/host/libs/virglrenderer/GLESv3_dec/gles3.in
index bd5005534..50d9406a3 100644
--- a/host/libs/virglrenderer/GLESv3_dec/gles3.in
+++ b/host/libs/virglrenderer/GLESv3_dec/gles3.in
@@ -472,6 +472,7 @@ GL_ENTRY(GLboolean, glIsProgramPipeline, GLuint pipeline);
GL_ENTRY(void, glUseProgramStages, GLuint pipeline, GLbitfield stages, GLuint program)
# Separable shader programs - may need to change how program objects are represented and shared!
+GL_ENTRY(void, glActiveShaderProgram, GLuint pipeline, GLuint program);
GL_ENTRY(GLuint, glCreateShaderProgramv, GLenum type, GLsizei count, const char ** strings)
GL_ENTRY(GLuint, glCreateShaderProgramvAEMU, GLenum type, GLsizei count, const char *packedStrings, GLuint packedLen)
# Uniforms should work easily if any program object representation problems are solved.
diff --git a/host/libs/virglrenderer/OpenGLESDispatch/gles31_only.entries b/host/libs/virglrenderer/OpenGLESDispatch/gles31_only.entries
index 371017520..d6062f28d 100644
--- a/host/libs/virglrenderer/OpenGLESDispatch/gles31_only.entries
+++ b/host/libs/virglrenderer/OpenGLESDispatch/gles31_only.entries
@@ -26,6 +26,8 @@ GLboolean glIsProgramPipeline(GLuint pipeline);
void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
## Separable shader programs
+void glActiveShaderProgram(GLuint pipeline, GLuint program);
+
GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char **strings);
void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);