diff options
author | Marek Olšák <marek.olsak@amd.com> | 2020-02-19 21:57:58 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-03-06 01:06:14 +0000 |
commit | 1668a9390321e31ee19292590874e9b16a498936 (patch) | |
tree | fa1e58b4efe4e5d24e77bfafae51deacd0a663cd | |
parent | b0a20e753110afaf4336d64928f7a11dc3901a6f (diff) |
glthread: add support for glClearNamedFramebuffer, glMaterial, glPointParameter
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3948>
-rw-r--r-- | src/mapi/glapi/gen/ARB_direct_state_access.xml | 6 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 12 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_and_es_API.xml | 6 | ||||
-rw-r--r-- | src/mesa/main/marshal.h | 36 |
4 files changed, 51 insertions, 9 deletions
diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index c652a412aa7..3e39253c2a9 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -222,21 +222,21 @@ <param name="framebuffer" type="GLuint" /> <param name="buffer" type="GLenum" /> <param name="drawbuffer" type="GLint" /> - <param name="value" type="const GLint *" /> + <param name="value" type="const GLint *" count="_mesa_buffer_enum_to_count(buffer)"/> </function> <function name="ClearNamedFramebufferuiv"> <param name="framebuffer" type="GLuint" /> <param name="buffer" type="GLenum" /> <param name="drawbuffer" type="GLint" /> - <param name="value" type="const GLuint *" /> + <param name="value" type="const GLuint *" count="_mesa_buffer_enum_to_count(buffer)"/> </function> <function name="ClearNamedFramebufferfv"> <param name="framebuffer" type="GLuint" /> <param name="buffer" type="GLenum" /> <param name="drawbuffer" type="GLint" /> - <param name="value" type="const GLfloat *" /> + <param name="value" type="const GLfloat *" count="_mesa_buffer_enum_to_count(buffer)"/> </function> <function name="ClearNamedFramebufferfi"> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 849a0b28d33..ff4bd8144d7 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -2080,7 +2080,8 @@ <function name="Materialfv" es1="1.0" deprecated="3.1" exec="dynamic"> <param name="face" type="GLenum"/> <param name="pname" type="GLenum"/> - <param name="params" type="const GLfloat *" variable_param="pname"/> + <param name="params" type="const GLfloat *" variable_param="pname" + marshal_count="_mesa_material_enum_to_count(pname)"/> <glx rop="97"/> </function> @@ -2094,7 +2095,8 @@ <function name="Materialiv" deprecated="3.1"> <param name="face" type="GLenum"/> <param name="pname" type="GLenum"/> - <param name="params" type="const GLint *" variable_param="pname"/> + <param name="params" type="const GLint *" variable_param="pname" + marshal_count="_mesa_material_enum_to_count(pname)"/> <glx rop="99"/> </function> @@ -4780,7 +4782,8 @@ <function name="PointParameterfv" es1="1.1"> <param name="pname" type="GLenum"/> - <param name="params" type="const GLfloat *" variable_param="pname"/> + <param name="params" type="const GLfloat *" variable_param="pname" + marshal_count="_mesa_point_param_enum_to_count(pname)"/> <glx rop="2066"/> </function> @@ -4792,7 +4795,8 @@ <function name="PointParameteriv"> <param name="pname" type="GLenum"/> - <param name="params" type="const GLint *" variable_param="pname"/> + <param name="params" type="const GLint *" variable_param="pname" + marshal_count="_mesa_point_param_enum_to_count(pname)"/> <glx rop="4222"/> </function> diff --git a/src/mapi/glapi/gen/gl_and_es_API.xml b/src/mapi/glapi/gen/gl_and_es_API.xml index 7d33d6dcf4a..6fd2c8dec66 100644 --- a/src/mapi/glapi/gen/gl_and_es_API.xml +++ b/src/mapi/glapi/gen/gl_and_es_API.xml @@ -107,7 +107,8 @@ <function name="Materialxv" es1="1.0" desktop="false"> <param name="face" type="GLenum"/> <param name="pname" type="GLenum"/> - <param name="params" type="const GLfixed *" variable_param="pname"/> + <param name="params" type="const GLfixed *" variable_param="pname" + marshal_count="_mesa_material_enum_to_count(pname)"/> </function> <function name="MultMatrixx" es1="1.0" desktop="false"> @@ -257,7 +258,8 @@ <function name="PointParameterxv" es1="1.1" desktop="false"> <param name="pname" type="GLenum"/> - <param name="params" type="const GLfixed *"/> + <param name="params" type="const GLfixed *" + count="_mesa_point_param_enum_to_count(pname)"/> </function> <function name="TexParameterxv" es1="1.1" desktop="false"> diff --git a/src/mesa/main/marshal.h b/src/mesa/main/marshal.h index fc69f2704b8..a9d9569ad11 100644 --- a/src/mesa/main/marshal.h +++ b/src/mesa/main/marshal.h @@ -404,4 +404,40 @@ _mesa_texgen_enum_to_count(GLenum pname) } } +static inline unsigned +_mesa_material_enum_to_count(GLenum pname) +{ + switch (pname) { + case GL_EMISSION: + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_SPECULAR: + case GL_AMBIENT_AND_DIFFUSE: + return 4; + case GL_COLOR_INDEXES: + return 3; + case GL_SHININESS: + return 1; + default: + return 0; + } +} + +static inline unsigned +_mesa_point_param_enum_to_count(GLenum pname) +{ + switch (pname) { + case GL_DISTANCE_ATTENUATION_EXT: + return 3; + case GL_POINT_SIZE_MIN_EXT: + case GL_POINT_SIZE_MAX_EXT: + case GL_POINT_FADE_THRESHOLD_SIZE_EXT: + case GL_POINT_SPRITE_R_MODE_NV: + case GL_POINT_SPRITE_COORD_ORIGIN: + return 1; + default: + return 0; + } +} + #endif /* MARSHAL_H */ |