Skip to content

Conversation

@niklasharrysson
Copy link
Contributor

This change list is an overhaul of the type system in shader generation.

Improvements include:

  • Removing the singleton pattern for TypeDesc storage and access, making the type system thread safe.
  • Improved handling of TypeDesc internal data, supporting any amount of data for the future, while keeping the class size minimal.
  • Handling of re-registration of type descriptions.
  • Support for keeping type descriptions alive after the lifetime of ShaderGenerator and GenContext. For applications that holds/uses the ShadePort reflection data that is generated by shader generation, even after the ShaderGenerator itself is destroyed. (To do this an application can create and pass in an external TypeSystem).

Co-work with @ld-kerley

@niklasharrysson
Copy link
Contributor Author

This PR includes and replaces #2107, which can be closed if this PR is approved.

Copy link
Contributor

@ld-kerley ld-kerley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All looks good to me - thanks for getting this all squared away!

I left a small question below - but happy to defer to whatever you think.

Copy link
Member

@jstone-lucasfilm jstone-lucasfilm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this excellent work, @niklasharrysson, and I believe this is ready to merge once all tests pass.

@jstone-lucasfilm jstone-lucasfilm merged commit 0b40d67 into AcademySoftwareFoundation:main Feb 18, 2025
34 checks passed
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

Successfully merging this pull request may close these issues.

3 participants