How to reproduce:
1. Open the user’s attached “Buffer.BlockCopy Bug” project
2. Build and Run the “SampleScene” Scene on Android
3. Observe the Player
Expected result: “Block copy successful” is printed out
Actual result: ArgumentException is thrown
Reproducible with: 2020.3.39f1, 2021.3.9f1, 2022.1.15f1, 2022.2.0b6, 2023.1.0a9
Reproduced on: macOS 12.5 (Intel)
Reproducible with devices:
VLNQA00472 - Samsung Galaxy A52 (SM-A525F), CPU: Snapdragon 720G (SM7125), GPU: Adreno 618, OS: 12
VLNQA00414 - Galaxy Note10+ 5G (SM-N976V), CPU: Snapdragon 855 SM8150, GPU: Adreno 640, OS: 9
VLNQA00409 - Galaxy Z Fold3 5G (SM-F926B), CPU: Snapdragon 888, GPU: Adreno 660, OS: 11
VLNQA00331 - HUAWEI P20 lite (ANE-LX1), CPU: HiSilicon Kirin 659, GPU: Mali-T830, OS: 9
VLNQA00268 - Samsung Galaxy S10+ (SM-G975F), CPU: Exynos 9 9820, GPU: Mali-G76, OS: 10.0.0
Thrown error message:
ArgumentException: Object must be an array of primitives.
at System.Buffer.ByteLength (System.Array array) [0x00000] in <00000000000000000000000000000000>:0
at System.Buffer.BlockCopy (System.Array src, System.Int32 srcOffset, System.Array dst, System.Int32 dstOffset, System.Int32 count) [0x00000] in <00000000000000000000000000000000>:0
at BufferBlockCopyIssue.Start () [0x00000] in <00000000000000000000000000000000>:0