summaryrefslogtreecommitdiff
path: root/nvhw
diff options
context:
space:
mode:
authorMarcin Koƛcielnicki <koriakin@0x04.net>2016-12-19 00:01:08 +0000
committerMarcin Koƛcielnicki <koriakin@0x04.net>2016-12-19 00:01:08 +0000
commita21d89f1a7c5136bc6eba15b3106e442e6933760 (patch)
tree52b14925417abadd990c0738f68d6f92e7ec2707 /nvhw
parentfffded3a563835dc0d27fd56b564b7f836cd2316 (diff)
hwtest/nv04_pgraph: Test simple vtx methods.
Diffstat (limited to 'nvhw')
-rw-r--r--nvhw/pgraph_xy.c30
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);
}