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
- Mono Windows Builds don't produce full log callstacks when generating logs
- AssetBundles fail to load when running in Built Players for Mobile Devices
- UI elements with text gets bigger and grey when Player window is moved to another screen with different resolution
- System name accepts multiline text but crops it on confirmation, duplicates input, and shrinks the field when empty
- UI element scale and position are wrong in project build when DRS is changed with HDR and Software Dynamic Resolution enabled
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