Mesa (7.8): r300: clean fog_attr/ wpos_attr if code accessing these attributes has been removed FP during compilation
Maciej Cencora
osiris at kemper.freedesktop.org
Wed Mar 24 19:29:07 UTC 2010
Module: Mesa
Branch: 7.8
Commit: 70929f4505d5cb1b9848a02e8359e9f7a8ef598c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=70929f4505d5cb1b9848a02e8359e9f7a8ef598c
Author: Maciej Cencora <m.cencora at gmail.com>
Date: Sun Mar 21 11:19:02 2010 +0100
r300: clean fog_attr/wpos_attr if code accessing these attributes has been removed FP during compilation
---
src/mesa/drivers/dri/r300/r300_fragprog_common.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
index 61ea5e4..0646da4 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
@@ -256,6 +256,19 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog
fp->InputsRead = compiler.Base.Program.InputsRead;
+ /* Clear the fog/wpos_attr if code accessing these
+ * attributes has been removed during compilation
+ */
+ if (fp->fog_attr != FRAG_ATTRIB_MAX) {
+ if (!(fp->InputsRead & (1 << fp->fog_attr)))
+ fp->fog_attr = FRAG_ATTRIB_MAX;
+ }
+
+ if (fp->wpos_attr != FRAG_ATTRIB_MAX) {
+ if (!(fp->InputsRead & (1 << fp->wpos_attr)))
+ fp->wpos_attr = FRAG_ATTRIB_MAX;
+ }
+
rc_destroy(&compiler.Base);
}
More information about the mesa-commit
mailing list