From: Brian P. <bri...@tu...> - 2007-10-31 15:55:21
|
Zou Nan hai wrote: > On Mon, 2007-10-29 at 23:58, Brian Paul wrote: >> Nan hai Zou wrote: >> >> [... git check-in info ...] >> >> Nan, >> >> Since you've merged the i965 GLSL support into Mesa/master, can you >> summarize what state it's in? Is it fully functional, or are there some >> unfinished bits? >> >> In any case, it's great to have this! >> >> I've found one problem, however. In shader/program.c in >> _mesa_new_shader() you added a call to ctx->Driver.NewProgram(): >> >> struct gl_program * >> _mesa_new_program(GLcontext *ctx, GLenum target, GLuint id) >> { >> if (ctx->Driver.NewProgram) >> return ctx->Driver.NewProgram(ctx, target, id); >> [...] >> >> >> This causes infinite recursive calls with software drivers since >> ctx->Driver.NewProgram is initialized to point to _mesa_new_program(). >> >> I'm going to disable this code. Let me know what problem you were >> trying to fix with this change. >> >> -Brian > > Hi Brain, > The state of glsl on 965 is that it is functional. > I have run the glean glsl test. 168 test passed except 1 case that do > texture sampling in vertex shader failed. > > The programs in prog/glsl/ works except the noise program. > > I am adding the Driver.NewProgram call is because 965 driver attach > some field after the brw_vertex/fragment_program field, Not sure I understand what you're saying. Can you explain? > but mesa core > only allocate sizeof(brw_vertex/fragment_program), so I have to call > driver specific allocate function How is _mesa_new_program() getting called? It shouldn't be used at all with the i965 driver. -Brian |