• Home
  • Raw
  • Download

Lines Matching full:prog

269    gl_shader_program *prog;  member in __anoncffb47c90111::array_resize_visitor
273 gl_shader_program *prog, in array_resize_visitor() argument
277 this->prog = prog; in array_resize_visitor()
300 linker_error(this->prog, "size of array %s declared as %u, " in visit()
311 linker_error(this->prog, "%s shader accesses element %i of " in visit()
363 linker_error(gl_shader_program *prog, const char *fmt, ...) in linker_error() argument
367 ralloc_strcat(&prog->data->InfoLog, "error: "); in linker_error()
369 ralloc_vasprintf_append(&prog->data->InfoLog, fmt, ap); in linker_error()
372 prog->data->LinkStatus = LINKING_FAILURE; in linker_error()
377 linker_warning(gl_shader_program *prog, const char *fmt, ...) in linker_warning() argument
381 ralloc_strcat(&prog->data->InfoLog, "warning: "); in linker_warning()
383 ralloc_vasprintf_append(&prog->data->InfoLog, fmt, ap); in linker_warning()
401 analyze_clip_cull_usage(struct gl_shader_program *prog, in analyze_clip_cull_usage() argument
416 if (prog->GLSL_Version >= (prog->IsES ? 300 : 130)) { in analyze_clip_cull_usage()
433 !prog->IsES ? &gl_ClipVertex : NULL, in analyze_clip_cull_usage()
447 if (!prog->IsES) { in analyze_clip_cull_usage()
449 linker_error(prog, "%s shader writes to both `gl_ClipVertex' " in analyze_clip_cull_usage()
455 linker_error(prog, "%s shader writes to both `gl_ClipVertex' " in analyze_clip_cull_usage()
483 linker_error(prog, "%s shader: the combined size of " in analyze_clip_cull_usage()
503 validate_vertex_shader_executable(struct gl_shader_program *prog, in validate_vertex_shader_executable() argument
536 if (prog->GLSL_Version < (prog->IsES ? 300 : 140)) { in validate_vertex_shader_executable()
540 if (prog->IsES) { in validate_vertex_shader_executable()
541 linker_warning(prog, in validate_vertex_shader_executable()
545 linker_error(prog, in validate_vertex_shader_executable()
552 analyze_clip_cull_usage(prog, shader, consts, &shader->Program->info); in validate_vertex_shader_executable()
556 validate_tess_eval_shader_executable(struct gl_shader_program *prog, in validate_tess_eval_shader_executable() argument
563 analyze_clip_cull_usage(prog, shader, consts, &shader->Program->info); in validate_tess_eval_shader_executable()
573 validate_fragment_shader_executable(struct gl_shader_program *prog, in validate_fragment_shader_executable() argument
585 linker_error(prog, "fragment shader writes to both " in validate_fragment_shader_executable()
593 * Also sets prog->Geom.VerticesIn, and info.clip_distance_array_sizeand
599 validate_geometry_shader_executable(struct gl_shader_program *prog, in validate_geometry_shader_executable() argument
608 prog->Geom.VerticesIn = num_vertices; in validate_geometry_shader_executable()
610 analyze_clip_cull_usage(prog, shader, consts, &shader->Program->info); in validate_geometry_shader_executable()
614 validate_intrastage_arrays(struct gl_shader_program *prog, in validate_intrastage_arrays() argument
637 linker_error(prog, "%s `%s' declared as type " in validate_intrastage_arrays()
649 linker_error(prog, "%s `%s' declared as type " in validate_intrastage_arrays()
669 struct gl_shader_program *prog, in cross_validate_globals() argument
707 if (!validate_intrastage_arrays(prog, var, existing)) { in cross_validate_globals()
719 linker_error(prog, "%s `%s' declared as type " in cross_validate_globals()
732 linker_error(prog, "explicit locations for %s " in cross_validate_globals()
739 linker_error(prog, "explicit components for %s `%s' have " in cross_validate_globals()
767 linker_error(prog, "explicit bindings for %s " in cross_validate_globals()
779 linker_error(prog, "offset specifications for %s " in cross_validate_globals()
802 linker_error(prog, in cross_validate_globals()
809 linker_error(prog, in cross_validate_globals()
840 linker_error(prog, "initializers for %s " in cross_validate_globals()
859 linker_error(prog, in cross_validate_globals()
868 linker_error(prog, "declarations for %s `%s' have " in cross_validate_globals()
874 linker_error(prog, "declarations for %s `%s' have " in cross_validate_globals()
880 linker_error(prog, "declarations for %s `%s` have " in cross_validate_globals()
886 linker_error(prog, "declarations for %s `%s` have " in cross_validate_globals()
896 prog->IsES && !var->get_interface_type() && in cross_validate_globals()
899 prog->GLSL_Version >= 300) { in cross_validate_globals()
900 linker_error(prog, "declarations for %s `%s` have " in cross_validate_globals()
905 linker_warning(prog, "declarations for %s `%s` have " in cross_validate_globals()
926 linker_error(prog, "declarations for %s `%s` are inside block " in cross_validate_globals()
932 linker_error(prog, "declarations for %s `%s` are inside blocks " in cross_validate_globals()
951 struct gl_shader_program *prog) in cross_validate_uniforms() argument
955 if (prog->_LinkedShaders[i] == NULL) in cross_validate_uniforms()
958 cross_validate_globals(consts, prog, prog->_LinkedShaders[i]->ir, in cross_validate_uniforms()
967 validate_invariant_builtins(struct gl_shader_program *prog, in validate_invariant_builtins() argument
993 linker_error(prog, in validate_invariant_builtins()
1005 linker_error(prog, in validate_invariant_builtins()
1015 linker_error(prog, in validate_invariant_builtins()
1386 struct gl_shader_program *prog) in validate_xfb_buffer_stride() argument
1389 if (prog->TransformFeedback.BufferStride[idx] % 4) { in validate_xfb_buffer_stride()
1390 linker_error(prog, "invalid qualifier xfb_stride=%d must be a " in validate_xfb_buffer_stride()
1393 prog->TransformFeedback.BufferStride[idx]); in validate_xfb_buffer_stride()
1397 if (prog->TransformFeedback.BufferStride[idx] / 4 > in validate_xfb_buffer_stride()
1399 linker_error(prog, "The MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS " in validate_xfb_buffer_stride()
1413 struct gl_shader_program *prog, in link_xfb_stride_layout_qualifiers() argument
1418 prog->TransformFeedback.BufferStride[i] = 0; in link_xfb_stride_layout_qualifiers()
1426 if (prog->TransformFeedback.BufferStride[j] == 0) { in link_xfb_stride_layout_qualifiers()
1427 prog->TransformFeedback.BufferStride[j] = in link_xfb_stride_layout_qualifiers()
1429 if (!validate_xfb_buffer_stride(consts, j, prog)) in link_xfb_stride_layout_qualifiers()
1431 } else if (prog->TransformFeedback.BufferStride[j] != in link_xfb_stride_layout_qualifiers()
1433 linker_error(prog, in link_xfb_stride_layout_qualifiers()
1436 prog->TransformFeedback.BufferStride[j], in link_xfb_stride_layout_qualifiers()
1450 link_bindless_layout_qualifiers(struct gl_shader_program *prog, in link_bindless_layout_qualifiers() argument
1480 linker_error(prog, "both bindless_sampler and bound_sampler, or " in link_bindless_layout_qualifiers()
1492 link_layer_viewport_relative_qualifier(struct gl_shader_program *prog, in link_layer_viewport_relative_qualifier() argument
1515 linker_error(prog, "all gl_Layer redeclarations must have identical " in link_layer_viewport_relative_qualifier()
1527 link_tcs_out_layout_qualifiers(struct gl_shader_program *prog, in link_tcs_out_layout_qualifiers() argument
1554 linker_error(prog, "tessellation control shader defined with " in link_tcs_out_layout_qualifiers()
1570 linker_error(prog, "tessellation control shader didn't declare " in link_tcs_out_layout_qualifiers()
1584 link_tes_in_layout_qualifiers(struct gl_shader_program *prog, in link_tes_in_layout_qualifiers() argument
1619 linker_error(prog, "tessellation evaluation shader defined with " in link_tes_in_layout_qualifiers()
1630 linker_error(prog, "tessellation evaluation shader defined with " in link_tes_in_layout_qualifiers()
1640 linker_error(prog, "tessellation evaluation shader defined with " in link_tes_in_layout_qualifiers()
1650 linker_error(prog, "tessellation evaluation shader defined with " in link_tes_in_layout_qualifiers()
1664 linker_error(prog, in link_tes_in_layout_qualifiers()
1692 link_fs_inout_layout_qualifiers(struct gl_shader_program *prog, in link_fs_inout_layout_qualifiers() argument
1704 (prog->GLSL_Version < 150 && !arb_fragment_coord_conventions_enable)) in link_fs_inout_layout_qualifiers()
1719 linker_error(prog, "fragment shader defined with conflicting " in link_fs_inout_layout_qualifiers()
1731 linker_error(prog, "fragment shader defined with conflicting " in link_fs_inout_layout_qualifiers()
1773 link_gs_inout_layout_qualifiers(struct gl_shader_program *prog, in link_gs_inout_layout_qualifiers() argument
1781 if (gl_prog->info.stage != MESA_SHADER_GEOMETRY || prog->GLSL_Version < 150) in link_gs_inout_layout_qualifiers()
1807 linker_error(prog, "geometry shader defined with conflicting " in link_gs_inout_layout_qualifiers()
1818 linker_error(prog, "geometry shader defined with conflicting " in link_gs_inout_layout_qualifiers()
1828 linker_error(prog, "geometry shader defined with conflicting " in link_gs_inout_layout_qualifiers()
1840 linker_error(prog, "geometry shader defined with conflicting " in link_gs_inout_layout_qualifiers()
1855 linker_error(prog, in link_gs_inout_layout_qualifiers()
1861 linker_error(prog, in link_gs_inout_layout_qualifiers()
1867 linker_error(prog, in link_gs_inout_layout_qualifiers()
1885 link_cs_input_layout_qualifiers(struct gl_shader_program *prog, in link_cs_input_layout_qualifiers() argument
1921 linker_error(prog, "compute shader defined with conflicting " in link_cs_input_layout_qualifiers()
1940 linker_error(prog, "compute shader defined with both fixed and " in link_cs_input_layout_qualifiers()
1951 linker_error(prog, "compute shader defined with conflicting " in link_cs_input_layout_qualifiers()
1965 linker_error(prog, "compute shader must contain a fixed or a variable " in link_cs_input_layout_qualifiers()
1972 linker_error(prog, "derivative_group_quadsNV must be used with a " in link_cs_input_layout_qualifiers()
1978 linker_error(prog, "derivative_group_quadsNV must be used with a local" in link_cs_input_layout_qualifiers()
1987 linker_error(prog, "derivative_group_linearNV must be used with a " in link_cs_input_layout_qualifiers()
2041 struct gl_shader_program *prog, in link_intrastage_shaders() argument
2054 cross_validate_globals(&ctx->Const, prog, shader_list[i]->ir, &variables, in link_intrastage_shaders()
2060 if (!prog->data->LinkStatus) in link_intrastage_shaders()
2065 validate_intrastage_interface_blocks(prog, (const gl_shader **)shader_list, in link_intrastage_shaders()
2067 if (!prog->data->LinkStatus) in link_intrastage_shaders()
2098 linker_error(prog, "function `%s' is multiply defined\n", in link_intrastage_shaders()
2126 linker_error(prog, "%s shader lacks `main'\n", in link_intrastage_shaders()
2136 ctx->Driver.NewProgram(ctx, shader_list[0]->Stage, prog->Name, false); in link_intrastage_shaders()
2138 prog->data->LinkStatus = LINKING_FAILURE; in link_intrastage_shaders()
2143 _mesa_reference_shader_program_data(&gl_prog->sh.data, prog->data); in link_intrastage_shaders()
2151 link_fs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders, in link_intrastage_shaders()
2153 link_tcs_out_layout_qualifiers(prog, gl_prog, shader_list, num_shaders); in link_intrastage_shaders()
2154 link_tes_in_layout_qualifiers(prog, gl_prog, shader_list, num_shaders); in link_intrastage_shaders()
2155 link_gs_inout_layout_qualifiers(prog, gl_prog, shader_list, num_shaders); in link_intrastage_shaders()
2156 link_cs_input_layout_qualifiers(prog, gl_prog, shader_list, num_shaders); in link_intrastage_shaders()
2159 link_xfb_stride_layout_qualifiers(&ctx->Const, prog, shader_list, num_shaders); in link_intrastage_shaders()
2161 link_bindless_layout_qualifiers(prog, shader_list, num_shaders); in link_intrastage_shaders()
2163 link_layer_viewport_relative_qualifier(prog, gl_prog, shader_list, num_shaders); in link_intrastage_shaders()
2190 if (!link_function_calls(prog, linked, shader_list, num_shaders)) { in link_intrastage_shaders()
2212 if (!prog->data->LinkStatus) { in link_intrastage_shaders()
2226 array_resize_visitor input_resize_visitor(num_vertices, prog, in link_intrastage_shaders()
2260 struct gl_shader_program *prog) in resize_tes_inputs() argument
2262 if (prog->_LinkedShaders[MESA_SHADER_TESS_EVAL] == NULL) in resize_tes_inputs()
2265 gl_linked_shader *const tcs = prog->_LinkedShaders[MESA_SHADER_TESS_CTRL]; in resize_tes_inputs()
2266 gl_linked_shader *const tes = prog->_LinkedShaders[MESA_SHADER_TESS_EVAL]; in resize_tes_inputs()
2276 array_resize_visitor input_resize_visitor(num_vertices, prog, in resize_tes_inputs()
2307 reserve_explicit_locations(struct gl_shader_program *prog, in reserve_explicit_locations() argument
2315 if (max_loc + 1 > prog->NumUniformRemapTable) { in reserve_explicit_locations()
2316 prog->UniformRemapTable = in reserve_explicit_locations()
2317 reralloc(prog, prog->UniformRemapTable, in reserve_explicit_locations()
2321 if (!prog->UniformRemapTable) { in reserve_explicit_locations()
2322 linker_error(prog, "Out of memory during linking.\n"); in reserve_explicit_locations()
2327 for (unsigned i = prog->NumUniformRemapTable; i < max_loc + 1; i++) in reserve_explicit_locations()
2328 prog->UniformRemapTable[i] = NULL; in reserve_explicit_locations()
2330 prog->NumUniformRemapTable = max_loc + 1; in reserve_explicit_locations()
2337 if (prog->UniformRemapTable[loc] == INACTIVE_UNIFORM_EXPLICIT_LOCATION) { in reserve_explicit_locations()
2352 linker_error(prog, in reserve_explicit_locations()
2362 prog->UniformRemapTable[loc] = INACTIVE_UNIFORM_EXPLICIT_LOCATION; in reserve_explicit_locations()
2372 reserve_subroutine_explicit_locations(struct gl_shader_program *prog, in reserve_subroutine_explicit_locations() argument
2387 linker_error(prog, "Out of memory during linking.\n"); in reserve_subroutine_explicit_locations()
2409 linker_error(prog, in reserve_subroutine_explicit_locations()
2431 struct gl_shader_program *prog) in check_explicit_uniform_locations() argument
2433 prog->NumExplicitUniformLocations = 0; in check_explicit_uniform_locations()
2444 linker_error(prog, "Out of memory during linking.\n"); in check_explicit_uniform_locations()
2449 unsigned mask = prog->data->linked_stages; in check_explicit_uniform_locations()
2452 struct gl_program *p = prog->_LinkedShaders[i]->Program; in check_explicit_uniform_locations()
2454 foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) { in check_explicit_uniform_locations()
2462 ret = reserve_subroutine_explicit_locations(prog, p, var); in check_explicit_uniform_locations()
2464 int slots = reserve_explicit_locations(prog, uniform_map, in check_explicit_uniform_locations()
2479 link_util_update_empty_uniform_locations(prog); in check_explicit_uniform_locations()
2482 prog->NumExplicitUniformLocations = entries_total; in check_explicit_uniform_locations()
2486 link_assign_subroutine_types(struct gl_shader_program *prog) in link_assign_subroutine_types() argument
2488 unsigned mask = prog->data->linked_stages; in link_assign_subroutine_types()
2491 gl_program *p = prog->_LinkedShaders[i]->Program; in link_assign_subroutine_types()
2494 foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) { in link_assign_subroutine_types()
2508 linker_error(prog, "Too many subroutine functions declared.\n"); in link_assign_subroutine_types()
2531 linker_error(prog, "each subroutine index qualifier in the " in link_assign_subroutine_types()
2550 verify_subroutine_associated_funcs(struct gl_shader_program *prog) in verify_subroutine_associated_funcs() argument
2552 unsigned mask = prog->data->linked_stages; in verify_subroutine_associated_funcs()
2555 gl_program *p = prog->_LinkedShaders[i]->Program; in verify_subroutine_associated_funcs()
2556 glsl_symbol_table *symbols = prog->_LinkedShaders[i]->symbols; in verify_subroutine_associated_funcs()
2573 linker_error(prog, "%s shader contains two or more function " in verify_subroutine_associated_funcs()
2662 link_shaders(struct gl_context *ctx, struct gl_shader_program *prog) in link_shaders() argument
2665 prog->data->LinkStatus = LINKING_SUCCESS; /* All error paths will set this to false */ in link_shaders()
2666 prog->data->Validated = false; in link_shaders()
2681 if (prog->NumShaders == 0) { in link_shaders()
2683 linker_error(prog, "no shaders attached to the program\n"); in link_shaders()
2688 if (shader_cache_read_program_metadata(ctx, prog)) in link_shaders()
2702 calloc(prog->NumShaders, sizeof(struct gl_shader *)); in link_shaders()
2708 for (unsigned i = 0; i < prog->NumShaders; i++) { in link_shaders()
2709 min_version = MIN2(min_version, prog->Shaders[i]->Version); in link_shaders()
2710 max_version = MAX2(max_version, prog->Shaders[i]->Version); in link_shaders()
2713 prog->Shaders[i]->IsES != prog->Shaders[0]->IsES) { in link_shaders()
2714 linker_error(prog, "all shaders must use same shading " in link_shaders()
2719 gl_shader_stage shader_type = prog->Shaders[i]->Stage; in link_shaders()
2720 shader_list[shader_type][num_shaders[shader_type]] = prog->Shaders[i]; in link_shaders()
2727 if (!consts->AllowGLSLRelaxedES && prog->Shaders[0]->IsES && in link_shaders()
2729 linker_error(prog, "all shaders must use same shading " in link_shaders()
2734 prog->GLSL_Version = max_version; in link_shaders()
2735 prog->IsES = prog->Shaders[0]->IsES; in link_shaders()
2739 if (!prog->SeparateShader) { in link_shaders()
2742 linker_error(prog, "Geometry shader must be linked with " in link_shaders()
2748 linker_error(prog, "Tessellation evaluation shader must be linked " in link_shaders()
2754 linker_error(prog, "Tessellation control shader must be linked with " in link_shaders()
2785 linker_error(prog, "Tessellation control shader must be linked with " in link_shaders()
2790 if (prog->IsES) { in link_shaders()
2793 linker_error(prog, "GLSL ES requires non-separable programs " in link_shaders()
2803 num_shaders[MESA_SHADER_COMPUTE] != prog->NumShaders) { in link_shaders()
2804 linker_error(prog, "Compute shaders may not be linked with any other " in link_shaders()
2813 link_intrastage_shaders(mem_ctx, ctx, prog, shader_list[stage], in link_shaders()
2816 if (!prog->data->LinkStatus) { in link_shaders()
2824 validate_vertex_shader_executable(prog, sh, consts); in link_shaders()
2830 validate_tess_eval_shader_executable(prog, sh, consts); in link_shaders()
2833 validate_geometry_shader_executable(prog, sh, consts); in link_shaders()
2836 validate_fragment_shader_executable(prog, sh); in link_shaders()
2839 if (!prog->data->LinkStatus) { in link_shaders()
2845 prog->_LinkedShaders[stage] = sh; in link_shaders()
2846 prog->data->linked_stages |= 1 << stage; in link_shaders()
2854 cross_validate_uniforms(consts, prog); in link_shaders()
2855 if (!prog->data->LinkStatus) in link_shaders()
2858 check_explicit_uniform_locations(&ctx->Extensions, prog); in link_shaders()
2859 link_assign_subroutine_types(prog); in link_shaders()
2860 verify_subroutine_associated_funcs(prog); in link_shaders()
2862 if (!prog->data->LinkStatus) in link_shaders()
2865 resize_tes_inputs(consts, prog); in link_shaders()
2871 if (prog->_LinkedShaders[i] == NULL) in link_shaders()
2879 validate_interstage_inout_blocks(prog, prog->_LinkedShaders[prev], in link_shaders()
2880 prog->_LinkedShaders[i]); in link_shaders()
2881 if (!prog->data->LinkStatus) in link_shaders()
2888 validate_interstage_uniform_blocks(prog, prog->_LinkedShaders); in link_shaders()
2889 if (!prog->data->LinkStatus) in link_shaders()
2892 if (prog->IsES && prog->GLSL_Version == 100) in link_shaders()
2893 if (!validate_invariant_builtins(prog, in link_shaders()
2894 prog->_LinkedShaders[MESA_SHADER_VERTEX], in link_shaders()
2895 prog->_LinkedShaders[MESA_SHADER_FRAGMENT])) in link_shaders()
2904 if (max_version >= (prog->IsES ? 300 : 130)) { in link_shaders()
2905 struct gl_linked_shader *sh = prog->_LinkedShaders[MESA_SHADER_FRAGMENT]; in link_shaders()
2912 if (prog->_LinkedShaders[i] == NULL) in link_shaders()
2915 struct gl_linked_shader *shader = prog->_LinkedShaders[i]; in link_shaders()
2918 detect_recursion_linked(prog, ir); in link_shaders()
2919 if (!prog->data->LinkStatus) in link_shaders()
2945 if (prog->_LinkedShaders[i] == NULL) in link_shaders()
2951 validate_ir_tree(prog->_LinkedShaders[i]->ir); in link_shaders()
2954 reparent_ir(prog->_LinkedShaders[i]->ir, prog->_LinkedShaders[i]->ir); in link_shaders()
2961 delete prog->_LinkedShaders[i]->symbols; in link_shaders()
2962 prog->_LinkedShaders[i]->symbols = NULL; in link_shaders()