Пример #1
0
        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
            });
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
        }