glsl: Fix locations of variables in patch qualified interface blocks.
[mesa.git] / src / compiler / glsl / glsl_parser_extras.h
index 3311688aa6fe985cf3027b6c85b38265ef5616d1..e146fe192023cd20a222bdb3249a756ddf2b7dc9 100644 (file)
@@ -277,6 +277,7 @@ struct _mesa_glsl_parse_state {
       return OES_shader_io_blocks_enable ||
              EXT_shader_io_blocks_enable ||
              OES_geometry_shader_enable ||
+             EXT_geometry_shader_enable ||
              OES_tessellation_shader_enable ||
              EXT_tessellation_shader_enable ||
 
@@ -285,7 +286,8 @@ struct _mesa_glsl_parse_state {
 
    bool has_geometry_shader() const
    {
-      return OES_geometry_shader_enable || is_version(150, 320);
+      return OES_geometry_shader_enable || EXT_geometry_shader_enable ||
+             is_version(150, 320);
    }
 
    bool has_tessellation_shader() const
@@ -315,6 +317,14 @@ struct _mesa_glsl_parse_state {
              MESA_shader_framebuffer_fetch_non_coherent_enable;
    }
 
+   bool has_texture_cube_map_array() const
+   {
+      return ARB_texture_cube_map_array_enable ||
+             EXT_texture_cube_map_array_enable ||
+             OES_texture_cube_map_array_enable ||
+             is_version(400, 320);
+   }
+
    void process_version_directive(YYLTYPE *locp, int version,
                                   const char *ident);
 
@@ -649,6 +659,8 @@ struct _mesa_glsl_parse_state {
 
    /* KHR extensions go here, sorted alphabetically.
     */
+   bool KHR_blend_equation_advanced_enable;
+   bool KHR_blend_equation_advanced_warn;
 
    /* OES extensions go here, sorted alphabetically.
     */
@@ -660,6 +672,8 @@ struct _mesa_glsl_parse_state {
    bool OES_geometry_shader_warn;
    bool OES_gpu_shader5_enable;
    bool OES_gpu_shader5_warn;
+   bool OES_primitive_bounding_box_enable;
+   bool OES_primitive_bounding_box_warn;
    bool OES_sample_variables_enable;
    bool OES_sample_variables_warn;
    bool OES_shader_image_atomic_enable;
@@ -678,6 +692,8 @@ struct _mesa_glsl_parse_state {
    bool OES_texture_3D_warn;
    bool OES_texture_buffer_enable;
    bool OES_texture_buffer_warn;
+   bool OES_texture_cube_map_array_enable;
+   bool OES_texture_cube_map_array_warn;
    bool OES_texture_storage_multisample_2d_array_enable;
    bool OES_texture_storage_multisample_2d_array_warn;
 
@@ -699,8 +715,14 @@ struct _mesa_glsl_parse_state {
    bool EXT_clip_cull_distance_warn;
    bool EXT_draw_buffers_enable;
    bool EXT_draw_buffers_warn;
+   bool EXT_geometry_point_size_enable;
+   bool EXT_geometry_point_size_warn;
+   bool EXT_geometry_shader_enable;
+   bool EXT_geometry_shader_warn;
    bool EXT_gpu_shader5_enable;
    bool EXT_gpu_shader5_warn;
+   bool EXT_primitive_bounding_box_enable;
+   bool EXT_primitive_bounding_box_warn;
    bool EXT_separate_shader_objects_enable;
    bool EXT_separate_shader_objects_warn;
    bool EXT_shader_framebuffer_fetch_enable;
@@ -719,6 +741,8 @@ struct _mesa_glsl_parse_state {
    bool EXT_texture_array_warn;
    bool EXT_texture_buffer_enable;
    bool EXT_texture_buffer_warn;
+   bool EXT_texture_cube_map_array_enable;
+   bool EXT_texture_cube_map_array_warn;
    bool MESA_shader_framebuffer_fetch_enable;
    bool MESA_shader_framebuffer_fetch_warn;
    bool MESA_shader_framebuffer_fetch_non_coherent_enable;
@@ -744,6 +768,8 @@ struct _mesa_glsl_parse_state {
 
    bool fs_early_fragment_tests;
 
+   unsigned fs_blend_support;
+
    /**
     * For tessellation control shaders, size of the most recently seen output
     * declaration that was a sized array, or 0 if no sized output array