From 84d170bbcef8e26017ac8e2f3bacbaeb20f889d3 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Wed, 15 Sep 2010 15:21:41 +0200 Subject: [PATCH] nv50: put low limit on REG_ALLOC_TEMP and FP_RESULT_COUNT --- src/gallium/drivers/nv50/nv50_pc.c | 4 ++-- src/gallium/drivers/nv50/nv50_program.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/nv50/nv50_pc.c b/src/gallium/drivers/nv50/nv50_pc.c index 2706d88..bb464ec 100644 --- a/src/gallium/drivers/nv50/nv50_pc.c +++ b/src/gallium/drivers/nv50/nv50_pc.c @@ -539,8 +539,8 @@ nv50_generate_code(struct nv50_translation_info *ti) ti->p->immd_size = pc->immd_count * 4; ti->p->immd = pc->immd_buf; - /* highest 16 bit reg to num of 32 bit regs */ - ti->p->max_gpr = (pc->max_reg[NV_FILE_GPR] >> 1) + 1; + /* highest 16 bit reg to num of 32 bit regs, limit to >= 4 */ + ti->p->max_gpr = MAX2(4, (pc->max_reg[NV_FILE_GPR] >> 1) + 1); ti->p->fixups = pc->fixups; ti->p->num_fixups = pc->num_fixups; diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 24952f7..b3600f7 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -514,6 +514,9 @@ nv50_fragprog_prepare(struct nv50_translation_info *ti) if (depr < p->out_nr) { p->out[depr].mask = 0x4; p->out[depr].hw = ti->output_map[depr][2] = p->max_out++; + } else { + /* allowed values are 1, 4, 5, 8, 9, ... */ + p->max_out = MAX2(4, p->max_out); } return 0; -- 2.7.4