int last_line;
int last_column;
unsigned source;
+ /* Path for ARB_shading_language_include include source */
+ char *path;
} YYLTYPE;
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
bool has_shader_image_load_store() const
{
- return ARB_shader_image_load_store_enable || is_version(420, 310);
+ return ARB_shader_image_load_store_enable ||
+ EXT_shader_image_load_store_enable ||
+ is_version(420, 310);
}
bool has_bindless() const
bool has_implicit_conversions() const
{
- return EXT_shader_implicit_conversions_enable || is_version(120, 0);
+ return EXT_shader_implicit_conversions_enable ||
+ is_version(allow_glsl_120_subset_in_110 ? 110 : 120, 0);
}
- bool has_implicit_uint_to_int_conversion() const
+ bool has_implicit_int_to_uint_conversion() const
{
return ARB_gpu_shader5_enable ||
MESA_shader_integer_functions_enable ||
bool compat_shader;
unsigned language_version;
unsigned forced_language_version;
- bool zero_init;
+ /* Bitfield of ir_variable_mode to zero init */
+ uint32_t zero_init;
unsigned gl_version;
gl_shader_stage stage;
bool ARB_shader_viewport_layer_array_warn;
bool ARB_shading_language_420pack_enable;
bool ARB_shading_language_420pack_warn;
+ bool ARB_shading_language_include_enable;
+ bool ARB_shading_language_include_warn;
bool ARB_shading_language_packing_enable;
bool ARB_shading_language_packing_warn;
bool ARB_tessellation_shader_enable;
bool EXT_blend_func_extended_warn;
bool EXT_clip_cull_distance_enable;
bool EXT_clip_cull_distance_warn;
+ bool EXT_demote_to_helper_invocation_enable;
+ bool EXT_demote_to_helper_invocation_warn;
bool EXT_draw_buffers_enable;
bool EXT_draw_buffers_warn;
+ bool EXT_draw_instanced_enable;
+ bool EXT_draw_instanced_warn;
bool EXT_frag_depth_enable;
bool EXT_frag_depth_warn;
bool EXT_geometry_point_size_enable;
bool EXT_shader_framebuffer_fetch_warn;
bool EXT_shader_framebuffer_fetch_non_coherent_enable;
bool EXT_shader_framebuffer_fetch_non_coherent_warn;
+ bool EXT_shader_group_vote_enable;
+ bool EXT_shader_group_vote_warn;
bool EXT_shader_image_load_formatted_enable;
bool EXT_shader_image_load_formatted_warn;
+ bool EXT_shader_image_load_store_enable;
+ bool EXT_shader_image_load_store_warn;
bool EXT_shader_implicit_conversions_enable;
bool EXT_shader_implicit_conversions_warn;
bool EXT_shader_integer_mix_enable;
bool EXT_texture_cube_map_array_warn;
bool EXT_texture_query_lod_enable;
bool EXT_texture_query_lod_warn;
+ bool EXT_texture_shadow_lod_enable;
+ bool EXT_texture_shadow_lod_warn;
bool INTEL_conservative_rasterization_enable;
bool INTEL_conservative_rasterization_warn;
bool INTEL_shader_atomic_float_minmax_enable;
bool INTEL_shader_atomic_float_minmax_warn;
+ bool INTEL_shader_integer_functions2_enable;
+ bool INTEL_shader_integer_functions2_warn;
bool MESA_shader_integer_functions_enable;
bool MESA_shader_integer_functions_warn;
bool NV_compute_shader_derivatives_enable;
bool NV_image_formats_warn;
bool NV_shader_atomic_float_enable;
bool NV_shader_atomic_float_warn;
+ bool NV_viewport_array2_enable;
+ bool NV_viewport_array2_warn;
/*@}*/
/** Extensions supported by the OpenGL implementation. */
/** Atomic counter offsets by binding */
unsigned atomic_counter_offsets[MAX_COMBINED_ATOMIC_BUFFERS];
+ /** Whether gl_Layer output is viewport-relative. */
+ bool redeclares_gl_layer;
+ bool layer_viewport_relative;
+
bool allow_extension_directive_midshader;
+ bool allow_glsl_120_subset_in_110;
bool allow_builtin_variable_redeclaration;
bool allow_layout_qualifier_on_function_parameter;
(Current).first_column = YYRHSLOC(Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC(Rhs, N).last_line; \
(Current).last_column = YYRHSLOC(Rhs, N).last_column; \
+ (Current).path = YYRHSLOC(Rhs, N).path; \
} \
else \
{ \
YYRHSLOC(Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC(Rhs, 0).last_column; \
+ (Current).path = YYRHSLOC(Rhs, 0).path; \
} \
(Current).source = 0; \
} while (0)
struct _mesa_glsl_parse_state *state,
struct gl_context *gl_ctx);
-extern void _mesa_init_shader_compiler_types(void);
-extern void _mesa_destroy_shader_compiler_types(void);
-extern void _mesa_destroy_shader_compiler(void);
-extern void _mesa_destroy_shader_compiler_caches(void);
-
extern void
_mesa_glsl_copy_symbols_from_table(struct exec_list *shader_ir,
struct glsl_symbol_table *src,