This is required so we can enable fp64 support in compat profile.
---
src/mapi/glapi/gen/apiexec.py | 36 +--
src/mesa/main/dlist.c | 493 ++++++++++++++++++++++++++++++++++
2 files changed, 511 insertions(+), 18 deletions(-)
diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py
index 20d6239ba14..00c80171274 100644
--- a/src/mapi/glapi/gen/apiexec.py
+++ b/src/mapi/glapi/gen/apiexec.py
@@ -85,24 +85,24 @@ functions = {
# OpenGL 4.0 / GL_ARB_gpu_shader_fp64. The extension spec says:
#
# "OpenGL 3.2 and GLSL 1.50 are required."
- "Uniform1d": exec_info(core=32),
- "Uniform2d": exec_info(core=32),
- "Uniform3d": exec_info(core=32),
- "Uniform4d": exec_info(core=32),
- "Uniform1dv": exec_info(core=32),
- "Uniform2dv": exec_info(core=32),
- "Uniform3dv": exec_info(core=32),
- "Uniform4dv": exec_info(core=32),
- "UniformMatrix2dv": exec_info(core=32),
- "UniformMatrix3dv": exec_info(core=32),
- "UniformMatrix4dv": exec_info(core=32),
- "UniformMatrix2x3dv": exec_info(core=32),
- "UniformMatrix2x4dv": exec_info(core=32),
- "UniformMatrix3x2dv": exec_info(core=32),
- "UniformMatrix3x4dv": exec_info(core=32),
- "UniformMatrix4x2dv": exec_info(core=32),
- "UniformMatrix4x3dv": exec_info(core=32),
- "GetUniformdv": exec_info(core=32),
+ "Uniform1d": exec_info(compatibility=32, core=32),
+ "Uniform2d": exec_info(compatibility=32, core=32),
+ "Uniform3d": exec_info(compatibility=32, core=32),
+ "Uniform4d": exec_info(compatibility=32, core=32),
+ "Uniform1dv": exec_info(compatibility=32, core=32),
+ "Uniform2dv": exec_info(compatibility=32, core=32),
+ "Uniform3dv": exec_info(compatibility=32, core=32),
+ "Uniform4dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix2dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix3dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix4dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix2x3dv": exec_info(compatibility=32,core=32),
+ "UniformMatrix2x4dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix3x2dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix3x4dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix4x2dv": exec_info(compatibility=32, core=32),
+ "UniformMatrix4x3dv": exec_info(compatibility=32, core=32),
+ "GetUniformdv": exec_info(compatibility=32, core=32),
# OpenGL 4.1 / GL_ARB_vertex_attrib_64bit. The extension spec says:
#
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 4fc451000b5..b0fbc17d017 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -365,6 +365,25 @@ typedef enum
OPCODE_UNIFORM_3UIV,
OPCODE_UNIFORM_4UIV,
+ /* GL_ARB_gpu_shader_fp64 */
+ OPCODE_UNIFORM_1D,
+ OPCODE_UNIFORM_2D,
+ OPCODE_UNIFORM_3D,
+ OPCODE_UNIFORM_4D,
+ OPCODE_UNIFORM_1DV,
+ OPCODE_UNIFORM_2DV,
+ OPCODE_UNIFORM_3DV,
+ OPCODE_UNIFORM_4DV,
+ OPCODE_UNIFORM_MATRIX22D,
+ OPCODE_UNIFORM_MATRIX33D,
+ OPCODE_UNIFORM_MATRIX44D,
+ OPCODE_UNIFORM_MATRIX23D,
+ OPCODE_UNIFORM_MATRIX32D,
+ OPCODE_UNIFORM_MATRIX24D,
+ OPCODE_UNIFORM_MATRIX42D,
+ OPCODE_UNIFORM_MATRIX34D,
+ OPCODE_UNIFORM_MATRIX43D,
+
/* OpenGL 4.0 / GL_ARB_tessellation_shader */
OPCODE_PATCH_PARAMETER_I,
OPCODE_PATCH_PARAMETER_FV_INNER,
@@ -606,6 +625,22 @@ union uint64_pair
};
+union float64_pair
+{
+ GLdouble d;
+ GLfloat f[2];
+};