PDA

View Full Version : Display Lists Disappearing?



Carmine
12-26-2014, 03:13 PM
I have a scene which can be viewed through 4 different cameras. I can look at all 4 views at once in split screen mode. Or, I can make any of the individual views full screen. The scene is about to grow from a few hundred polygons to ~500,000. So I'm trying to implement display lists to render some of the objects in the scene. It's almost working. The display lists render o.k. if I'm in split screen mode (4 camera views), or if I go from split screen to one screen. However, if I stay in one-screen mode, the display lists disappear when I change camera views. It seems like they're going out of scope in some way. Is this possible? I know it's a long shot that anyone on this forum has had this problem. But I thought I'd throw it out there anyway since I've spent a day working on this. Thanks.

Dark Photon
12-26-2014, 06:59 PM
No, unless you're deleting the display lists, they won't just "go away". They're still there in the driver. Something else is probably going on.

By "the display lists disappear" I assume you mean that the objects you have baked into display lists stop rendering the way you think they should, not that you start getting GL errors because your display list handles have disappeared.

First check for GL errors; make sure there are none. Then make sure what you're doing works consistently without display lists. Look closely at your MODELVIEW and PROJECTION transforms to ensure they're correct. Turn off backface culling, and enable wireframe; that might help you figure out what's going on with your object rendering. Verify that you don't have any state that you've set which needs to be reset or set differently elsewhere. If you come up with any specific questions you can't answer, just post them here. Ideally, post a short standalone test program that illustrates your problem/question.

(NOTE: Just FYI, display lists were deprecated from the GL core spec a while back, but are still available in the GL compatibility spec and available via a default GL context creation. Unless you're a GL core purest, I'd just use them anyway, because trying to match the awesome batch dispatch performance you can get with them requires a good bit of GL knowledge and often use of vendor-specific extensions. That said, 500k tris/frameis childs play for modern GPUs, unless you have really complex shading, or lots of state changes (in which case you may be CPU limited)).

Carmine
12-27-2014, 11:58 AM
By "the display lists disappear" I assume you mean that the objects you have baked into display lists stop rendering the way you think they should, not that you start getting GL errors because your display list handles have disappeared. The objects either render correctly, or not at all. When they don't show up there is some small corruption to characters strings that appear near where missing objects should be.


First check for GL errors; make sure there are none. Just looked into this. No GL errors are being reported.


Then make sure what you're doing works consistently without display lists.I've already done this. The code works correctly without Display Lists.


Verify that you don't have any state that you've set which needs to be reset or set differently elsewhere. This is where I think (hope?) the problem lies.


If you come up with any specific questions you can't answer, just post them here. Ideally, post a short standalone test program that illustrates your problem/question.

Just put my full rez model into the scene (552,000 polygons). Even without using Display Lists, display rates aren't as bad as I expected. However, I will pursue DLs or VAOs next week.