- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is hard to believe that Intel will release even a small piece of codes of the driver.
Intel's engineerscould investigate it and, of course, a test case will speed up the investigation. You know,
that sometimes it is not easy to reproduce a problem.
>>...Does anyone have any good suggestions as to how to investiage this?..
If the driver was built with MS Visual Studio 20xx it should have a Program Database file ( *.pdb \ PDB).
There are also PDBs for every version of Windows operating system ( check for Microsoft's website ).
In case you have both, foran operating systemand for the driver, it is a little bit easier to investigate.
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Congratulations! You've just proven that NVIDIA's statement "Never Call glFinish()" is not right in some cases. :)
Take a look at NVIDIA's "GPU Programming Guide" ( version 2.4.0 \ 2005 year ):
...
8.6.10 Never Call glFinish() 67
...
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's a good idea. Why wouldn't you try to contact somebody at Intel who are in chargefor the Intel Software Network?
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Especially Alfonse answered me perfectly.
Yes, actually reallocation is not allowed in D3D. When reallocating, I have to copy the entire buffer data from system memory to video memory. so I will reserve a proper size of video memory to store the buffer, and use glBufferSubData to update it when new primitives are added. Just like std::vector does.
Top MBA Colleges in India
Business School Ranking
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Will glBufferData leak memory?
My program looks like this
glGenBuffers(...)
glBindBuffer()
main_loop
{
glBufferData( GL_ARRAY_BUFFER , size , data , GL_DYNAMIC_DRAW );
draw
}
glDestroyBuffers(...)
As you see, the VBO will be a dynamic one. And the buffer size is always changing.
If the glBufferData will cause memory leak. Will it appear in video memory? Because I have tested it, while memory leak didn't take place in my system memory.
Thank you!
Top MBA Colleges in India
Business School Ranking
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Will glBufferData leak memory?
...
main_loop
{
glBufferData( GL_ARRAY_BUFFER , size , data , GL_DYNAMIC_DRAW );
draw
}
glDestroyBuffers(...)
As you see, the VBO will be a dynamic one. And the buffer size is always changing.
If the glBufferData will cause memory leak. Will it appear in video memory? Because I have tested it, while memory leak didn't take place in my system memory.
...
Why do you think that glBufferDatafunctioncauses some memory leaks?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If the size of the data is sufficiently small - fewer than5000 triangles, then the system appears not to leak. However, if i increase the triangle count to 10000 and continue up to 30000 the memory usage increases until the program uses 600mb.
GLfinish - was insufficient to prevent the leak.
If i add a sleep(200) after each render call, then there is no leak - but this isn't really solution. Other GPUs (nvidia, ati) are perfectly happy with sending large data arrays to the gpu.
I used glMapBuffer() instead to send the data to the vbo and this seemed to work fine without any memory leaks. I was just curious to know if the glBufferDataidea posted by Sergeyis a mistake for larger data sizesand if soshould ialways be using glMapBuffer on intel gpus.
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
question about a memory leaks.
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I apologise Sergey, I must have read the forum post too quickly. I was testing mbaupdates loop concerning glBufferData on an intel hd 3000, in a laptop and on a desktop pc. I found no memory leak on the laptop, but as number of vertices increased, the chance of a memory leak also increased on the desktop pc.
So i guess iam providingmore information on the reproducible bug with glBufferData on some intel hd 3000 cards using mbaupdates glBufferData loop.I wondered if anyone else was experiencing these problems. I fixed them with glMapBuffer, and i wondered if this was recommended practise for intel cards, or whether its a driver bug. In fact, if you don't use glBufferData and instead send the vertices using glVertexAttribPointer then you leak large chunks of memory very quickly. (unless you put a sleep in between each render call)
once again sorry for making the mistake with regard to your forum post Sergey, it was mbaupdates loop i was supposed to be referencing.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I apologise Sergey, I must have read the forum post too quickly. I was testing mbaupdates loop concerning glBufferData on an intel hd 3000, in a laptop and on a desktop pc. I found no memory leak on the laptop, but as number of vertices increased, the chance of a memory leak also increased on the desktop pc.
[SergeyK] Thank you for the response.
So i guess iam providingmore information on the reproducible bug with glBufferData on some intel hd 3000 cards using mbaupdates glBufferData loop.I wondered if anyone else was experiencing these problems. I fixed them with glMapBuffer, and i wondered if this was recommended practise for intel cards, or whether its a driver bug.
[SergeyK] Unfortunately, we still don't hear anything from Intel Software Engineers.
...
Best regards,
Sergey
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page