From: Ross G. M. <rg...@cs...> - 2002-04-16 18:47:57
|
Hey All, I've been messing around with using Mesa to render some pretty large scenes (on the order of 2 million polygons) and I've bumped into a bit of a problem. If I render the scene without using display lists, then top reports the program using abou 150 megs of ram. (This includes the entire scene description plus whatever buffers Mesa and Glut need to display the scene.) This isn't great, but I can live with it. The problem comes when I try to use display lists: The memory consumption shoots up to well over a gigabyte. This comes out to around 500 bytes for every polygon stored in the list. Does this sound about right? Is there any way I can reduce it some? Thanks, -Ross |
From: Keith W. <ke...@tu...> - 2002-04-16 19:34:51
|
"Ross G. Miller" wrote: > > Hey All, > I've been messing around with using Mesa to render some pretty large > scenes (on the order of 2 million polygons) and I've bumped into a bit of > a problem. If I render the scene without using display lists, then top > reports the program using abou 150 megs of ram. (This includes the > entire scene description plus whatever buffers Mesa and Glut need to > display the scene.) This isn't great, but I can live with it. > The problem comes when I try to use display lists: The memory > consumption shoots up to well over a gigabyte. This comes out to around > 500 bytes for every polygon stored in the list. Does this sound about > right? Is there any way I can reduce it some? Can you get that down to a per-vertex figure? Which version of mesa are you using? Yes, it is probably possible to reduce that by quite a bit by reducing the number of texture units supported. Keith |
From: Ross G. M. <rg...@cs...> - 2002-04-16 21:47:07
|
On Tue, 16 Apr 2002, Keith Whitwell wrote: > "Ross G. Miller" wrote: > > > > The problem comes when I try to use display lists: The memory > > consumption shoots up to well over a gigabyte. This comes out to around > > 500 bytes for every polygon stored in the list. Does this sound about > > right? Is there any way I can reduce it some? > > Can you get that down to a per-vertex figure? I've been using GL_TRIANGLE_FAN, most of the time with 4 triangles per fan, though some have 5 or 6. I don't how display lists handle the common vertices. If the list always stores 3 vertices per triangle than we're talking about roughly 167 bytes per vertex. If the list only stores the common vertices once, then it's more like 400 bytes per vertex. (5 unique vertices for a 4-triangle fan: 500 * 4 / 5 = 400) > > Which version of mesa are you using? Woops - forgot to mention that. 4.02 > > Yes, it is probably possible to reduce that by quite a bit by reducing the > number of texture units supported. > I'm not using textures for this project, so I would hope there's no texture info being stored in the list. (I suppose I should check on this though. Is there a glDisable() call for texture support?) -Ross |
From: Brian P. <br...@tu...> - 2002-04-16 22:51:01
|
"Ross G. Miller" wrote: > > On Tue, 16 Apr 2002, Keith Whitwell wrote: > > > "Ross G. Miller" wrote: > > > > > > The problem comes when I try to use display lists: The memory > > > consumption shoots up to well over a gigabyte. This comes out to around > > > 500 bytes for every polygon stored in the list. Does this sound about > > > right? Is there any way I can reduce it some? > > > > Can you get that down to a per-vertex figure? > > I've been using GL_TRIANGLE_FAN, most of the time with 4 triangles per > fan, though some have 5 or 6. I don't how display lists handle the common > vertices. If the list always stores 3 vertices per triangle than we're > talking about roughly 167 bytes per vertex. If the list only stores the > common vertices once, then it's more like 400 bytes per vertex. (5 > unique vertices for a 4-triangle fan: 500 * 4 / 5 = 400) > > > > > Which version of mesa are you using? > > Woops - forgot to mention that. 4.02 > > > > > Yes, it is probably possible to reduce that by quite a bit by reducing the > > number of texture units supported. > > > I'm not using textures for this project, so I would hope there's no > texture info being stored in the list. (I suppose I should check on this > though. Is there a glDisable() call for texture support?) No, not in a way that'll help this problem. The problem is that the data structure we use for vertex data within display lists isn't as space-efficient as it could be. The problem actually got worse in Mesa 3.5 when we increased the number of texture units to 8. It's worse still in Mesa 4.1 where we support the GL_NV_vertex_program extension. I think this is something we may try to address before 4.1 is finished. -Brian |
From: Taura M. <le...@fu...> - 2002-04-17 03:59:10
|
> The problem is that the data structure we use for vertex data within > display lists isn't as space-efficient as it could be. The problem > actually got worse in Mesa 3.5 when we increased the number of texture > units to 8. It's worse still in Mesa 4.1 where we support the > GL_NV_vertex_program extension. > > I think this is something we may try to address before 4.1 is finished. > > -Brian Hi Brian, Say, what about making a compile time directive for a "lite version" of Mesa? That is to use a preset set of compile time definations that would minimize the size of the structures (and also limit some features) at the gain of speed and memory? Remeber your suggestion of MAX_TEXTURE_UNITS? -- Sincerely, ,"-_ \|/ -Capt. Taura M. , O=__ --X-- ..__ ,_JNMNNEO=_ /|\ OMNOUMmnne. {OMMNNNEEEEOO=_ UOOOBIOOOEOMMn. 'LONMMMMNNEEEOOO=.__..,,.. UUOOEUUOOOOOOOObe '"=OMMMMWNEEEOOOOO,"=OEEEOO=,._ OOUUUIEEIOONNOIUbe. "7OMMMMNNNNNWWEEEEOOOOOO" "'. EEBNNMMMNWNWWEEIMMNe. __ 7EMMMNNNNNWWWEEEEEEEOO. " . NNMMMMWWWMMMWEINMMMNn "=BBEEEEMMMMMMMMNNNWWWEEOOOOO=._ . http://furry.ao.net/~learfox/ |
From: Brian P. <br...@tu...> - 2002-04-17 14:32:52
|
Taura Milana wrote: > > > The problem is that the data structure we use for vertex data within > > display lists isn't as space-efficient as it could be. The problem > > actually got worse in Mesa 3.5 when we increased the number of texture > > units to 8. It's worse still in Mesa 4.1 where we support the > > GL_NV_vertex_program extension. > > > > I think this is something we may try to address before 4.1 is finished. > > > > -Brian > > Hi Brian, > > Say, what about making a compile time directive for a > "lite version" of Mesa? That is to use a preset set of > compile time definations that would minimize the size of > the structures (and also limit some features) at the gain > of speed and memory? > > Remeber your suggestion of MAX_TEXTURE_UNITS? That's not really a good solution. Many people have Mesa or Mesa- based DRI drivers on their systems that they can't easily recompile in order to reduce memory usage for particular applications. I think everyone will be happier if we just redo the display list code. -Brian |
From: Keith W. <ke...@tu...> - 2002-04-17 08:09:13
|
Brian Paul wrote: > > "Ross G. Miller" wrote: > > > > On Tue, 16 Apr 2002, Keith Whitwell wrote: > > > > > "Ross G. Miller" wrote: > > > > > > > > The problem comes when I try to use display lists: The memory > > > > consumption shoots up to well over a gigabyte. This comes out to around > > > > 500 bytes for every polygon stored in the list. Does this sound about > > > > right? Is there any way I can reduce it some? > > > > > > Can you get that down to a per-vertex figure? > > > > I've been using GL_TRIANGLE_FAN, most of the time with 4 triangles per > > fan, though some have 5 or 6. I don't how display lists handle the common > > vertices. If the list always stores 3 vertices per triangle than we're > > talking about roughly 167 bytes per vertex. If the list only stores the > > common vertices once, then it's more like 400 bytes per vertex. (5 > > unique vertices for a 4-triangle fan: 500 * 4 / 5 = 400) > > > > > > > > Which version of mesa are you using? > > > > Woops - forgot to mention that. 4.02 > > > > > > > > Yes, it is probably possible to reduce that by quite a bit by reducing the > > > number of texture units supported. > > > > > I'm not using textures for this project, so I would hope there's no > > texture info being stored in the list. (I suppose I should check on this > > though. Is there a glDisable() call for texture support?) > > No, not in a way that'll help this problem. > > The problem is that the data structure we use for vertex data within > display lists isn't as space-efficient as it could be. The problem > actually got worse in Mesa 3.5 when we increased the number of texture > units to 8. It's worse still in Mesa 4.1 where we support the > GL_NV_vertex_program extension. > > I think this is something we may try to address before 4.1 is finished. I'm keen to address this before 4.1. The approach I'm thinking of is pretty straightforward and based on a port of the native begin/end engine I've written for the radeon driver. This will have the ability to store the minimal amount of data per vertex according to what the user is sending us... Keith |
From: Taura M. <le...@fu...> - 2002-04-17 04:00:24
|
On 2002.04.16 14:46 Ross G. Miller wrote: > I've been using GL_TRIANGLE_FAN, most of the time with 4 triangles per > fan, though some have 5 or 6. I don't how display lists handle the > common > vertices. If the list always stores 3 vertices per triangle than we're > talking about roughly 167 bytes per vertex. If the list only stores the > common vertices once, then it's more like 400 bytes per vertex. (5 > unique vertices for a 4-triangle fan: 500 * 4 / 5 = 400) Hi, I'm also plagued by the memory use of the 4.0.x series, I also noticed that you can reduce the MAX_TEXTURE_UNITS to 3 or something (what was the recommended small value, Brian?) like that. But as for per vertex issues, I hadn't looked into that just yet but I suspect it's increased too. > > > > Which version of mesa are you using? > > Woops - forgot to mention that. 4.02 4.0.2 right? I think that is what I am using too. -- Sincerely, ,"-_ \|/ -Capt. Taura M. , O=__ --X-- ..__ ,_JNMNNEO=_ /|\ OMNOUMmnne. {OMMNNNEEEEOO=_ UOOOBIOOOEOMMn. 'LONMMMMNNEEEOOO=.__..,,.. UUOOEUUOOOOOOOObe '"=OMMMMWNEEEOOOOO,"=OEEEOO=,._ OOUUUIEEIOONNOIUbe. "7OMMMMNNNNNWWEEEEOOOOOO" "'. EEBNNMMMNWNWWEEIMMNe. __ 7EMMMNNNNNWWWEEEEEEEOO. " . NNMMMMWWWMMMWEINMMMNn "=BBEEEEMMMMMMMMNNNWWWEEOOOOO=._ . http://furry.ao.net/~learfox/ |