Should probably do the same thing for ctx->FragmentProgram._Current too. Can you make that change, Jerome, and test?
-Brian Keith Whitwell wrote: > Jerome - this looks good. > > Keith > > Jerome Glisse wrote: >> Hi Keith, >> >> I have reported few days ago a bug, at least what i thought to be >> a bug in handling of _Current when you bind a new vertex program >> (all this in shader/program.c ~line 1948). I think that whenever >> _Current == Current then you should also bind new program on >> _Current and not only on Current without doing that i got an app >> which segfault with r300 driver because r300 rely on the _Current >> program (which no longuer exist in my test case). >> >> I attach a patch, maybe there is better to catch this or you may >> want to avoid program.c to take care of _Current. >> >> best, >> Jerome Glisse >> >> >> ------------------------------------------------------------------------ >> >> diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c >> index ddfad47..6db62f5 100644 >> --- a/src/mesa/shader/program.c >> +++ b/src/mesa/shader/program.c >> @@ -1947,6 +1947,8 @@ _mesa_BindProgram(GLenum target, GLuint id) >> >> /* bind newProg */ >> if (target == GL_VERTEX_PROGRAM_ARB) { /* == GL_VERTEX_PROGRAM_NV */ >> + if (ctx->VertexProgram._Current == ctx->VertexProgram.Current) >> + ctx->VertexProgram._Current = (struct gl_vertex_program *) newProg; >> ctx->VertexProgram.Current = (struct gl_vertex_program *) newProg; >> } >> else if (target == GL_FRAGMENT_PROGRAM_NV || >> @@ -1969,7 +1971,7 @@ _mesa_BindProgram(GLenum target, GLuint id) >> * \note Not compiled into display lists. >> * \note Called by both glDeleteProgramsNV and glDeleteProgramsARB. >> */ >> -void GLAPIENTRY >> +void GLAPIENTRY >> _mesa_DeletePrograms(GLsizei n, const GLuint *ids) >> { >> GLint i; > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Mesa3d-dev mailing list > Mesa3d-dev@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mesa3d-dev > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev