}
}
-static unsigned mask_count[0x8] =
+static unsigned mask_count[16] =
{
0, /* 0x0 */
1, /* 0x1 */
2, /* 0x5 */
2, /* 0x6 */
3, /* 0x7 */
+ 1, /* 0x8 */
+ 2, /* 0x9 */
+ 2, /* 0xa */
+ 3, /* 0xb */
+ 2, /* 0xc */
+ 3, /* 0xd */
+ 3, /* 0xe */
+ 4, /* 0xf */
};
qs->softpipe->depth_stencil->depth.writemask)
write_depth_stencil_values(&data, quads[i]);
- qs->softpipe->occlusion_count += mask_count[quads[i]->inout.mask];
quads[pass++] = quads[i];
}
nr = pass;
}
+ if (qs->softpipe->active_query_count) {
+ for (i = 0; i < nr; i++)
+ qs->softpipe->occlusion_count += mask_count[quads[i]->inout.mask];
+ }
+
if (nr)
qs->next->run(qs->next, quads, nr);
}
boolean depthwrite = qs->softpipe->depth_stencil->depth.writemask;
+ boolean occlusion = qs->softpipe->active_query_count;
+
if (!alpha &&
!depth &&
interp_depth &&
depth &&
depthwrite &&
+ !occlusion &&
!stencil)
{
switch (depthfunc) {