From b19cb627e002ec06dc92ab42c8107a3e34f2d181 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 4 Feb 2004 15:44:53 +0000 Subject: [PATCH] fix stores to vertex state program registers --- src/mesa/main/nvvertexec.c | 12 ++++++++++-- src/mesa/main/nvvertparse.c | 8 +++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/mesa/main/nvvertexec.c b/src/mesa/main/nvvertexec.c index fd1519e9a87..9663b38157d 100644 --- a/src/mesa/main/nvvertexec.c +++ b/src/mesa/main/nvvertexec.c @@ -1,6 +1,6 @@ /* * Mesa 3-D graphics library - * Version: 6.0 + * Version: 6.0.1 * * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. * @@ -326,8 +326,16 @@ store_vector4( const struct vp_dst_register *dest, case PROGRAM_OUTPUT: dst = state->Outputs[dest->Index]; break; + case PROGRAM_ENV_PARAM: + { + /* a slight hack */ + GET_CURRENT_CONTEXT(ctx); + dst = ctx->VertexProgram.Parameters[dest->Index]; + } + break; default: - _mesa_problem(NULL, "Invalid register file in fetch_vector1(vp)"); + _mesa_problem(NULL, "Invalid register file in store_vector4(file=%d)", + dest->File); return; } diff --git a/src/mesa/main/nvvertparse.c b/src/mesa/main/nvvertparse.c index 15451adc71f..bacf5a5af3b 100644 --- a/src/mesa/main/nvvertparse.c +++ b/src/mesa/main/nvvertparse.c @@ -1,8 +1,8 @@ /* * Mesa 3-D graphics library - * Version: 5.1 + * Version: 6.0.1 * - * Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -578,8 +578,10 @@ Parse_MaskedDstReg(struct parse_state *parseState, struct vp_dst_register *dstRe if (!Parse_OutputReg(parseState, &dstReg->Index)) RETURN_ERROR; } - else if (parseState->isStateProgram && token[0] == 'c') { + else if (parseState->isStateProgram && token[0] == 'c' && + parseState->isStateProgram) { /* absolute program parameter register */ + /* Only valid for vertex state programs */ dstReg->File = PROGRAM_ENV_PARAM; if (!Parse_AbsParamReg(parseState, &dstReg->Index)) RETURN_ERROR; -- 2.30.2