summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2020-02-19 21:57:58 -0500
committerMarge Bot <eric+marge@anholt.net>2020-03-06 01:06:14 +0000
commit1668a9390321e31ee19292590874e9b16a498936 (patch)
treefa1e58b4efe4e5d24e77bfafae51deacd0a663cd
parentb0a20e753110afaf4336d64928f7a11dc3901a6f (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.xml6
-rw-r--r--src/mapi/glapi/gen/gl_API.xml12
-rw-r--r--src/mapi/glapi/gen/gl_and_es_API.xml6
-rw-r--r--src/mesa/main/marshal.h36
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 */