Lines Matching refs:pipe

213                   struct gl_pipeline_object *pipe) {
219 _mesa_use_program(ctx, stage, shProg, prog, pipe);
224 GLbitfield stages, struct gl_pipeline_object *pipe) {
240 use_program_stage(ctx, GL_VERTEX_SHADER, shProg, pipe);
243 use_program_stage(ctx, GL_FRAGMENT_SHADER, shProg, pipe);
246 use_program_stage(ctx, GL_GEOMETRY_SHADER, shProg, pipe);
249 use_program_stage(ctx, GL_TESS_CONTROL_SHADER, shProg, pipe);
252 use_program_stage(ctx, GL_TESS_EVALUATION_SHADER, shProg, pipe);
255 use_program_stage(ctx, GL_COMPUTE_SHADER, shProg, pipe);
257 pipe->Validated = pipe->UserValidated = false;
259 if (pipe == ctx->_Shader)
269 struct gl_pipeline_object *pipe =
279 pipe->EverBound = GL_TRUE;
281 use_program_stages(ctx, shProg, stages, pipe);
292 struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline);
300 if (!pipe) {
308 pipe->EverBound = GL_TRUE;
340 if (ctx->_Shader == pipe) {
377 use_program_stages(ctx, shProg, stages, pipe);
385 struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline);
398 if (!no_error && !pipe) {
406 pipe->EverBound = GL_TRUE;
414 _mesa_reference_shader_program(ctx, &pipe->ActiveProgram, shProg);
415 if (pipe == ctx->_Shader)
509 struct gl_pipeline_object *pipe)
513 _mesa_reference_pipeline_object(ctx, &ctx->Pipeline.Current, pipe);
526 if (pipe != NULL) {
530 _mesa_reference_pipeline_object(ctx, &ctx->_Shader, pipe);
711 struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline);
722 if (!pipe) {
731 pipe->EverBound = GL_TRUE;
735 *params = pipe->ActiveProgram ? pipe->ActiveProgram->Name : 0;
738 *params = (pipe->InfoLog && pipe->InfoLog[0] != '\0') ?
739 strlen(pipe->InfoLog) + 1 : 0;
742 *params = pipe->UserValidated;
745 *params = pipe->CurrentProgram[MESA_SHADER_VERTEX]
746 ? pipe->CurrentProgram[MESA_SHADER_VERTEX]->Id : 0;
751 *params = pipe->CurrentProgram[MESA_SHADER_TESS_EVAL]
752 ? pipe->CurrentProgram[MESA_SHADER_TESS_EVAL]->Id : 0;
757 *params = pipe->CurrentProgram[MESA_SHADER_TESS_CTRL]
758 ? pipe->CurrentProgram[MESA_SHADER_TESS_CTRL]->Id : 0;
763 *params = pipe->CurrentProgram[MESA_SHADER_GEOMETRY]
764 ? pipe->CurrentProgram[MESA_SHADER_GEOMETRY]->Id : 0;
767 *params = pipe->CurrentProgram[MESA_SHADER_FRAGMENT]
768 ? pipe->CurrentProgram[MESA_SHADER_FRAGMENT]->Id : 0;
773 *params = pipe->CurrentProgram[MESA_SHADER_COMPUTE]
774 ? pipe->CurrentProgram[MESA_SHADER_COMPUTE]->Id : 0;
789 program_stages_all_active(struct gl_pipeline_object *pipe,
800 if (pipe->CurrentProgram[i]) {
801 if (prog->Id != pipe->CurrentProgram[i]->Id) {
810 pipe->InfoLog = ralloc_asprintf(pipe,
820 program_stages_interleaved_illegally(const struct gl_pipeline_object *pipe)
828 struct gl_program *cur = pipe->CurrentProgram[i];
830 /* Empty stages anywhere in the pipe are OK. Also we can be confident
841 /* We've seen an A -> B transition; look at the rest of the pipe
856 struct gl_pipeline_object *pipe)
861 pipe->Validated = GL_FALSE;
865 if (pipe->InfoLog != NULL)
866 ralloc_free(pipe->InfoLog);
868 pipe->InfoLog = NULL;
886 if (!program_stages_all_active(pipe, pipe->CurrentProgram[i])) {
903 if (program_stages_interleaved_illegally(pipe)) {
904 pipe->InfoLog =
905 ralloc_strdup(pipe,
924 if (!pipe->CurrentProgram[MESA_SHADER_VERTEX]
925 && (pipe->CurrentProgram[MESA_SHADER_GEOMETRY] ||
926 pipe->CurrentProgram[MESA_SHADER_TESS_CTRL] ||
927 pipe->CurrentProgram[MESA_SHADER_TESS_EVAL])) {
928 pipe->InfoLog = ralloc_strdup(pipe, "Program lacks a vertex shader");
947 if (pipe->CurrentProgram[i] &&
948 !pipe->CurrentProgram[i]->info.separate_shader) {
949 pipe->InfoLog = ralloc_asprintf(pipe,
952 pipe->CurrentProgram[i]->Id);
970 if (pipe->CurrentProgram[i]) {
994 if (!_mesa_sampler_uniforms_pipeline_are_valid(pipe))
1023 !_mesa_validate_pipeline_io(pipe)) {
1036 pipe->Name);
1039 pipe->Validated = GL_TRUE;
1054 struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline);
1056 if (!pipe) {
1062 _mesa_validate_program_pipeline(ctx, pipe);
1063 pipe->UserValidated = pipe->Validated;
1076 struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline);
1078 if (!pipe) {
1090 _mesa_copy_string(infoLog, bufSize, length, pipe->InfoLog);