Mesa (7.8): r300/compiler: fix assertion failure in the r500-fragprog emission path

Marek Olšák mareko at kemper.freedesktop.org
Sat Mar 20 10:55:40 PDT 2010


Module: Mesa
Branch: 7.8
Commit: 3d72c4ae78cfdad7d160b0960adb792cbbbb863b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d72c4ae78cfdad7d160b0960adb792cbbbb863b

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Mar 20 18:31:11 2010 +0100

r300/compiler: fix assertion failure in the r500-fragprog emission path

---

 .../drivers/dri/r300/compiler/r500_fragprog_emit.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
index 710cae7..4e84eef 100644
--- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
+++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
@@ -469,9 +469,8 @@ void r500BuildFragmentProgramHwCode(struct r300_fragment_program_compiler *compi
 	if (compiler->Base.Error)
 		return;
 
-	assert(code->inst_end >= 0);
-
-	if ((code->inst[code->inst_end].inst0 & R500_INST_TYPE_MASK) != R500_INST_TYPE_OUT) {
+	if (code->inst_end == -1 ||
+	    (code->inst[code->inst_end].inst0 & R500_INST_TYPE_MASK) != R500_INST_TYPE_OUT) {
 		/* This may happen when dead-code elimination is disabled or
 		 * when most of the fragment program logic is leading to a KIL */
 		if (code->inst_end >= 511) {



More information about the mesa-commit mailing list