Search Issue Tracker
By Design
Votes
0
Found in
2022.3.17f1
2023.2.4f1
2023.3.0b1
Issue ID
UUM-59594
Regression
No
Blend shape vertex displacement buffer contains incorrect values when blend shapes are read asynchronously
How to reproduce:
1. Open the attached “blendshapes“ project
2. Open the “DreamingImLatios_HolidayExperiments2023” Scene (Assets/Dev Dungeons/DreamingImLatios/HolidayExperiments2023)
3. In the Hierarchy window, ensure the “HolidaySubscene” (checkbox) is enabled
4. Observe the Console window
Expected result: No errors or warnings are thrown
Actual result: The Console displays a warning, meshes are sometimes not rendered properly
Reproducible in: 2022.3.17f1, 2023.2.4f1, 2023.3.0b1
Could not test with 2021.3.34f1 (the project uses ECS which is not supported in Unity 2021)
Reproducible on: Windows 10, Windows 11
Not reproducible on: No other environments tested
Note: The retrieved values are inconsistent, which can prevent this issue from appearing at first when the project is opened. If no warnings are shown in the Console, disabling and re-enabling the “HolidaySubscene” in the Hierarchy window, or entering and exiting Play Mode will cause the mesh to re-bake and will likely make the warning appear.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- VFX Graph Memory leak when calling the ClearPropertyBinders and AddRemoveVFXProperty
- Entering "Configure Avatar" inside the Inspector locks it
- [Render Graph Viewer] Resource list icons cropped and in inconsistent positions
- Scene View with Debug Draw Mode enabled is gray when GPU Resident Drawer is enabled
- The UI is not visible when resizing out of focus built Player window with Application.runInBackground set to false
Resolution Note:
The third argument passed into 'AsyncGPUReadback.RequestIntoNativeArray' should be the size, in bytes, of the data to retrieve from the GraphicsBuffer. See first documentation link below. The code supplied does not pass in a size in bytes. Instead it passes in cpuBuffer.Length, where cpuBuffer is a NativeArray<BlendShapeVertexDisplacement> and BlendShapeVertexDisplacement is a struct consisting out of an uint and 3x float3. As a result only a part of the blend shape buffer is read back to the CPU. The rest of the memory in the cpu buffer is left uninitialized.
https://docs.unity3d.com/ScriptReference/Rendering.AsyncGPUReadback.RequestIntoNativeArray.html