Lines Matching defs:state

113 compatibility_vs_only(const _mesa_glsl_parse_state *state)
115 return state->stage == MESA_SHADER_VERTEX &&
116 (state->compat_shader || state->ARB_compatibility_enable) &&
117 !state->es_shader;
121 derivatives_only(const _mesa_glsl_parse_state *state)
123 return state->stage == MESA_SHADER_FRAGMENT ||
124 (state->stage == MESA_SHADER_COMPUTE &&
125 state->NV_compute_shader_derivatives_enable);
129 gs_only(const _mesa_glsl_parse_state *state)
131 return state->stage == MESA_SHADER_GEOMETRY;
136 deprecated_texture(const _mesa_glsl_parse_state *state)
138 return state->compat_shader || !state->is_version(420, 0);
142 deprecated_texture_derivatives_only(const _mesa_glsl_parse_state *state)
144 return deprecated_texture(state) && derivatives_only(state);
148 v110(const _mesa_glsl_parse_state *state)
150 return !state->es_shader;
154 v110_deprecated_texture(const _mesa_glsl_parse_state *state)
156 return !state->es_shader && deprecated_texture(state);
160 v110_derivatives_only_deprecated_texture(const _mesa_glsl_parse_state *state)
162 return v110_deprecated_texture(state) &&
163 derivatives_only(state);
167 v120(const _mesa_glsl_parse_state *state)
169 return state->is_version(120, 300);
173 v130(const _mesa_glsl_parse_state *state)
175 return state->is_version(130, 300);
179 v130_desktop(const _mesa_glsl_parse_state *state)
181 return state->is_version(130, 0);
185 v460_desktop(const _mesa_glsl_parse_state *state)
187 return state->is_version(460, 0);
191 v130_derivatives_only(const _mesa_glsl_parse_state *state)
193 return state->is_version(130, 300) &&
194 derivatives_only(state);
198 v140_or_es3(const _mesa_glsl_parse_state *state)
200 return state->is_version(140, 300);
204 v400_derivatives_only(const _mesa_glsl_parse_state *state)
206 return state->is_version(400, 0) &&
207 derivatives_only(state);
211 texture_rectangle(const _mesa_glsl_parse_state *state)
213 return state->ARB_texture_rectangle_enable;
217 texture_external(const _mesa_glsl_parse_state *state)
219 return state->OES_EGL_image_external_enable;
223 texture_external_es3(const _mesa_glsl_parse_state *state)
225 return state->OES_EGL_image_external_essl3_enable &&
226 state->es_shader &&
227 state->is_version(0, 300);
232 lod_exists_in_stage(const _mesa_glsl_parse_state *state)
240 * don't need to explicitly check state->es_shader.
242 return state->stage == MESA_SHADER_VERTEX ||
243 state->is_version(130, 300) ||
244 state->ARB_shader_texture_lod_enable ||
245 state->EXT_gpu_shader4_enable;
249 lod_deprecated_texture(const _mesa_glsl_parse_state *state)
251 return deprecated_texture(state) && lod_exists_in_stage(state);
255 v110_lod_deprecated_texture(const _mesa_glsl_parse_state *state)
257 return !state->es_shader && lod_deprecated_texture(state);
261 texture_buffer(const _mesa_glsl_parse_state *state)
263 return state->is_version(140, 320) ||
264 state->EXT_texture_buffer_enable ||
265 state->OES_texture_buffer_enable;
269 shader_texture_lod(const _mesa_glsl_parse_state *state)
271 return state->ARB_shader_texture_lod_enable;
275 shader_texture_lod_and_rect(const _mesa_glsl_parse_state *state)
277 return state->ARB_shader_texture_lod_enable &&
278 state->ARB_texture_rectangle_enable;
282 shader_bit_encoding(const _mesa_glsl_parse_state *state)
284 return state->is_version(330, 300) ||
285 state->ARB_shader_bit_encoding_enable ||
286 state->ARB_gpu_shader5_enable;
290 shader_integer_mix(const _mesa_glsl_parse_state *state)
292 return state->is_version(450, 310) ||
293 state->ARB_ES3_1_compatibility_enable ||
294 (v130(state) && state->EXT_shader_integer_mix_enable);
298 shader_packing_or_es3(const _mesa_glsl_parse_state *state)
300 return state->ARB_shading_language_packing_enable ||
301 state->is_version(420, 300);
305 shader_packing_or_es3_or_gpu_shader5(const _mesa_glsl_parse_state *state)
307 return state->ARB_shading_language_packing_enable ||
308 state->ARB_gpu_shader5_enable ||
309 state->is_version(400, 300);
313 gpu_shader4(const _mesa_glsl_parse_state *state)
315 return state->EXT_gpu_shader4_enable;
319 gpu_shader4_integer(const _mesa_glsl_parse_state *state)
321 return state->EXT_gpu_shader4_enable &&
322 state->exts->EXT_texture_integer;
326 gpu_shader4_array(const _mesa_glsl_parse_state *state)
328 return state->EXT_gpu_shader4_enable &&
329 state->exts->EXT_texture_array;
333 gpu_shader4_array_integer(const _mesa_glsl_parse_state *state)
335 return gpu_shader4_array(state) &&
336 state->exts->EXT_texture_integer;
340 gpu_shader4_rect(const _mesa_glsl_parse_state *state)
342 return state->EXT_gpu_shader4_enable &&
343 state->exts->NV_texture_rectangle;
347 gpu_shader4_rect_integer(const _mesa_glsl_parse_state *state)
349 return gpu_shader4_rect(state) &&
350 state->exts->EXT_texture_integer;
354 gpu_shader4_tbo(const _mesa_glsl_parse_state *state)
356 return state->EXT_gpu_shader4_enable &&
357 state->exts->EXT_texture_buffer_object;
361 gpu_shader4_tbo_integer(const _mesa_glsl_parse_state *state)
363 return gpu_shader4_tbo(state) &&
364 state->exts->EXT_texture_integer;
368 gpu_shader4_derivs_only(const _mesa_glsl_parse_state *state)
370 return state->EXT_gpu_shader4_enable &&
371 derivatives_only(state);
375 gpu_shader4_integer_derivs_only(const _mesa_glsl_parse_state *state)
377 return gpu_shader4_derivs_only(state) &&
378 state->exts->EXT_texture_integer;
382 gpu_shader4_array_derivs_only(const _mesa_glsl_parse_state *state)
384 return gpu_shader4_derivs_only(state) &&
385 state->exts->EXT_texture_array;
389 gpu_shader4_array_integer_derivs_only(const _mesa_glsl_parse_state *state)
391 return gpu_shader4_array_derivs_only(state) &&
392 state->exts->EXT_texture_integer;
396 v130_or_gpu_shader4(const _mesa_glsl_parse_state *state)
398 return state->is_version(130, 300) || state->EXT_gpu_shader4_enable;
402 v130_or_gpu_shader4_and_tex_shadow_lod(const _mesa_glsl_parse_state *state)
404 return v130_or_gpu_shader4(state) &&
405 state->EXT_texture_shadow_lod_enable;
409 gpu_shader5(const _mesa_glsl_parse_state *state)
411 return state->is_version(400, 0) || state->ARB_gpu_shader5_enable;
415 gpu_shader5_es(const _mesa_glsl_parse_state *state)
417 return state->is_version(400, 320) ||
418 state->ARB_gpu_shader5_enable ||
419 state->EXT_gpu_shader5_enable ||
420 state->OES_gpu_shader5_enable;
424 gpu_shader5_or_OES_texture_cube_map_array(const _mesa_glsl_parse_state *state)
426 return state->is_version(400, 320) ||
427 state->ARB_gpu_shader5_enable ||
428 state->EXT_texture_cube_map_array_enable ||
429 state->OES_texture_cube_map_array_enable;
433 es31_not_gs5(const _mesa_glsl_parse_state *state)
435 return state->is_version(0, 310) && !gpu_shader5_es(state);
439 gpu_shader5_or_es31(const _mesa_glsl_parse_state *state)
441 return state->is_version(400, 310) || state->ARB_gpu_shader5_enable;
445 shader_packing_or_es31_or_gpu_shader5(const _mesa_glsl_parse_state *state)
447 return state->ARB_shading_language_packing_enable ||
448 state->ARB_gpu_shader5_enable ||
449 state->is_version(400, 310);
453 gpu_shader5_or_es31_or_integer_functions(const _mesa_glsl_parse_state *state)
455 return gpu_shader5_or_es31(state) ||
456 state->MESA_shader_integer_functions_enable;
460 fs_interpolate_at(const _mesa_glsl_parse_state *state)
462 return state->stage == MESA_SHADER_FRAGMENT &&
463 (state->is_version(400, 320) ||
464 state->ARB_gpu_shader5_enable ||
465 state->OES_shader_multisample_interpolation_enable);
470 texture_array_lod(const _mesa_glsl_parse_state *state)
472 return lod_exists_in_stage(state) &&
473 (state->EXT_texture_array_enable ||
474 (state->EXT_gpu_shader4_enable &&
475 state->exts->EXT_texture_array));
479 texture_array(const _mesa_glsl_parse_state *state)
481 return state->EXT_texture_array_enable ||
482 (state->EXT_gpu_shader4_enable &&
483 state->exts->EXT_texture_array);
487 texture_array_derivs_only(const _mesa_glsl_parse_state *state)
489 return derivatives_only(state) &&
490 texture_array(state);
494 texture_multisample(const _mesa_glsl_parse_state *state)
496 return state->is_version(150, 310) ||
497 state->ARB_texture_multisample_enable;
501 texture_multisample_array(const _mesa_glsl_parse_state *state)
503 return state->is_version(150, 320) ||
504 state->ARB_texture_multisample_enable ||
505 state->OES_texture_storage_multisample_2d_array_enable;
509 texture_samples_identical(const _mesa_glsl_parse_state *state)
511 return texture_multisample(state) &&
512 state->EXT_shader_samples_identical_enable;
516 texture_samples_identical_array(const _mesa_glsl_parse_state *state)
518 return texture_multisample_array(state) &&
519 state->EXT_shader_samples_identical_enable;
523 derivatives_texture_cube_map_array(const _mesa_glsl_parse_state *state)
525 return state->has_texture_cube_map_array() &&
526 derivatives_only(state);
530 texture_cube_map_array(const _mesa_glsl_parse_state *state)
532 return state->has_texture_cube_map_array();
536 v130_or_gpu_shader4_and_tex_cube_map_array(const _mesa_glsl_parse_state *state)
538 return texture_cube_map_array(state) &&
539 v130_or_gpu_shader4(state) &&
540 state->EXT_texture_shadow_lod_enable;
544 texture_query_levels(const _mesa_glsl_parse_state *state)
546 return state->is_version(430, 0) ||
547 state->ARB_texture_query_levels_enable;
551 texture_query_lod(const _mesa_glsl_parse_state *state)
553 return derivatives_only(state) &&
554 (state->ARB_texture_query_lod_enable ||
555 state->EXT_texture_query_lod_enable);
559 texture_gather_cube_map_array(const _mesa_glsl_parse_state *state)
561 return state->is_version(400, 320) ||
562 state->ARB_texture_gather_enable ||
563 state->ARB_gpu_shader5_enable ||
564 state->EXT_texture_cube_map_array_enable ||
565 state->OES_texture_cube_map_array_enable;
569 texture_texture4(const _mesa_glsl_parse_state *state)
571 return state->AMD_texture_texture4_enable;
575 texture_gather_or_es31(const _mesa_glsl_parse_state *state)
577 return state->is_version(400, 310) ||
578 state->ARB_texture_gather_enable ||
579 state->ARB_gpu_shader5_enable;
586 texture_gather_only_or_es31(const _mesa_glsl_parse_state *state)
588 return !state->is_version(400, 320) &&
589 !state->ARB_gpu_shader5_enable &&
590 !state->EXT_gpu_shader5_enable &&
591 !state->OES_gpu_shader5_enable &&
592 (state->ARB_texture_gather_enable ||
593 state->is_version(0, 310));
598 derivatives(const _mesa_glsl_parse_state *state)
600 return derivatives_only(state) &&
601 (state->is_version(110, 300) ||
602 state->OES_standard_derivatives_enable ||
603 state->consts->AllowGLSLRelaxedES);
607 derivative_control(const _mesa_glsl_parse_state *state)
609 return derivatives_only(state) &&
610 (state->is_version(450, 0) ||
611 state->ARB_derivative_control_enable);
616 tex3d(const _mesa_glsl_parse_state *state)
621 return (!state->es_shader ||
622 state->OES_texture_3D_enable ||
623 state->language_version >= 300) && deprecated_texture(state);
627 derivatives_tex3d(const _mesa_glsl_parse_state *state)
629 return (!state->es_shader || state->OES_texture_3D_enable) &&
630 derivatives_only(state) && deprecated_texture(state);
634 tex3d_lod(const _mesa_glsl_parse_state *state)
636 return tex3d(state) && lod_exists_in_stage(state);
640 shader_atomic_counters(const _mesa_glsl_parse_state *state)
642 return state->has_atomic_counters();
646 shader_atomic_counter_ops(const _mesa_glsl_parse_state *state)
648 return state->ARB_shader_atomic_counter_ops_enable;
652 shader_atomic_counter_ops_or_v460_desktop(const _mesa_glsl_parse_state *state)
654 return state->ARB_shader_atomic_counter_ops_enable || v460_desktop(state);
658 shader_ballot(const _mesa_glsl_parse_state *state)
660 return state->ARB_shader_ballot_enable;
664 supports_arb_fragment_shader_interlock(const _mesa_glsl_parse_state *state)
666 return state->ARB_fragment_shader_interlock_enable;
670 supports_nv_fragment_shader_interlock(const _mesa_glsl_parse_state *state)
672 return state->NV_fragment_shader_interlock_enable;
676 shader_clock(const _mesa_glsl_parse_state *state)
678 return state->ARB_shader_clock_enable;
682 shader_clock_int64(const _mesa_glsl_parse_state *state)
684 return state->ARB_shader_clock_enable &&
685 (state->ARB_gpu_shader_int64_enable ||
686 state->AMD_gpu_shader_int64_enable);
690 shader_storage_buffer_object(const _mesa_glsl_parse_state *state)
692 return state->has_shader_storage_buffer_objects();
696 shader_trinary_minmax(const _mesa_glsl_parse_state *state)
698 return state->AMD_shader_trinary_minmax_enable;
702 shader_image_load_store(const _mesa_glsl_parse_state *state)
704 return (state->is_version(420, 310) ||
705 state->ARB_shader_image_load_store_enable ||
706 state->EXT_shader_image_load_store_enable);
710 shader_image_load_store_ext(const _mesa_glsl_parse_state *state)
712 return state->EXT_shader_image_load_store_enable;
716 shader_image_atomic(const _mesa_glsl_parse_state *state)
718 return (state->is_version(420, 320) ||
719 state->ARB_shader_image_load_store_enable ||
720 state->EXT_shader_image_load_store_enable ||
721 state->OES_shader_image_atomic_enable);
725 shader_image_atomic_exchange_float(const _mesa_glsl_parse_state *state)
727 return (state->is_version(450, 320) ||
728 state->ARB_ES3_1_compatibility_enable ||
729 state->OES_shader_image_atomic_enable ||
730 state->NV_shader_atomic_float_enable);
734 shader_image_atomic_add_float(const _mesa_glsl_parse_state *state)
736 return state->NV_shader_atomic_float_enable;
740 shader_image_size(const _mesa_glsl_parse_state *state)
742 return state->is_version(430, 310) ||
743 state->ARB_shader_image_size_enable;
747 shader_samples(const _mesa_glsl_parse_state *state)
749 return state->is_version(450, 0) ||
750 state->ARB_shader_texture_image_samples_enable;
754 gs_streams(const _mesa_glsl_parse_state *state)
756 return gpu_shader5(state) && gs_only(state);
760 fp64(const _mesa_glsl_parse_state *state)
762 return state->has_double();
766 int64_avail(const _mesa_glsl_parse_state *state)
768 return state->has_int64();
772 int64_fp64(const _mesa_glsl_parse_state *state)
774 return state->has_int64() && state->has_double();
778 compute_shader(const _mesa_glsl_parse_state *state)
780 return state->stage == MESA_SHADER_COMPUTE;
784 compute_shader_supported(const _mesa_glsl_parse_state *state)
786 return state->has_compute_shader();
790 buffer_atomics_supported(const _mesa_glsl_parse_state *state)
792 return compute_shader(state) || shader_storage_buffer_object(state);
796 buffer_int64_atomics_supported(const _mesa_glsl_parse_state *state)
798 return state->NV_shader_atomic_int64_enable &&
799 buffer_atomics_supported(state);
803 barrier_supported(const _mesa_glsl_parse_state *state)
805 return compute_shader(state) ||
806 state->stage == MESA_SHADER_TESS_CTRL;
810 vote(const _mesa_glsl_parse_state *state)
812 return state->ARB_shader_group_vote_enable;
816 vote_ext(const _mesa_glsl_parse_state *state)
818 return state->EXT_shader_group_vote_enable;
822 vote_or_v460_desktop(const _mesa_glsl_parse_state *state)
824 return state->EXT_shader_group_vote_enable || state->ARB_shader_group_vote_enable || v460_desktop(state);
828 integer_functions_supported(const _mesa_glsl_parse_state *state)
830 return state->extensions->MESA_shader_integer_functions;
834 NV_shader_atomic_float_supported(const _mesa_glsl_parse_state *state)
836 return state->extensions->NV_shader_atomic_float;
840 shader_atomic_float_add(const _mesa_glsl_parse_state *state)
842 return state->NV_shader_atomic_float_enable;
846 shader_atomic_float_exchange(const _mesa_glsl_parse_state *state)
848 return state->NV_shader_atomic_float_enable ||
849 state->INTEL_shader_atomic_float_minmax_enable;
853 INTEL_shader_atomic_float_minmax_supported(const _mesa_glsl_parse_state *state)
855 return state->extensions->INTEL_shader_atomic_float_minmax;
859 shader_atomic_float_minmax(const _mesa_glsl_parse_state *state)
861 return state->INTEL_shader_atomic_float_minmax_enable;
865 demote_to_helper_invocation(const _mesa_glsl_parse_state *state)
867 return state->EXT_demote_to_helper_invocation_enable;
871 shader_integer_functions2(const _mesa_glsl_parse_state *state)
873 return state->INTEL_shader_integer_functions2_enable;
877 shader_integer_functions2_int64(const _mesa_glsl_parse_state *state)
879 return state->INTEL_shader_integer_functions2_enable && state->has_int64();
883 sparse_enabled(const _mesa_glsl_parse_state *state)
885 return state->ARB_sparse_texture2_enable;
889 v130_desktop_and_sparse(const _mesa_glsl_parse_state *state)
891 return v130_desktop(state) && state->ARB_sparse_texture2_enable;
895 texture_cube_map_array_and_sparse(const _mesa_glsl_parse_state *state)
897 return texture_cube_map_array(state) && state->ARB_sparse_texture2_enable;
901 v130_derivatives_only_and_sparse(const _mesa_glsl_parse_state *state)
903 return v130_derivatives_only(state) && state->ARB_sparse_texture2_enable;
907 derivatives_texture_cube_map_array_and_sparse(const _mesa_glsl_parse_state *state)
909 return derivatives_texture_cube_map_array(state) && state->ARB_sparse_texture2_enable;
913 texture_gather_and_sparse(const _mesa_glsl_parse_state *state)
915 return (gpu_shader5(state) || state->ARB_texture_gather_enable) &&
916 state->ARB_sparse_texture2_enable;
920 gpu_shader5_and_sparse(const _mesa_glsl_parse_state *state)
922 return gpu_shader5(state) && state->ARB_sparse_texture2_enable;
926 texture_multisample_and_sparse(const _mesa_glsl_parse_state *state)
928 return texture_multisample(state) &&
929 state->ARB_sparse_texture2_enable;
933 texture_multisample_array_and_sparse(const _mesa_glsl_parse_state *state)
935 return texture_multisample_array(state) &&
936 state->ARB_sparse_texture2_enable;
940 shader_image_load_store_and_sparse(const _mesa_glsl_parse_state *state)
942 return shader_image_load_store(state) &&
943 state->ARB_sparse_texture2_enable;
947 v130_desktop_and_clamp(const _mesa_glsl_parse_state *state)
949 return v130_desktop(state) && state->ARB_sparse_texture_clamp_enable;
953 texture_cube_map_array_and_clamp(const _mesa_glsl_parse_state *state)
955 return texture_cube_map_array(state) && state->ARB_sparse_texture_clamp_enable;
959 v130_derivatives_only_and_clamp(const _mesa_glsl_parse_state *state)
961 return v130_derivatives_only(state) && state->ARB_sparse_texture_clamp_enable;
965 derivatives_texture_cube_map_array_and_clamp(const _mesa_glsl_parse_state *state)
967 return derivatives_texture_cube_map_array(state) && state->ARB_sparse_texture_clamp_enable;
990 ir_function_signature *find(_mesa_glsl_parse_state *state,
1403 builtin_builder::find(_mesa_glsl_parse_state *state,
1413 state->uses_builtin_functions = true;
1420 f->matching_signature(state, actual_parameters, true);
8530 _mesa_glsl_find_builtin_function(_mesa_glsl_parse_state *state,
8535 s = builtins.find(state, name, actual_parameters);
8542 _mesa_glsl_has_builtin_function(_mesa_glsl_parse_state *state, const char *name)
8550 if (sig->is_builtin_available(state)) {