diff --git a/src/mesa/glapi/glapi/gen/EXT_mesh_shader.xml b/src/mesa/glapi/glapi/gen/EXT_mesh_shader.xml
new file mode 100644
index 00000000000..bc23969dc36
--- /dev/null
+++ b/src/mesa/glapi/glapi/gen/EXT_mesh_shader.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mesa/glapi/glapi/gen/gl_API.xml b/src/mesa/glapi/glapi/gen/gl_API.xml
index 48531f74e47..446f505991c 100644
--- a/src/mesa/glapi/glapi/gen/gl_API.xml
+++ b/src/mesa/glapi/glapi/gen/gl_API.xml
@@ -11123,4 +11123,7 @@
+
+
+
diff --git a/src/mesa/glapi/glapi/gen/static_data.py b/src/mesa/glapi/glapi/gen/static_data.py
index 179d238da65..0d128889870 100644
--- a/src/mesa/glapi/glapi/gen/static_data.py
+++ b/src/mesa/glapi/glapi/gen/static_data.py
@@ -1632,6 +1632,10 @@ all_functions = [
"CreateSemaphoresNV",
"GetSemaphoreParameterivNV",
"SemaphoreParameterivNV",
+ "DrawMeshTasksEXT",
+ "DrawMeshTasksIndirectEXT",
+ "MultiDrawMeshTasksIndirectEXT",
+ "MultiDrawMeshTasksIndirectCountEXT",
# Keep these last. They are never used by any app.
"ColorTable",
diff --git a/src/mesa/glapi/meson.build b/src/mesa/glapi/meson.build
index 7b7e9d6eb78..00cae4ebab9 100644
--- a/src/mesa/glapi/meson.build
+++ b/src/mesa/glapi/meson.build
@@ -96,6 +96,7 @@ glapi_xml_py_deps = files(
'glapi/gen/EXT_external_objects_win32.xml',
'glapi/gen/EXT_framebuffer_object.xml',
'glapi/gen/EXT_gpu_shader4.xml',
+ 'glapi/gen/EXT_mesh_shader.xml',
'glapi/gen/EXT_multisampled_render_to_texture.xml',
'glapi/gen/EXT_packed_depth_stencil.xml',
'glapi/gen/EXT_provoking_vertex.xml',
diff --git a/src/mesa/main/mesh_shader.c b/src/mesa/main/mesh_shader.c
new file mode 100644
index 00000000000..094e22b5bd3
--- /dev/null
+++ b/src/mesa/main/mesh_shader.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2025 Advanced Micro Devices, Inc.
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "mtypes.h"
+#include "api_exec_decl.h"
+
+void GLAPIENTRY
+_mesa_DrawMeshTasksEXT(GLuint num_groups_x,
+ GLuint num_groups_y,
+ GLuint num_groups_z)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_DrawMeshTasksIndirectEXT(GLintptr indirect)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_MultiDrawMeshTasksIndirectEXT(GLintptr indirect,
+ GLsizei drawcount,
+ GLsizei stride)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_MultiDrawMeshTasksIndirectCountEXT(GLintptr indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride)
+{
+
+}
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index 011ba9108af..d622242226e 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -135,6 +135,7 @@ files_libmesa = files(
'main/matrix.h',
'main/menums.h',
'main/mesa_private.h',
+ 'main/mesh_shader.c',
'main/mipmap.c',
'main/mipmap.h',
'main/mtypes.h',