GL_OCCLUSION_TEST_HP = frustum culling ?

Idont think that GL_OCCLUSION_TEST_HP or the nvidia or ARB extension will work. The reason is that the test itself fails many times. The only thing that this tests promises is that objects which are visible always return true.
I have personaly tested the accuracy of a GeforceFX 5200 MX and found that all this test was good for was as a costly version of the frustum culling.
I do not think that test is even useful, even ignoring speed issues.
What I used to evaluate the test was binary tree using with front to back rendering using GL_OCCLUSION_TEST_HP. In a binary tree it doesnt make much difference if the test is fast it only needs to be accurate.
I checked my resulst by rendering all parts of the binary tree using wireframe and calculating the number of polygons clipped.
What I found that it managed perhaps to eliminate half of all polygons and the test basicaly failed to clip distant polygons. The only thing this test clipped appeared to be polygons that would have failed a frustum culling test.
My advice would be to skip that test, at least on my hardware it failed completely to be of practical use.
Has anyone else done a similar test on another GPU ? maybe the GeforceFX MX 5200 has a poor implementation of the extension ?

I’ve tried the ARB extension and also my own software rendered solution, using SSE instructions to render 4 pixels at a time. For the city scene I’m rendering, the ARB extension was completely unusable on my Radeon 9700 Pro (about 1/4 of the frame rate). The sw solution OTOH worked incredibly well.

Some details:
http://www.gamedev.net/community/forums/topic.asp?topic_id=209249

[This message has been edited by bunny (edited 02-28-2004).]

Originally posted by rolfstenholm:
the test itself fails many times.

I’ve used the ARB/NV versions extensively and they work 100% as advertised on my 5900u.

I’ve seen the NV extension run on Radeon 9000/9700 and on GF 3/4/FX and all worked exactly as intended. If you’re not getting the results or the performance you expected, check your code. If the hints given earlier in this thread don’t suffice, try searching these forums – there’s been plenty of discussion on the proper usage patterns of occlusion queries.

– Tom