diff options
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h')
-rw-r--r-- | src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h b/src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h new file mode 100644 index 00000000..7a1276c8 --- /dev/null +++ b/src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h @@ -0,0 +1,36 @@ +#pragma once + +#include <vector> + +#include "spirv_code_buffer.h" + +namespace dxvk { + + /** + * \brief Compressed SPIR-V code buffer + * + * Implements a fast in-memory compression + * to keep memory footprint low. + */ + class SpirvCompressedBuffer { + constexpr static uint32_t NumMaskWords = 32; + public: + + SpirvCompressedBuffer(); + + SpirvCompressedBuffer( + const SpirvCodeBuffer& code); + + ~SpirvCompressedBuffer(); + + SpirvCodeBuffer decompress() const; + + private: + + uint32_t m_size; + std::vector<uint64_t> m_mask; + std::vector<uint64_t> m_code; + + }; + +}
\ No newline at end of file |