summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/nvc0/nvc0_pc_emit.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_pc_emit.c b/src/gallium/drivers/nvc0/nvc0_pc_emit.c
index 4edbdb22e5..6735f93fd3 100644
--- a/src/gallium/drivers/nvc0/nvc0_pc_emit.c
+++ b/src/gallium/drivers/nvc0/nvc0_pc_emit.c
@@ -153,10 +153,15 @@ set_immd_u32(struct nv_pc *pc, uint32_t u32)
{
if ((pc->emit[0] & 0xf) == 0x2) {
set_immd_u32_l(pc, u32);
+ } else
+ if ((pc->emit[0] & 0xf) == 0x3) {
+ assert(!(pc->emit[1] & 0xc000));
+ pc->emit[1] |= 0xc000;
+ assert(!(u32 & 0xfff00000));
+ set_immd_u32_l(pc, u32);
} else {
assert(!(pc->emit[1] & 0xc000));
pc->emit[1] |= 0xc000;
-
assert(!(u32 & 0xfff));
set_immd_u32_l(pc, u32 >> 12);
}