• Home
  • Raw
  • Download

Lines Matching full:prog

184                                    struct gl_shader_program *prog)  in validate_geometry_shader_emissions()  argument
186 struct gl_linked_shader *sh = prog->_LinkedShaders[MESA_SHADER_GEOMETRY]; in validate_geometry_shader_emissions()
199 linker_error(prog, "Invalid call %s(%d). Accepted values for the " in validate_geometry_shader_emissions()
205 prog->Geom.ActiveStreamMask = state.used_streams; in validate_geometry_shader_emissions()
206 prog->Geom.UsesEndPrimitive = state.end_primitive_found; in validate_geometry_shader_emissions()
228 * does. We can use prog->Geom.ActiveStreamMask to check whether only the in validate_geometry_shader_emissions()
232 if (prog->Geom.ActiveStreamMask & ~(1 << 0) && in validate_geometry_shader_emissions()
234 linker_error(prog, "EmitStreamVertex(n) and EndStreamPrimitive(n) " in validate_geometry_shader_emissions()
242 struct gl_program *prog) in gl_nir_can_add_pointsize_to_program() argument
244 nir_shader *nir = prog->nir; in gl_nir_can_add_pointsize_to_program()
369 disable_varying_optimizations_for_sso(struct gl_shader_program *prog) in disable_varying_optimizations_for_sso() argument
372 assert(prog->SeparateShader); in disable_varying_optimizations_for_sso()
379 if (!prog->_LinkedShaders[i]) in disable_varying_optimizations_for_sso()
390 if (!prog->_LinkedShaders[stage]) in disable_varying_optimizations_for_sso()
401 set_always_active_io(prog->_LinkedShaders[stage]->Program->nir, in disable_varying_optimizations_for_sso()
406 set_always_active_io(prog->_LinkedShaders[stage]->Program->nir, in disable_varying_optimizations_for_sso()
651 struct gl_shader_program *prog, struct set *resource_set, in add_vars_with_modes() argument
681 if (prog->data->spirv) { in add_vars_with_modes()
683 rzalloc(prog, struct gl_shader_variable); in add_vars_with_modes()
696 if (!link_util_add_program_resource(prog, resource_set, in add_vars_with_modes()
717 if (!add_shader_variable(consts, prog, resource_set, in add_vars_with_modes()
733 struct gl_shader_program *prog, in add_interface_variables() argument
737 struct gl_linked_shader *sh = prog->_LinkedShaders[stage]; in add_interface_variables()
746 return add_vars_with_modes(consts, prog, resource_set, in add_interface_variables()
751 return add_vars_with_modes(consts, prog, resource_set, in add_interface_variables()
782 init_program_resource_list(struct gl_shader_program *prog) in init_program_resource_list() argument
785 if (prog->data->ProgramResourceList) { in init_program_resource_list()
786 ralloc_free(prog->data->ProgramResourceList); in init_program_resource_list()
787 prog->data->ProgramResourceList = NULL; in init_program_resource_list()
788 prog->data->NumProgramResourceList = 0; in init_program_resource_list()
798 struct gl_shader_program *prog, in nir_build_program_resource_list() argument
803 init_program_resource_list(prog); in nir_build_program_resource_list()
812 if (!prog->_LinkedShaders[i]) in nir_build_program_resource_list()
826 if (!add_interface_variables(consts, prog, resource_set, input_stage, in nir_build_program_resource_list()
831 if (!add_interface_variables(consts, prog, resource_set, output_stage, in nir_build_program_resource_list()
837 if (prog->last_vert_prog) { in nir_build_program_resource_list()
839 prog->last_vert_prog->sh.LinkedTransformFeedback; in nir_build_program_resource_list()
844 if (!link_util_add_program_resource(prog, resource_set, in nir_build_program_resource_list()
855 if (!link_util_add_program_resource(prog, resource_set, in nir_build_program_resource_list()
872 for (unsigned i = 0; i < prog->data->NumUniformStorage; i++) { in nir_build_program_resource_list()
873 struct gl_uniform_storage *uniform = &prog->data->UniformStorage[i]; in nir_build_program_resource_list()
884 if (!link_util_add_program_resource(prog, resource_set, in nir_build_program_resource_list()
892 if (!link_util_should_add_buffer_variable(prog, uniform, in nir_build_program_resource_list()
899 if (prog->data->UniformStorage[i].offset >= second_element_offset) { in nir_build_program_resource_list()
901 prog->data->UniformStorage[i].offset; in nir_build_program_resource_list()
904 prog->data->UniformStorage[i].top_level_array_size * in nir_build_program_resource_list()
905 prog->data->UniformStorage[i].top_level_array_stride; in nir_build_program_resource_list()
912 prog->data->UniformStorage[i].top_level_array_stride : -1; in nir_build_program_resource_list()
918 if (!link_util_add_program_resource(prog, resource_set, interface, uniform, in nir_build_program_resource_list()
925 for (unsigned i = 0; i < prog->data->NumUniformBlocks; i++) { in nir_build_program_resource_list()
926 if (!link_util_add_program_resource(prog, resource_set, GL_UNIFORM_BLOCK, in nir_build_program_resource_list()
927 &prog->data->UniformBlocks[i], in nir_build_program_resource_list()
928 prog->data->UniformBlocks[i].stageref)) in nir_build_program_resource_list()
932 for (unsigned i = 0; i < prog->data->NumShaderStorageBlocks; i++) { in nir_build_program_resource_list()
933 if (!link_util_add_program_resource(prog, resource_set, GL_SHADER_STORAGE_BLOCK, in nir_build_program_resource_list()
934 &prog->data->ShaderStorageBlocks[i], in nir_build_program_resource_list()
935 prog->data->ShaderStorageBlocks[i].stageref)) in nir_build_program_resource_list()
940 for (unsigned i = 0; i < prog->data->NumAtomicBuffers; i++) { in nir_build_program_resource_list()
941 if (!link_util_add_program_resource(prog, resource_set, GL_ATOMIC_COUNTER_BUFFER, in nir_build_program_resource_list()
942 &prog->data->AtomicBuffers[i], 0)) in nir_build_program_resource_list()
946 unsigned mask = prog->data->linked_stages; in nir_build_program_resource_list()
949 struct gl_program *p = prog->_LinkedShaders[i]->Program; in nir_build_program_resource_list()
953 if (!link_util_add_program_resource(prog, resource_set, in nir_build_program_resource_list()
1101 struct gl_program *prog, in preprocess_shader() argument
1106 &consts->ShaderCompilerOptions[prog->info.stage]; in preprocess_shader()
1110 nir_shader *nir = prog->nir; in preprocess_shader()
1112 if (prog->info.stage == MESA_SHADER_FRAGMENT && consts->HasFBFetch) { in preprocess_shader()
1113 nir_shader_gather_info(prog->nir, nir_shader_get_entrypoint(prog->nir)); in preprocess_shader()
1114 NIR_PASS(_, prog->nir, gl_nir_lower_blend_equation_advanced, in preprocess_shader()
1116 nir_lower_global_vars_to_local(prog->nir); in preprocess_shader()
1117 NIR_PASS(_, prog->nir, nir_opt_combine_stores, nir_var_shader_out); in preprocess_shader()
1125 unsigned prev_stages = (1 << (prog->info.stage + 1)) - 1; in preprocess_shader()
1135 prog->skip_pointsize_xfb = !(nir->info.outputs_written & VARYING_BIT_PSIZ); in preprocess_shader()
1136 if (!consts->PointSizeFixed && prog->skip_pointsize_xfb && in preprocess_shader()
1138 gl_nir_can_add_pointsize_to_program(consts, prog)) { in preprocess_shader()
1181 if (prog->nir->info.stage == MESA_SHADER_COMPUTE) { in preprocess_shader()
1182 NIR_PASS(_, prog->nir, nir_lower_vars_to_explicit_types, in preprocess_shader()
1184 NIR_PASS(_, prog->nir, nir_lower_explicit_io, in preprocess_shader()
1202 struct gl_program *prog = shader->Program; in prelink_lowering() local
1209 remove_dead_varyings_pre_linking(prog->nir); in prelink_lowering()
1211 preprocess_shader(consts, exts, prog, shader_program, shader->Stage); in prelink_lowering()
1213 if (prog->nir->info.shared_size > consts->MaxComputeSharedMemorySize) { in prelink_lowering()
1215 prog->nir->info.shared_size, in prelink_lowering()
1262 struct gl_shader_program *prog, in gl_nir_link_spirv() argument
1271 if (prog->_LinkedShaders[i]) { in gl_nir_link_spirv()
1272 linked_shader[num_shaders++] = prog->_LinkedShaders[i]; in gl_nir_link_spirv()
1274 remove_dead_varyings_pre_linking(prog->_LinkedShaders[i]->Program->nir); in gl_nir_link_spirv()
1278 if (!prelink_lowering(consts, exts, prog, linked_shader, num_shaders)) in gl_nir_link_spirv()
1292 struct gl_linked_shader *shader = prog->_LinkedShaders[i]; in gl_nir_link_spirv()
1303 if (!gl_nir_link_uniform_blocks(consts, prog)) in gl_nir_link_spirv()
1306 if (!gl_nir_link_uniforms(consts, prog, options->fill_parameters)) in gl_nir_link_spirv()
1309 gl_nir_link_assign_atomic_counter_resources(consts, prog); in gl_nir_link_spirv()
1310 gl_nir_link_assign_xfb_resources(consts, prog); in gl_nir_link_spirv()
1321 struct gl_shader_program *prog) in check_image_resources() argument
1331 struct gl_linked_shader *sh = prog->_LinkedShaders[i]; in check_image_resources()
1340 linker_error(prog, "Too many combined image uniforms\n"); in check_image_resources()
1343 prog->_LinkedShaders[MESA_SHADER_FRAGMENT]; in check_image_resources()
1351 linker_error(prog, "Too many combined image uniforms, shader storage " in check_image_resources()
1378 struct gl_shader_program *prog) in validate_sampler_array_indexing() argument
1381 if (prog->_LinkedShaders[i] == NULL) in validate_sampler_array_indexing()
1388 nir_foreach_function_impl(impl, prog->_LinkedShaders[i]->Program->nir) { in validate_sampler_array_indexing()
1419 linker_error(prog, msg, prog->IsES ? "ES" : "", prog->GLSL_Version); in validate_sampler_array_indexing()
1422 linker_warning(prog, msg, prog->IsES ? "ES" : "", in validate_sampler_array_indexing()
1423 prog->GLSL_Version); in validate_sampler_array_indexing()
1435 struct gl_shader_program *prog) in gl_nir_link_glsl() argument
1437 if (prog->NumShaders == 0) in gl_nir_link_glsl()
1443 validate_geometry_shader_emissions(consts, prog); in gl_nir_link_glsl()
1445 prog->last_vert_prog = NULL; in gl_nir_link_glsl()
1447 if (prog->_LinkedShaders[i] == NULL) in gl_nir_link_glsl()
1450 prog->last_vert_prog = prog->_LinkedShaders[i]->Program; in gl_nir_link_glsl()
1459 if (!prog->_LinkedShaders[i]) in gl_nir_link_glsl()
1466 gl_nir_lower_named_interface_blocks(prog); in gl_nir_link_glsl()
1473 if (prog->_LinkedShaders[i] == NULL) in gl_nir_link_glsl()
1476 gl_nir_cross_validate_outputs_to_inputs(consts, prog, in gl_nir_link_glsl()
1477 prog->_LinkedShaders[prev], in gl_nir_link_glsl()
1478 prog->_LinkedShaders[i]); in gl_nir_link_glsl()
1479 if (!prog->data->LinkStatus) in gl_nir_link_glsl()
1490 gl_nir_validate_first_and_last_interface_explicit_locations(consts, prog, in gl_nir_link_glsl()
1494 if (prog->SeparateShader) in gl_nir_link_glsl()
1495 disable_varying_optimizations_for_sso(prog); in gl_nir_link_glsl()
1501 if (prog->_LinkedShaders[i]) { in gl_nir_link_glsl()
1502 linked_shader[num_shaders++] = prog->_LinkedShaders[i]; in gl_nir_link_glsl()
1518 if (!(prog->IsES && prog->GLSL_Version >= 300 && i == MESA_SHADER_VERTEX)) in gl_nir_link_glsl()
1519 remove_dead_varyings_pre_linking(prog->_LinkedShaders[i]->Program->nir); in gl_nir_link_glsl()
1523 if (!gl_assign_attribute_or_color_locations(consts, prog)) in gl_nir_link_glsl()
1526 if (!prelink_lowering(consts, exts, prog, linked_shader, num_shaders)) in gl_nir_link_glsl()
1529 if (!gl_nir_link_varyings(consts, exts, api, prog)) in gl_nir_link_glsl()
1536 if ((!prog->IsES && prog->GLSL_Version < 130) || in gl_nir_link_glsl()
1537 (prog->IsES && prog->GLSL_Version < 300)) { in gl_nir_link_glsl()
1538 if (!validate_sampler_array_indexing(consts, prog)) in gl_nir_link_glsl()
1542 if (prog->data->LinkStatus == LINKING_FAILURE) in gl_nir_link_glsl()
1563 struct gl_linked_shader *shader = prog->_LinkedShaders[i]; in gl_nir_link_glsl()
1598 if (!gl_nir_link_uniform_blocks(consts, prog)) in gl_nir_link_glsl()
1601 if (!gl_nir_link_uniforms(consts, prog, true)) in gl_nir_link_glsl()
1604 link_util_calculate_subroutine_compat(prog); in gl_nir_link_glsl()
1605 link_util_check_uniform_resources(consts, prog); in gl_nir_link_glsl()
1606 link_util_check_subroutine_resources(prog); in gl_nir_link_glsl()
1607 check_image_resources(consts, exts, prog); in gl_nir_link_glsl()
1608 gl_nir_link_assign_atomic_counter_resources(consts, prog); in gl_nir_link_glsl()
1609 gl_nir_link_check_atomic_counter_resources(consts, prog); in gl_nir_link_glsl()
1637 if (!prog->SeparateShader && _mesa_is_api_gles2(api) && in gl_nir_link_glsl()
1638 !prog->_LinkedShaders[MESA_SHADER_COMPUTE]) { in gl_nir_link_glsl()
1639 if (prog->_LinkedShaders[MESA_SHADER_VERTEX] == NULL) { in gl_nir_link_glsl()
1640 linker_error(prog, "program lacks a vertex shader\n"); in gl_nir_link_glsl()
1641 } else if (prog->_LinkedShaders[MESA_SHADER_FRAGMENT] == NULL) { in gl_nir_link_glsl()
1642 linker_error(prog, "program lacks a fragment shader\n"); in gl_nir_link_glsl()
1646 if (prog->data->LinkStatus == LINKING_FAILURE) in gl_nir_link_glsl()