bool check_bitwise_operations_allowed(YYLTYPE *locp)
{
- return check_version(130, 300, locp, "bit-wise operations are forbidden");
+ return EXT_gpu_shader4_enable ||
+ check_version(130, 300, locp, "bit-wise operations are forbidden");
}
bool check_explicit_attrib_stream_allowed(YYLTYPE *locp)
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
return ARB_bindless_texture_enable;
}
+ bool has_image_load_formatted() const
+ {
+ return EXT_shader_image_load_formatted_enable;
+ }
+
bool has_implicit_conversions() const
{
return EXT_shader_implicit_conversions_enable || is_version(120, 0);
*/
bool cs_input_local_size_variable_specified;
+ /**
+ * Arrangement of invocations used to calculate derivatives in a compute
+ * shader. From NV_compute_shader_derivatives.
+ */
+ enum gl_derivative_group cs_derivative_group;
+
/**
* True if a shader declare bindless_sampler/bindless_image, and
* respectively bound_sampler/bound_image at global scope as specified by
/** Have we found a return statement in this function? */
bool found_return;
+ /** Have we found the interlock builtins in this function? */
+ bool found_begin_interlock;
+ bool found_end_interlock;
+
/** Was there an error during compilation? */
bool error;
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_frag_depth_enable;
bool EXT_geometry_point_size_warn;
bool EXT_geometry_shader_enable;
bool EXT_geometry_shader_warn;
+ bool EXT_gpu_shader4_enable;
+ bool EXT_gpu_shader4_warn;
bool EXT_gpu_shader5_enable;
bool EXT_gpu_shader5_warn;
bool EXT_primitive_bounding_box_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_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;
#endif
struct glcpp_parser;
+struct _mesa_glsl_parse_state;
typedef void (*glcpp_extension_iterator)(
struct _mesa_glsl_parse_state *state,
struct _mesa_glsl_parse_state *state,
struct gl_context *gl_ctx);
-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,