-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Display AOVs rework #162
Display AOVs rework #162
Conversation
Thinking about it, the fact that we see a lower resolution frame earlier should mean that it's more responsive. |
…meraDepth, with a temp fallback for old scenes to be compatible (this fixes default viewports to have correct depth information and the camera tumble to work correctly) - Removed HdAovTokens->depth from ccl::PASS_MIST mapping, now it uses a custom HdCyclesAovTokens->Mist token
Doing a stress-test here @dedoardo and adding/removing a bunch of AOVs seems to work great, no crashes. It does get slower the more AOVs you load in but that's definitely to be expected, it feels fast enough with Houdini's default color+depth+normal loaded in though and we can be mindful of making custom viewport settings which don't load all AOVs at once in the default case... My little patch tweak uses ccl::PASS_DEPTH instead of ccl::PASS_MIST and we discovered it wasn't quite what Hydra expects and has a weird default of the depth value set to 100.0f instead of 1.0f (which threw off the camera tumble code in the viewport, which must use depth for camera calculations). Awesome work @dedoardo ! |
Just an update, the depth seems to work on windows but I am not sure why linux doesn't seem to work quite right yet... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you run clang-format on this patch?
Thanks for reviewing @skwerner, ran clang-format and changed the scoped lock. |
After the discussion today I am merging this for now and keeping #111 alive, making it linux specific |
This patch introduces the following changes when rendering in non-tiled mode. It requires this Cycles PR.
RenderPass::_Execute
anymore.HdRenderBuffer
.BPrim::Finalize
GetSourceName
(edit: Rethinking about it, this might not be an issue at all but indicate that the time to first pixel is lower)
One Issue is that on extremely simple scenes you can notice that the first frame displayed is lower resolution than typically. My intuition is that it is because blitting to the
HdRenderBuffer
happens exclusively with rendering and at the same time requires locking access to the Cycles Render Buffers. This hypothesis is (just partly) sustained by one performance metric. The new blitting code path is substantially faster than the one going through the device tasks, even if not fully optimized (the old code path only blitted one):copy_to_display_buffer
(Old)on_display_cb
(New)The tiled and adaptive code path could be further unified together, this is a first step.
Houdini grid overlay
Picking
Viewport AOVs