summaryrefslogtreecommitdiffstats
path: root/src/libs/dxvk-native-1.9.2a/src/spirv/spirv_compression.h
diff options
context:
space:
mode:
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.h36
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