diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-12-19 00:01:08 +0000 |
---|---|---|
committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-12-19 00:01:08 +0000 |
commit | a21d89f1a7c5136bc6eba15b3106e442e6933760 (patch) | |
tree | 52b14925417abadd990c0738f68d6f92e7ec2707 /nvhw | |
parent | fffded3a563835dc0d27fd56b564b7f836cd2316 (diff) |
hwtest/nv04_pgraph: Test simple vtx methods.
Diffstat (limited to 'nvhw')
-rw-r--r-- | nvhw/pgraph_xy.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/nvhw/pgraph_xy.c b/nvhw/pgraph_xy.c index b55153eb..e2218280 100644 --- a/nvhw/pgraph_xy.c +++ b/nvhw/pgraph_xy.c @@ -359,17 +359,27 @@ void pgraph_bump_vtxid(struct pgraph_state *state) { } int vtxid = extr(state->xy_a, 28, 4); vtxid++; - if (class == 0x0b) { - if (vtxid == 3) - vtxid = 0; - } else if (class == 0x10 || class == 0x14) { - if (vtxid == 4) - vtxid = 0; - } else if (nv01_pgraph_is_tex_class(state)) { - if (vtxid == 3 + nv01_pgraph_use_v16(state)) - vtxid = 0; + if (state->chipset.card_type < 4) { + if (class == 0x0b) { + if (vtxid == 3) + vtxid = 0; + } else if (class == 0x10 || class == 0x14) { + if (vtxid == 4) + vtxid = 0; + } else if (nv01_pgraph_is_tex_class(state)) { + if (vtxid == 3 + nv01_pgraph_use_v16(state)) + vtxid = 0; + } else { + vtxid &= 1; + } } else { - vtxid &= 1; + if (class == 0x1d || class == 0x5d) { + if (vtxid == 3) + vtxid = 0; + } else if (class == 0x1f || class == 0x5f || class == 0x9f) { + if (vtxid == 4) + vtxid = 0; + } } insrt(state->xy_a, 28, 4, vtxid); } |