APPLE: Fix crash in skinned animation on Metal #1978
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change(s)
The function
HdStCopyComputationGPU::Execute()
had a call toGLF_POST_PENDING_GL_ERRORS
in it. This macro expands out to include openGL-specific calls such asglGetError()
etc. On Metal applications these cause an exception if the GL context wasn't initialised.This crash was found when performing skinning calculations. See the HumanFemale test model for a reproduction, running in the Apple HydraPlayer sample application from WWDC 2022.
Also removed the include to
pxr/imaging/glf/diagnostic.h
inpxr/imaging/hdSt/extCompGpuComputation.cpp
where it isn't needed.Suggestion: The file
pxr/imaging/glf/diagnostic.h
is included in various other places in HdSt files, but it is only used for theGLF_GROUP_FUNCTION
macro. I think we should move this macro to the Hd library to remove the dependancy from HdSt onto Glf entirely. It's dangerous to have the glf code included, even if it isn't used. I'm happy to make this change but it should be in a separate PR.Fixes Issue(s)