mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Use zstd dict for packing/unpacking frame images.
This only affects run-time memory usage and needs an offline calculation of the dictionary. Results vary depending on similarity of image blocks. agora 34.96 MB -> 28.21 MB agora2 40.75 MB -> 34.14 MB android-vk 36.21 MB -> 18.44 MB astar3 44.72 MB -> 43.38 MB clipper1 134.36 MB -> 52.16 MB fi 50.82 MB -> 40.79 MB fi-big 537.74 MB -> 469.54 MB test 23.26 MB -> 1.87 MB
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
struct ZSTD_CCtx_s;
|
||||
struct ZSTD_DCtx_s;
|
||||
struct ZSTD_CDict_s;
|
||||
struct ZSTD_DDict_s;
|
||||
|
||||
namespace tracy
|
||||
{
|
||||
@@ -23,6 +24,8 @@ public:
|
||||
TextureCompression();
|
||||
~TextureCompression();
|
||||
|
||||
void SetDict( struct ZSTD_DDict_s* dict ) { m_dict = dict; }
|
||||
|
||||
uint32_t Pack( struct ZSTD_CCtx_s* ctx, char*& buf, size_t& bufsz, const char* image, uint32_t inBytes );
|
||||
uint32_t Pack( struct ZSTD_CCtx_s* ctx, const struct ZSTD_CDict_s* dict, char*& buf, size_t& bufsz, const char* image, uint32_t inBytes );
|
||||
|
||||
@@ -49,6 +52,7 @@ private:
|
||||
size_t m_bufSize;
|
||||
struct ZSTD_CCtx_s* m_cctx;
|
||||
struct ZSTD_DCtx_s* m_dctx;
|
||||
struct ZSTD_DDict_s* m_dict;
|
||||
|
||||
std::atomic<uint64_t> m_inputBytes { 0 };
|
||||
std::atomic<uint64_t> m_outputBytes { 0 };
|
||||
|
||||
Reference in New Issue
Block a user