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

Autodesk: Skip use of geometry shader for patch tessellation when possible #3422

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

erikaharrison-adsk
Copy link
Contributor

Description of Change(s)

This updates the shader configuration for surface patches, for better performance. The geometry shader is in most cases omitted except when the display style is HdMeshGeomStyleEdgeOnSurf, in which case a geometry shader is required to render edges of output triangles.

The changes include new tessellation evaluation shaders, and an alternative DisplacementTerminal protocol in order to evaluate displacements correctly in a tessellation shader. Some changes also in codegen to include required supporting code such as interstage elements. Also included here is a TfDebug variable for listing shader keys.

Performance tests indicate approximately 40% speedup on average when rendering this type of geometry on a high-end laptop with an NVidia RTX A3000 GPU.

Link to proposal (if applicable)

  • N/A

Fixes Issue(s)

  • N/A

Checklist

@jesschimein
Copy link
Contributor

Filed as internal issue #USD-10438

@jesschimein
Copy link
Contributor

/AzurePipelines run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@tcauchois
Copy link
Contributor

Exciting!

@davidgyu
Copy link
Member

I don't think the TfDebug code introduced here is needed.

It matches existing functionality provided by TF_DEBUG=HDST_DUMP_GLSLFX_CONFIG

@erikaharrison-adsk
Copy link
Contributor Author

@davidgyu PR has been updated based on this feedback.

@jesschimein
Copy link
Contributor

/AzurePipelines run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

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.

5 participants