| View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||
| 0003924 | ParaView | (No Category) | public | 2006-10-11 14:34 | 2016-08-12 09:57 | ||||
| Reporter | Ken Moreland | ||||||||
| Assigned To | Utkarsh Ayachit | ||||||||
| Priority | normal | Severity | major | Reproducibility | always | ||||
| Status | closed | Resolution | moved | ||||||
| Platform | OS | OS Version | |||||||
| Product Version | |||||||||
| Target Version | Fixed in Version | ||||||||
| Summary | 0003924: Render Window images need to be cached | ||||||||
| Description | I have noticed that when one of the render windows needs to be updated but none of the view parameters changed, a full rerender is performed. This occurs, for example, when one of the docable windows or a window from another application is dragged over the display. This can cause the whole window system to slow down. Rather than redraw the image, the last rendered image should be cached and redrawn over the window. The QVTKWidget already has this ability. We just need to enable it. | ||||||||
| Tags | No tags attached. | ||||||||
| Project | |||||||||
| Topic Name | |||||||||
| Type | |||||||||
| Attached Files | |||||||||
| Relationships | |
| Relationships |
| Notes | |
|
(0005368) Berk Geveci (administrator) 2006-10-12 10:35 |
Do this in November if easy. Otherwise, we may postpone it to later. |
|
(0005464) Clinton Stimpson (developer) 2006-10-18 18:52 |
/cvsroot/ParaView3/ParaView3/Qt/Core/pqRenderModule.cxx,v <-- pqRenderModule.cxx new revision: 1.17; previous revision: 1.16 Fixed (one liner) |
|
(0005465) Clinton Stimpson (developer) 2006-10-18 18:56 |
backed out. QVTKWidget has an issue. |
|
(0005585) Clinton Stimpson (developer) 2006-10-27 19:01 |
Fixing bug 3995 will allow us to turn this image caching on and have it work correctly on X11. I guess it already works fine on Windows & Mac. |
|
(0005682) Clinton Stimpson (developer) 2006-11-08 16:14 |
Looked into this some more.... And did some measurements on it in the context of ParaView3. For a test case I did, I got a real low 5% cache hit rate. It is saving lots of images during interaction that end up getting thrown away. And sometimes when the cache is reused, the image is too old, and we get incorrect results. For example, in the display panel, I hit the checkbox to toggle the visibility, and the screen remains unchanged because it reused the cache. In ParaView3, we prefer QVTKWidget::update() over vtkRenderWindow::Render() for performance reasons. If vtkRenderWindow::Render() were called instead, the cache would always be correct, but we'd never re-use the cache because re-using it is handled by the QVTKWidget. If we called QVTKWidget::paintEvent(), the cache is re-used, but it the image may be too old. We need to do some re-thinking here. |
|
(0005687) Clinton Stimpson (developer) 2006-11-09 14:47 |
just so I remember, attached is patch.txt which checks the MTime of the renderers for modifications. That works fine for tracking some model modifications. But the cache is still incorrectly reused when the visibility of a source is changed. |
|
(0005723) Clinton Stimpson (developer) 2006-11-15 14:51 |
Ok, finally fixed. /cvsroot/ParaView3/ParaView3/Qt/Core/pqRenderModule.cxx,v <-- pqRenderModule.cxx new revision: 1.20; previous revision: 1.19 QVTKWidget needs help knowing when the cache is dirty. |
|
(0005744) Ken Moreland (manager) 2006-11-20 15:24 |
This almost works. There is one issue I found on my Windows machine where if another window happens to be over the render window when the render occurs, that window is grabbed in the image cache. This is easy to replicate. Un-dock one of the dockable windows and place it over the view. Then move the camera to make a new render. Now move the dockable window a bit. You will see it still drawn in the old location. |
|
(0005745) Clinton Stimpson (developer) 2006-11-20 16:49 |
I don't know how to fix that. Qt or VTK don't give me the information necessary to know whether the image saved is partly occuluded. A render server should have an unoccluded image. Can we just have the render server or server manager put the image back? |
|
(0007267) Berk Geveci (administrator) 2007-04-13 08:56 |
I enabled this feature on OS X. It works there because OpenGL buffers are always valid even when they are rendered behind a window. We can also get this working well if: * Compositing is on and we cache the image before putting it on screen * Hardware accelerated offscreen rendering is supported (framebuffers) and we always render still frames offscreen and paste as texture * Compiled with offscreen Mesa We should probably turn caching off for all other cases. |
|
(0011097) Berk Geveci (administrator) 2008-04-07 12:01 |
Ken, Can you create a detailed design document on things we want caching to accomplish? We will reevaluate in the future. |
|
(0011098) Clinton Stimpson (developer) 2008-04-07 12:09 |
I thought it was a way to take a shortcut when getting an expose event from the window system (the scene doesn't change). Above, the feature was enabled on OS X, which I think is redundent because OS X doesn't produce expose events. The Window manager does caching already for us. |
|
(0037503) Kitware Robot (administrator) 2016-08-12 09:57 |
Resolving issue as `moved`. This issue tracker is no longer used. Further discussion of this issue may take place in the current ParaView Issues page linked in the banner at the top of this page. |
| Notes |
| Issue History | |||
| Date Modified | Username | Field | Change |
| 2007-08-13 14:13 | Berk Geveci | Note Deleted: 0008176 | |
| 2007-08-13 14:19 | Berk Geveci | Priority | high => normal |
| 2007-08-13 14:19 | Berk Geveci | Status | backlog => tabled |
| 2008-04-07 12:01 | Berk Geveci | Note Added: 0011097 | |
| 2008-04-07 12:01 | Berk Geveci | Assigned To | Berk Geveci => Ken Moreland |
| 2008-04-07 12:01 | Berk Geveci | Category | => 3.4 |
| 2008-04-07 12:09 | Clinton Stimpson | Note Added: 0011098 | |
| 2008-04-14 14:23 | Ken Moreland | Category | 3.4 => 3.6 |
| 2009-02-16 14:40 | Ken Moreland | Category | 3.6 => 3.8 |
| 2009-05-13 13:42 | Utkarsh Ayachit | Target Version | => 3.8 |
| 2010-12-10 13:43 | Dave DeMarle | Assigned To | Ken Moreland => Utkarsh Ayachit |
| 2010-12-10 13:43 | Dave DeMarle | Status | tabled => @20@ |
| 2011-06-16 13:10 | Zack Galbreath | Category | => (No Category) |
| 2016-08-12 09:57 | Kitware Robot | Note Added: 0037503 | |
| 2016-08-12 09:57 | Kitware Robot | Status | expired => closed |
| 2016-08-12 09:57 | Kitware Robot | Resolution | reopened => moved |
| Issue History |
| Copyright © 2000 - 2018 MantisBT Team |