• Home
  • Raw
  • Download

Lines Matching refs:shProg

281    struct gl_shader_program *shProg = _mesa_lookup_shader_program(ctx, name);  in is_program()  local
282 return shProg ? GL_TRUE : GL_FALSE; in is_program()
298 attach_shader(struct gl_context *ctx, struct gl_shader_program *shProg, in attach_shader() argument
301 GLuint n = shProg->NumShaders; in attach_shader()
303 shProg->Shaders = realloc(shProg->Shaders, in attach_shader()
305 if (!shProg->Shaders) { in attach_shader()
311 shProg->Shaders[n] = NULL; /* since realloc() didn't zero the new space */ in attach_shader()
312 _mesa_reference_shader(ctx, &shProg->Shaders[n], sh); in attach_shader()
313 shProg->NumShaders++; in attach_shader()
320 struct gl_shader_program *shProg; in attach_shader_err() local
326 shProg = _mesa_lookup_shader_program_err(ctx, program, caller); in attach_shader_err()
327 if (!shProg) in attach_shader_err()
335 n = shProg->NumShaders; in attach_shader_err()
337 if (shProg->Shaders[i] == sh) { in attach_shader_err()
347 shProg->Shaders[i]->Stage == sh->Stage) { in attach_shader_err()
361 attach_shader(ctx, shProg, sh); in attach_shader_err()
367 struct gl_shader_program *shProg; in attach_shader_no_error() local
370 shProg = _mesa_lookup_shader_program(ctx, program); in attach_shader_no_error()
373 attach_shader(ctx, shProg, sh); in attach_shader_no_error()
410 struct gl_shader_program *shProg; in create_shader_program() local
416 shProg = _mesa_new_shader_program(name); in create_shader_program()
418 _mesa_HashInsertLocked(ctx->Shared->ShaderObjects, name, shProg, true); in create_shader_program()
420 assert(shProg->RefCount == 1); in create_shader_program()
444 struct gl_shader_program *shProg; in delete_shader_program() local
446 shProg = _mesa_lookup_shader_program_err(ctx, name, "glDeleteProgram"); in delete_shader_program()
447 if (!shProg) in delete_shader_program()
450 if (!shProg->DeletePending) { in delete_shader_program()
451 shProg->DeletePending = GL_TRUE; in delete_shader_program()
454 _mesa_reference_shader_program(ctx, &shProg, NULL); in delete_shader_program()
481 struct gl_shader_program *shProg; in detach_shader() local
486 shProg = _mesa_lookup_shader_program_err(ctx, program, "glDetachShader"); in detach_shader()
487 if (!shProg) in detach_shader()
490 shProg = _mesa_lookup_shader_program(ctx, program); in detach_shader()
493 n = shProg->NumShaders; in detach_shader()
496 if (shProg->Shaders[i]->Name == shader) { in detach_shader()
501 _mesa_reference_shader(ctx, &shProg->Shaders[i], NULL); in detach_shader()
511 newList[j] = shProg->Shaders[j]; in detach_shader()
514 newList[j++] = shProg->Shaders[i]; in detach_shader()
518 free(shProg->Shaders); in detach_shader()
519 shProg->Shaders = newList; in detach_shader()
520 shProg->NumShaders = n - 1; in detach_shader()
524 for (j = 0; j < shProg->NumShaders; j++) { in detach_shader()
525 assert(shProg->Shaders[j]->Stage == MESA_SHADER_VERTEX || in detach_shader()
526 shProg->Shaders[j]->Stage == MESA_SHADER_TESS_CTRL || in detach_shader()
527 shProg->Shaders[j]->Stage == MESA_SHADER_TESS_EVAL || in detach_shader()
528 shProg->Shaders[j]->Stage == MESA_SHADER_GEOMETRY || in detach_shader()
529 shProg->Shaders[j]->Stage == MESA_SHADER_FRAGMENT); in detach_shader()
530 assert(shProg->Shaders[j]->RefCount > 0); in detach_shader()
574 struct gl_shader_program *shProg; in get_attached_shaders() local
581 shProg = in get_attached_shaders()
584 if (shProg) { in get_attached_shaders()
586 for (i = 0; i < (GLuint) maxCount && i < shProg->NumShaders; i++) { in get_attached_shaders()
588 objOut[i] = shProg->Shaders[i]->Name; in get_attached_shaders()
592 handleOut[i] = (GLhandleARB) shProg->Shaders[i]->Name; in get_attached_shaders()
632 check_gs_query(struct gl_context *ctx, const struct gl_shader_program *shProg) in check_gs_query() argument
634 if (shProg->data->LinkStatus && in check_gs_query()
635 shProg->_LinkedShaders[MESA_SHADER_GEOMETRY] != NULL) { in check_gs_query()
657 check_tcs_query(struct gl_context *ctx, const struct gl_shader_program *shProg) in check_tcs_query() argument
659 if (shProg->data->LinkStatus && in check_tcs_query()
660 shProg->_LinkedShaders[MESA_SHADER_TESS_CTRL] != NULL) { in check_tcs_query()
683 check_tes_query(struct gl_context *ctx, const struct gl_shader_program *shProg) in check_tes_query() argument
685 if (shProg->data->LinkStatus && in check_tes_query()
686 shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL] != NULL) { in check_tes_query()
712 struct gl_shader_program *shProg in get_programiv() local
736 if (!shProg) { in get_programiv()
742 *params = shProg->DeletePending; in get_programiv()
746 *params = ctx->Driver.GetShaderProgramCompletionStatus(ctx, shProg); in get_programiv()
751 *params = shProg->data->LinkStatus ? GL_TRUE : GL_FALSE; in get_programiv()
754 *params = shProg->data->Validated; in get_programiv()
757 *params = (shProg->data->InfoLog && shProg->data->InfoLog[0] != '\0') ? in get_programiv()
758 strlen(shProg->data->InfoLog) + 1 : 0; in get_programiv()
761 *params = shProg->NumShaders; in get_programiv()
764 *params = _mesa_count_active_attribs(shProg); in get_programiv()
767 *params = _mesa_longest_attribute_name_length(shProg); in get_programiv()
772 shProg->data->NumUniformStorage - shProg->data->NumHiddenUniforms; in get_programiv()
774 if (!shProg->data->UniformStorage[i].is_shader_storage) in get_programiv()
783 shProg->data->NumUniformStorage - shProg->data->NumHiddenUniforms; in get_programiv()
786 if (shProg->data->UniformStorage[i].is_shader_storage) in get_programiv()
799 strlen_or_zero(shProg->data->UniformStorage[i].name); in get_programiv()
805 ((shProg->data->UniformStorage[i].array_elements != 0) ? 3 : 0); in get_programiv()
822 if (shProg->last_vert_prog && in get_programiv()
823 shProg->last_vert_prog->sh.LinkedTransformFeedback->NumVarying > 0) in get_programiv()
825 shProg->last_vert_prog->sh.LinkedTransformFeedback->NumVarying; in get_programiv()
827 *params = shProg->TransformFeedback.NumVarying; in get_programiv()
842 in_shader_varyings = shProg->last_vert_prog && in get_programiv()
843 shProg->last_vert_prog->sh.LinkedTransformFeedback->NumVarying > 0; in get_programiv()
846 shProg->last_vert_prog->sh.LinkedTransformFeedback->NumVarying : in get_programiv()
847 shProg->TransformFeedback.NumVarying; in get_programiv()
851 shProg->last_vert_prog->sh.LinkedTransformFeedback->Varyings[i].Name in get_programiv()
852 : shProg->TransformFeedback.VaryingNames[i]; in get_programiv()
870 *params = shProg->TransformFeedback.BufferMode; in get_programiv()
875 if (check_gs_query(ctx, shProg)) { in get_programiv()
876 *params = shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]-> in get_programiv()
885 if (check_gs_query(ctx, shProg)) { in get_programiv()
886 *params = shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]-> in get_programiv()
893 if (check_gs_query(ctx, shProg)) { in get_programiv()
894 *params = shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]-> in get_programiv()
901 if (check_gs_query(ctx, shProg)) { in get_programiv()
902 *params = shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]-> in get_programiv()
913 for (i = 0; i < shProg->data->NumUniformBlocks; i++) { in get_programiv()
923 strlen_or_zero(shProg->data->UniformBlocks[i].Name) + 1; in get_programiv()
936 *params = shProg->data->NumUniformBlocks; in get_programiv()
948 *params = shProg->BinaryRetrievableHint; in get_programiv()
951 if (ctx->Const.NumProgramBinaryFormats == 0 || !shProg->data->LinkStatus) { in get_programiv()
954 _mesa_get_program_binary_length(ctx, shProg, params); in get_programiv()
961 *params = shProg->data->NumAtomicBuffers; in get_programiv()
967 if (!shProg->data->LinkStatus) { in get_programiv()
972 if (shProg->_LinkedShaders[MESA_SHADER_COMPUTE] == NULL) { in get_programiv()
978 params[i] = shProg->_LinkedShaders[MESA_SHADER_COMPUTE]-> in get_programiv()
984 *params = (shProg->data->LinkStatus == LINKING_FAILURE) ? 0 : shProg->SeparateShader; in get_programiv()
991 if (check_tcs_query(ctx, shProg)) { in get_programiv()
992 *params = shProg->_LinkedShaders[MESA_SHADER_TESS_CTRL]-> in get_programiv()
999 if (check_tes_query(ctx, shProg)) { in get_programiv()
1000 *params = shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]-> in get_programiv()
1007 if (check_tes_query(ctx, shProg)) { in get_programiv()
1009 shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]; in get_programiv()
1029 if (check_tes_query(ctx, shProg)) { in get_programiv()
1030 *params = shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]-> in get_programiv()
1037 if (check_tes_query(ctx, shProg)) { in get_programiv()
1038 *params = shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]-> in get_programiv()
1099 struct gl_shader_program *shProg; in get_program_info_log() local
1112 shProg = _mesa_lookup_shader_program_err(ctx, program, in get_program_info_log()
1114 if (!shProg) { in get_program_info_log()
1118 _mesa_copy_string(infoLog, bufSize, length, shProg->data->InfoLog); in get_program_info_log()
1298 struct gl_shader_program *shProg; member
1310 obj->CurrentProgram[stage]->Id == params->shProg->Name) { in update_programs_in_pipeline()
1311 struct gl_program *prog = params->shProg->_LinkedShaders[stage]->Program; in update_programs_in_pipeline()
1312 _mesa_use_program(params->ctx, stage, params->shProg, prog, obj); in update_programs_in_pipeline()
1322 link_program(struct gl_context *ctx, struct gl_shader_program *shProg, in link_program() argument
1325 if (!shProg) in link_program()
1334 if (_mesa_transform_feedback_is_using_program(ctx, shProg)) { in link_program()
1345 ctx->_Shader->CurrentProgram[stage]->Id == shProg->Name) { in link_program()
1353 _mesa_glsl_link_shader(ctx, shProg); in link_program()
1365 if (shProg->data->LinkStatus) { in link_program()
1370 if (shProg->_LinkedShaders[stage]) in link_program()
1371 prog = shProg->_LinkedShaders[stage]->Program; in link_program()
1373 _mesa_use_program(ctx, stage, shProg, prog, ctx->_Shader); in link_program()
1379 .shProg = shProg in link_program()
1389 if (shProg->Name != 0 && shProg->Name != ~0 && capture_path != NULL) { in link_program()
1396 capture_path, shProg->Name, i); in link_program()
1399 capture_path, shProg->Name); in link_program()
1413 shProg->IsES ? " ES" : "", in link_program()
1414 shProg->data->Version / 100, shProg->data->Version % 100); in link_program()
1415 if (shProg->SeparateShader) in link_program()
1419 for (unsigned i = 0; i < shProg->NumShaders; i++) { in link_program()
1421 _mesa_shader_stage_to_string(shProg->Shaders[i]->Stage), in link_program()
1422 shProg->Shaders[i]->Source); in link_program()
1433 if (shProg->data->LinkStatus == LINKING_FAILURE && in link_program()
1436 shProg->Name, shProg->data->InfoLog); in link_program()
1442 shProg->BinaryRetrievableHint = shProg->BinaryRetrievableHintPending; in link_program()
1449 shProg->NumShaders, shProg->Name, in link_program()
1450 shProg->data->LinkStatus ? "Success" : "Failed"); in link_program()
1452 for (i = 0; i < shProg->NumShaders; i++) { in link_program()
1454 shProg->Shaders[i]->Name, in link_program()
1455 shProg->Shaders[i]->Stage); in link_program()
1462 link_program_error(struct gl_context *ctx, struct gl_shader_program *shProg) in link_program_error() argument
1464 link_program(ctx, shProg, false); in link_program_error()
1469 link_program_no_error(struct gl_context *ctx, struct gl_shader_program *shProg) in link_program_no_error() argument
1471 link_program(ctx, shProg, true); in link_program_no_error()
1476 _mesa_link_program(struct gl_context *ctx, struct gl_shader_program *shProg) in _mesa_link_program() argument
1478 link_program_error(ctx, shProg); in _mesa_link_program()
1486 print_shader_info(const struct gl_shader_program *shProg) in print_shader_info() argument
1490 printf("Mesa: glUseProgram(%u)\n", shProg->Name); in print_shader_info()
1491 for (i = 0; i < shProg->NumShaders; i++) { in print_shader_info()
1494 _mesa_shader_stage_to_string(shProg->Shaders[i]->Stage), in print_shader_info()
1495 shProg->Shaders[i]->Name, in print_shader_info()
1496 shProg->Shaders[i]->SourceChecksum); in print_shader_info()
1499 _mesa_shader_stage_to_string(shProg->Shaders[i]->Stage), in print_shader_info()
1500 shProg->Shaders[i]->Name); in print_shader_info()
1503 if (shProg->_LinkedShaders[MESA_SHADER_VERTEX]) in print_shader_info()
1505 shProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program->Id); in print_shader_info()
1506 if (shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]) in print_shader_info()
1508 shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program->Id); in print_shader_info()
1509 if (shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]) in print_shader_info()
1511 shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program->Id); in print_shader_info()
1512 if (shProg->_LinkedShaders[MESA_SHADER_TESS_CTRL]) in print_shader_info()
1514 shProg->_LinkedShaders[MESA_SHADER_TESS_CTRL]->Program->Id); in print_shader_info()
1515 if (shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]) in print_shader_info()
1517 shProg->_LinkedShaders[MESA_SHADER_TESS_EVAL]->Program->Id); in print_shader_info()
1525 _mesa_active_program(struct gl_context *ctx, struct gl_shader_program *shProg, in _mesa_active_program() argument
1528 if ((shProg != NULL) && !shProg->data->LinkStatus) { in _mesa_active_program()
1530 "%s(program %u not linked)", caller, shProg->Name); in _mesa_active_program()
1534 if (ctx->Shader.ActiveProgram != shProg) { in _mesa_active_program()
1535 _mesa_reference_shader_program(ctx, &ctx->Shader.ActiveProgram, shProg); in _mesa_active_program()
1546 struct gl_shader_program *shProg) in _mesa_use_shader_program() argument
1550 if (shProg && shProg->_LinkedShaders[i]) in _mesa_use_shader_program()
1551 new_prog = shProg->_LinkedShaders[i]->Program; in _mesa_use_shader_program()
1552 _mesa_use_program(ctx, i, shProg, new_prog, &ctx->Shader); in _mesa_use_shader_program()
1554 _mesa_active_program(ctx, shProg, "glUseProgram"); in _mesa_use_shader_program()
1564 validate_shader_program(const struct gl_shader_program *shProg, in validate_shader_program() argument
1567 if (!shProg->data->LinkStatus) { in validate_shader_program()
1590 if (!_mesa_sampler_uniforms_are_valid(shProg, errMsg, 100)) in validate_shader_program()
1603 struct gl_shader_program *shProg; in validate_program() local
1606 shProg = _mesa_lookup_shader_program_err(ctx, program, "glValidateProgram"); in validate_program()
1607 if (!shProg) { in validate_program()
1611 shProg->data->Validated = validate_shader_program(shProg, errMsg); in validate_program()
1612 if (!shProg->data->Validated) { in validate_program()
1614 if (shProg->data->InfoLog) { in validate_program()
1615 ralloc_free(shProg->data->InfoLog); in validate_program()
1617 shProg->data->InfoLog = ralloc_strdup(shProg->data, errMsg); in validate_program()
1941 struct gl_shader_program *shProg = in _mesa_LinkProgram_no_error() local
1943 link_program_no_error(ctx, shProg); in _mesa_LinkProgram_no_error()
1955 struct gl_shader_program *shProg = in _mesa_LinkProgram() local
1957 link_program_error(ctx, shProg); in _mesa_LinkProgram()
2221 struct gl_shader_program *shProg = NULL; in use_program() local
2228 shProg = _mesa_lookup_shader_program(ctx, program); in use_program()
2238 shProg = in use_program()
2240 if (!shProg) in use_program()
2243 if (!shProg->data->LinkStatus) { in use_program()
2251 print_shader_info(shProg); in use_program()
2265 if (shProg) { in use_program()
2269 _mesa_use_shader_program(ctx, shProg); in use_program()
2272 _mesa_use_shader_program(ctx, shProg); in use_program()
2442 struct gl_shader_program *shProg; in _mesa_GetProgramBinary() local
2451 shProg = _mesa_lookup_shader_program_err(ctx, program, "glGetProgramBinary"); in _mesa_GetProgramBinary()
2452 if (!shProg) in _mesa_GetProgramBinary()
2472 if (!shProg->data->LinkStatus) { in _mesa_GetProgramBinary()
2475 shProg->Name); in _mesa_GetProgramBinary()
2485 _mesa_get_program_binary(ctx, shProg, bufSize, length, binaryFormat, in _mesa_GetProgramBinary()
2495 struct gl_shader_program *shProg; in _mesa_ProgramBinary() local
2498 shProg = _mesa_lookup_shader_program_err(ctx, program, "glProgramBinary"); in _mesa_ProgramBinary()
2499 if (!shProg) in _mesa_ProgramBinary()
2502 _mesa_clear_shader_program_data(ctx, shProg); in _mesa_ProgramBinary()
2503 shProg->data = _mesa_create_shader_program_data(); in _mesa_ProgramBinary()
2529 shProg->data->LinkStatus = LINKING_FAILURE; in _mesa_ProgramBinary()
2532 _mesa_program_binary(ctx, shProg, binaryFormat, binary, length); in _mesa_ProgramBinary()
2538 program_parameteri(struct gl_context *ctx, struct gl_shader_program *shProg, in program_parameteri() argument
2580 shProg->BinaryRetrievableHintPending = value; in program_parameteri()
2590 shProg->SeparateShader = value; in program_parameteri()
2615 struct gl_shader_program *shProg = _mesa_lookup_shader_program(ctx, program); in _mesa_ProgramParameteri_no_error() local
2616 program_parameteri(ctx, shProg, pname, value, true); in _mesa_ProgramParameteri_no_error()
2623 struct gl_shader_program *shProg; in _mesa_ProgramParameteri() local
2626 shProg = _mesa_lookup_shader_program_err(ctx, program, in _mesa_ProgramParameteri()
2628 if (!shProg) in _mesa_ProgramParameteri()
2631 program_parameteri(ctx, shProg, pname, value, false); in _mesa_ProgramParameteri()
2637 struct gl_shader_program *shProg, struct gl_program *prog, in _mesa_use_program() argument
2655 shProg); in _mesa_use_program()
2733 struct gl_shader_program *shProg; in _mesa_CreateShaderProgramv() local
2736 shProg = _mesa_lookup_shader_program(ctx, program); in _mesa_CreateShaderProgramv()
2738 shProg->SeparateShader = GL_TRUE; in _mesa_CreateShaderProgramv()
2743 _mesa_link_program(ctx, shProg); in _mesa_CreateShaderProgramv()
2750 shProg->data->LinkStatus = LINKING_FAILURE; in _mesa_CreateShaderProgramv()
2755 ralloc_strcat(&shProg->data->InfoLog, sh->InfoLog); in _mesa_CreateShaderProgramv()
2849 struct gl_shader_program *shProg; in _mesa_GetSubroutineUniformLocation() local
2858 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetSubroutineUniformLocation()
2859 if (!shProg) in _mesa_GetSubroutineUniformLocation()
2863 if (!shProg->_LinkedShaders[stage]) { in _mesa_GetSubroutineUniformLocation()
2869 return _mesa_program_resource_location(shProg, resource_type, name); in _mesa_GetSubroutineUniformLocation()
2878 struct gl_shader_program *shProg; in _mesa_GetSubroutineIndex() local
2888 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetSubroutineIndex()
2889 if (!shProg) in _mesa_GetSubroutineIndex()
2893 if (!shProg->_LinkedShaders[stage]) { in _mesa_GetSubroutineIndex()
2899 res = _mesa_program_resource_find_name(shProg, resource_type, name, NULL); in _mesa_GetSubroutineIndex()
2904 return _mesa_program_resource_index(shProg, res); in _mesa_GetSubroutineIndex()
2914 struct gl_shader_program *shProg; in _mesa_GetActiveSubroutineUniformiv() local
2927 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetActiveSubroutineUniformiv()
2928 if (!shProg) in _mesa_GetActiveSubroutineUniformiv()
2934 sh = shProg->_LinkedShaders[stage]; in _mesa_GetActiveSubroutineUniformiv()
2940 struct gl_program *p = shProg->_LinkedShaders[stage]->Program; in _mesa_GetActiveSubroutineUniformiv()
2948 res = _mesa_program_resource_find_index(shProg, resource_type, index); in _mesa_GetActiveSubroutineUniformiv()
2956 res = _mesa_program_resource_find_index(shProg, resource_type, index); in _mesa_GetActiveSubroutineUniformiv()
2973 res = _mesa_program_resource_find_index(shProg, resource_type, index); in _mesa_GetActiveSubroutineUniformiv()
2980 res = _mesa_program_resource_find_index(shProg, resource_type, index); in _mesa_GetActiveSubroutineUniformiv()
3000 struct gl_shader_program *shProg; in _mesa_GetActiveSubroutineUniformName() local
3009 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetActiveSubroutineUniformName()
3010 if (!shProg) in _mesa_GetActiveSubroutineUniformName()
3014 if (!shProg->_LinkedShaders[stage]) { in _mesa_GetActiveSubroutineUniformName()
3021 _mesa_get_program_resource_name(shProg, resource_type, in _mesa_GetActiveSubroutineUniformName()
3034 struct gl_shader_program *shProg; in _mesa_GetActiveSubroutineName() local
3043 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetActiveSubroutineName()
3044 if (!shProg) in _mesa_GetActiveSubroutineName()
3048 if (!shProg->_LinkedShaders[stage]) { in _mesa_GetActiveSubroutineName()
3053 _mesa_get_program_resource_name(shProg, resource_type, in _mesa_GetActiveSubroutineName()
3168 struct gl_shader_program *shProg; in _mesa_GetProgramStageiv() local
3177 shProg = _mesa_lookup_shader_program_err(ctx, program, api_name); in _mesa_GetProgramStageiv()
3178 if (!shProg) in _mesa_GetProgramStageiv()
3182 sh = shProg->_LinkedShaders[stage]; in _mesa_GetProgramStageiv()
3225 res = _mesa_program_resource_find_index(shProg, resource_type, i); in _mesa_GetProgramStageiv()
3244 res = _mesa_program_resource_find_index(shProg, resource_type, i); in _mesa_GetProgramStageiv()