From: Maciej Cencora Date: Sat, 4 Jul 2009 14:52:48 +0000 (+0200) Subject: r300: operate on copy of a program when pairing instructions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=70448b9f95b4ca56526458d207a28727f71e8d3c;p=mesa.git r300: operate on copy of a program when pairing instructions We need to keep unpaired program for vertex program NQSSADCE. --- diff --git a/src/mesa/drivers/dri/r300/radeon_program_pair.c b/src/mesa/drivers/dri/r300/radeon_program_pair.c index 906d36e5226..d6fb474cf23 100644 --- a/src/mesa/drivers/dri/r300/radeon_program_pair.c +++ b/src/mesa/drivers/dri/r300/radeon_program_pair.c @@ -870,7 +870,7 @@ GLboolean radeonPairProgram(GLcontext *ctx, struct gl_program *program, _mesa_bzero(&s, sizeof(s)); s.Ctx = ctx; - s.Program = program; + s.Program = _mesa_clone_program(ctx, program); s.Handler = handler; s.UserData = userdata; s.Debug = (RADEON_DEBUG & DEBUG_PIXEL) ? GL_TRUE : GL_FALSE; @@ -904,6 +904,8 @@ GLboolean radeonPairProgram(GLcontext *ctx, struct gl_program *program, _mesa_free(s.ValuePool); _mesa_free(s.ReaderPool); + _mesa_reference_program(ctx, &s.Program, NULL); + return !s.Error; }