Skip to content
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

HdLight::Sync may pass HdChangeTracker::DirtyVisibility in dirtyBits #1719

Closed
marktucker opened this issue Dec 16, 2021 · 4 comments
Closed

Comments

@marktucker
Copy link
Contributor

Description of Issue

Given the existence of HdLight::AllDirty, it seems like only bits in HdLight should even show up in the dirtyBits passed to HdLight::Sync. But HdDirtyBitsTranslator::SprimLocatorSetToDirtyBits can add HdChangeTracker::DirtyVisibility to the dirtyBits for an HdLight. I would expect an HdLight-specific dirty bit for visibility, or at least a clearer indication that the Sync call may receive non-HdLight dirty bits? This seems to be new in 21.11 (I believe this bit wasn't being set in 21.08).

Steps to Reproduce

  1. Use hydra to render a USD scene with a disk light prim.
  2. Output the dirtyBits passed to the Sync call.

Package Versions

USD 21.11

@spiffmon
Copy link
Member

I can't comment on Hd specifically, @marktucker , but earlier this year (I think) we affirmed that general UsdImageable visibility should be the first-order gate on whether a light emits, so by that reasoning it makes sense to me that it would receive and respond to visibility dirtiness.

@marktucker
Copy link
Contributor Author

Yep, that totally makes sense. I was only complaining about the mixing and matching of dirty bit enum sources. It's just luck that HdLight didn't already have a dirty bit that would conflict with the value of HdChangeTracker::DirtyVisibility and ruin this update mechanism.

@spiffmon
Copy link
Member

Ah that makes sense, and great point!

@jilliene
Copy link

jilliene commented Jan 3, 2022

Filed as internal issue #USD-7091

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants