protected override void OnSuccessed(FrameData frame) { if (this.data.Count > this.maxDataCount) { this.data.Dequeue(); } var readback = frame.readback; var data = readback.GetData <byte>().ToArray(); if (this.useCompress) { data = CompressTool.Compress(data); } var para = new Parameter() { x = readback.width, y = readback.height, compressed = this.useCompress }; this.data.Enqueue(new FileData() { parameter = para, data = data }); }
protected IEnumerator Profile() { yield return(0); while (true) { if (this.dataList.Count > 0) { int count = this.dataList.Count; long totalCompress = 0; long totalDecompress = 0; foreach (var file in this.dataList) { var timer = Stopwatch.StartNew(); var data = CompressTool.Decompress(file.data); timer.Stop(); UnityEngine.Debug.LogFormat("Decompress costs {0}", timer.ElapsedMilliseconds); totalDecompress += timer.ElapsedMilliseconds; timer = Stopwatch.StartNew(); data = CompressTool.Compress(data); timer.Stop(); UnityEngine.Debug.LogFormat("Compress costs {0}", timer.ElapsedMilliseconds); totalCompress += timer.ElapsedMilliseconds; yield return(0); } UnityEngine.Debug.LogFormat("Total {2} costs {0}, {1}", totalCompress, totalDecompress, count); UnityEngine.Debug.LogFormat("30 frame time costs {0}, {1}", totalCompress / 30.0f / count, totalDecompress / 30.0f / count); } } }
protected override void OnSuccessed(FrameData frame) { var readback = frame.readback; var data = readback.GetData <byte>().ToArray(); var timer = System.Diagnostics.Stopwatch.StartNew(); data = CompressTool.Compress(data, CompressTool.CompressAlgorithm.Zstd); timer.Stop(); total += timer.ElapsedMilliseconds; count++; var para = new AsyncGPUDataSerializer.Parameter() { x = readback.width, y = readback.height, compressed = true }; var fileData = new AsyncGPUDataSerializer.FileData() { parameter = para, data = data }; Debug.Log("Data size " + data.Length); this.socket.Send(socketData, fileData); }