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
- Too little validation messages in the "WebAssembly Language Features" Memory settings
- Project Settings Search Highlights are misaligned when using the Bitmap Text Rendering Mode
- "GetControlID at event ValidateCommand returns a controlID different from the one in Layout event" Warning is thrown when undoing the deletion of Sprite Shape Profile
- Memory related fields in the "WebAssembly Language Features" can be set to the negative numbers
- "WebAssembly Language Features" Header in the Player Settings has a smaller indentation
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