|
|
#1 | |
|
Registered User
Join Date: Jun 2012
Posts: 3
|
The use of glScissor when drawing into the back buffer causes the GPU memory requirement to continually increase.
Please see the attached simple OpenGL program glxtest.c. It is run using ./glxtest.exe (ibufse) (iscissor) in which ibufse=1: draw to front buffer ibufse=2: draw to back buffer iscissor=0: do not scissor when clearing iscissor=1: scissor when clearing ./glxtest.exe 2 1 draws to the back buffer repeately, scissoring when clearing the screen. Observe that GPU_MEMORY_INFO_CURRENT_AVAILABLE_MEMORY_NVX continually decreases. The memory of the process reported by 'top' also continually increases. If I don't scissor ./glxtest.exe 2 0 or if I scissor into the front buffer ./glxtest.exe 1 1 then the memory doesn't increase. I am running Red Hat Enterprise Linux 5 (kernel 2.6.18-8.e15) on an x86_64 platform. Driver: NVIDIA 295.53, as downloaded from the NVIDIA website. Graphics card: QUADRO FX 570, 256 MB memory. I have attached nvidia-bug-report.log.gz. Is this memory increase a bug in the NVIDIA drivers for Linux? If so, should I report the bug directly to NVIDIA? Thank you. Last edited by tdsussman; 06-08-12 at 04:12 PM. Reason: more information |
|
|
|
|
|
|
#2 | |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
Does the problem go away if you add a glFinish() or a SwapBuffers in your rendering loop? It's possible that your rendering requests are simply queuing up more work faster than the GPU can process it.
|
|
|
|
|
|
|
#3 | |
|
Registered User
Join Date: Jun 2012
Posts: 3
|
Quote:
The problem goes away if the entire back buffer is cleared by glClear. But if the glClear is removed, or if the glClear doesn't clear the entire back buffer (because of the scissoring), then the problem is present. |
|
|
|
|
|
|
#4 | |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
Okay. Can you please either repost the test with the glFinish in place or provide a patch to make sure I add it to exactly the same place you did, for testing?
|
|
|
|
|
|
|
#5 |
|
Registered User
Join Date: Jun 2012
Posts: 3
|
Hello Aaron,
I have reposted glxtest.zip. Note that there is a call to "gerror" after every OpenGL call, and gerror calls glFinish. So glFinish is called after every OpenGL call. The memory increase is still present when drawing to the back buffer, when the back buffer is not completely cleared by glClear. |
|
|
|
|
|
#6 | |
|
Registered User
Join Date: Jun 2008
Posts: 14
|
I see the same results using tdsussman's example with a Quadro FX 5800 , and I see a similar leak in my application, though I don't have the scissor test enabled.
tdsussman: have you found a workaround? Thanks. |
|
|
|
|
![]() |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| nvidia: Adobe's own David Helmly gives Quadro GPU suggestions to get the most out of | News | Latest Tech And Game Headlines | 0 | 05-29-12 05:40 PM |
| Choosing The Right GPU To Take Adobe Workflows To The Max | News | Latest Tech And Game Headlines | 0 | 05-29-12 05:40 PM |
| Measuring card memory usage | peter_ga | NVIDIA Linux | 0 | 05-24-12 08:07 PM |
| New GPU from Nvidia Announced Today, the GeForce GTX 670 | News | Latest Tech And Game Headlines | 0 | 05-10-12 01:50 PM |