glsl: add ARB_vertex_attrib_64bit support. (v2)
authorDave Airlie <airlied@redhat.com>
Fri, 20 Feb 2015 01:38:12 +0000 (11:38 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 8 May 2015 00:21:01 +0000 (10:21 +1000)
Just more boilerplate stuff.

v2:
bad fallthrough on versioning,
this is my ugly but self contained solution (Ian)

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/glsl/ast_to_hir.cpp
src/glsl/glcpp/glcpp-parse.y
src/glsl/glsl_parser_extras.cpp
src/glsl/glsl_parser_extras.h

index 7051d93149e4815ebe41a6b494cde762e2ea3f4a..14e63090557153b8597b570872e2b775b0ef795b 100644 (file)
@@ -3574,6 +3574,9 @@ ast_declarator_list::hir(exec_list *instructions,
             case GLSL_TYPE_INT:
                if (state->is_version(120, 300))
                   break;
+            case GLSL_TYPE_DOUBLE:
+               if (check_type->base_type == GLSL_TYPE_DOUBLE && (state->is_version(410, 0) || state->ARB_vertex_attrib_64bit_enable))
+                  break;
             /* FALLTHROUGH */
             default:
                _mesa_glsl_error(& loc, state,
index cfceca66bf5d25c42788ac6780c3e4892667155a..a11b6b2c7c8b81f2ae62f5d005651aac1884f020 100644 (file)
@@ -2448,6 +2448,9 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
               if (extensions->ARB_gpu_shader_fp64)
                  add_builtin_define(parser, "GL_ARB_gpu_shader_fp64", 1);
 
+             if (extensions->ARB_vertex_attrib_64bit)
+                add_builtin_define(parser, "GL_ARB_vertex_attrib_64bit", 1);
+
              if (extensions->AMD_vertex_shader_layer)
                 add_builtin_define(parser, "GL_AMD_vertex_shader_layer", 1);
 
index c14481df1743482a3626620e750237e73a088e25..be6713c46a20ae5eacdc4cf554845ab546645802 100644 (file)
@@ -580,6 +580,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
    EXT(ARB_texture_query_lod,          true,  false,     ARB_texture_query_lod),
    EXT(ARB_texture_rectangle,          true,  false,     dummy_true),
    EXT(ARB_uniform_buffer_object,      true,  false,     ARB_uniform_buffer_object),
+   EXT(ARB_vertex_attrib_64bit,        true,  false,     ARB_vertex_attrib_64bit),
    EXT(ARB_viewport_array,             true,  false,     ARB_viewport_array),
 
    /* KHR extensions go here, sorted alphabetically.
index 4612071426b62e805d0edf3a07f6436623b6eb4b..9a0c24e67877fbd3dc7557bed920354e2e74da7f 100644 (file)
@@ -482,6 +482,8 @@ struct _mesa_glsl_parse_state {
    bool ARB_texture_rectangle_warn;
    bool ARB_uniform_buffer_object_enable;
    bool ARB_uniform_buffer_object_warn;
+   bool ARB_vertex_attrib_64bit_enable;
+   bool ARB_vertex_attrib_64bit_warn;
    bool ARB_viewport_array_enable;
    bool ARB_viewport_array_warn;