Initial commit: VKZip GPU Compressor
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(vkzip VERSION 1.0.0 LANGUAGES C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
# ── Platform detection ──────────────────────────────────────────────
|
||||
if(WIN32)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS -DPLATFORM_WINDOWS)
|
||||
else()
|
||||
add_definitions(-DPLATFORM_LINUX)
|
||||
endif()
|
||||
|
||||
# ── Find Vulkan ─────────────────────────────────────────────────────
|
||||
find_package(Vulkan REQUIRED)
|
||||
|
||||
# ── Source files ────────────────────────────────────────────────────
|
||||
set(SOURCES
|
||||
src/main.c
|
||||
src/vkz_format.c
|
||||
src/gpu_context.c
|
||||
src/gpu_compress.c
|
||||
src/gpu_decompress.c
|
||||
src/cpu_fallback.c
|
||||
)
|
||||
|
||||
# ── Executable ──────────────────────────────────────────────────────
|
||||
add_executable(vkzip ${SOURCES})
|
||||
|
||||
target_include_directories(vkzip PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/src
|
||||
${Vulkan_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(vkzip PRIVATE
|
||||
${Vulkan_LIBRARIES}
|
||||
)
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(vkzip PRIVATE m pthread)
|
||||
endif()
|
||||
|
||||
# ── Compile shaders (GLSL → SPIR-V) ────────────────────────────────
|
||||
find_program(GLSLC glslc HINTS "$ENV{VULKAN_SDK}/bin")
|
||||
if(NOT GLSLC)
|
||||
find_program(GLSLC glslangValidator HINTS "$ENV{VULKAN_SDK}/bin")
|
||||
endif()
|
||||
|
||||
if(GLSLC)
|
||||
set(SHADER_SRC_DIR "${CMAKE_SOURCE_DIR}/shaders")
|
||||
set(SHADER_BIN_DIR "${CMAKE_BINARY_DIR}/shaders")
|
||||
file(MAKE_DIRECTORY ${SHADER_BIN_DIR})
|
||||
|
||||
set(SHADER_SOURCES
|
||||
${SHADER_SRC_DIR}/compress.comp
|
||||
${SHADER_SRC_DIR}/decompress.comp
|
||||
)
|
||||
|
||||
foreach(SHADER ${SHADER_SOURCES})
|
||||
get_filename_component(SHADER_NAME ${SHADER} NAME)
|
||||
set(SPIRV_OUTPUT "${SHADER_BIN_DIR}/${SHADER_NAME}.spv")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${SPIRV_OUTPUT}
|
||||
COMMAND ${GLSLC} -o ${SPIRV_OUTPUT} ${SHADER}
|
||||
DEPENDS ${SHADER}
|
||||
COMMENT "Compiling shader ${SHADER_NAME} -> SPIR-V"
|
||||
)
|
||||
list(APPEND SPIRV_OUTPUTS ${SPIRV_OUTPUT})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(shaders ALL DEPENDS ${SPIRV_OUTPUTS})
|
||||
add_dependencies(vkzip shaders)
|
||||
|
||||
# Embed shader directory path at compile time
|
||||
target_compile_definitions(vkzip PRIVATE
|
||||
SHADER_DIR="${SHADER_BIN_DIR}"
|
||||
)
|
||||
else()
|
||||
message(WARNING "glslc/glslangValidator not found! Shaders will not be compiled.")
|
||||
message(WARNING "Install Vulkan SDK: https://vulkan.lunarg.com/sdk/home")
|
||||
endif()
|
||||
|
||||
# ── Install ─────────────────────────────────────────────────────────
|
||||
install(TARGETS vkzip RUNTIME DESTINATION bin)
|
||||
if(GLSLC)
|
||||
install(DIRECTORY ${SHADER_BIN_DIR}/ DESTINATION share/vkzip/shaders)
|
||||
endif()
|
||||
|
||||
# ── Compiler warnings ──────────────────────────────────────────────
|
||||
if(MSVC)
|
||||
target_compile_options(vkzip PRIVATE /W4)
|
||||
else()
|
||||
target_compile_options(vkzip PRIVATE -Wall -Wextra -O2)
|
||||
endif()
|
||||
|
||||
message(STATUS "")
|
||||
message(STATUS "╔══════════════════════════════════════════╗")
|
||||
message(STATUS "║ VKZip - GPU File Compressor ║")
|
||||
message(STATUS "║ Vulkan Compute Shader Acceleration ║")
|
||||
message(STATUS "╠══════════════════════════════════════════╣")
|
||||
message(STATUS "║ Platform: ${CMAKE_SYSTEM_NAME}")
|
||||
message(STATUS "║ Compiler: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
|
||||
message(STATUS "║ Vulkan: ${Vulkan_LIBRARY}")
|
||||
message(STATUS "║ Shaders: ${GLSLC}")
|
||||
message(STATUS "╚══════════════════════════════════════════╝")
|
||||
message(STATUS "")
|
||||
@@ -0,0 +1,174 @@
|
||||
# VKZip - GPU-Accelerated File Compressor/Decompressor
|
||||
|
||||
```
|
||||
██╗ ██╗██╗ ██╗███████╗██╗██████╗
|
||||
██║ ██║██║ ██╔╝╚══███╔╝██║██╔══██╗
|
||||
██║ ██║█████╔╝ ███╔╝ ██║██████╔╝
|
||||
╚██╗ ██╔╝██╔═██╗ ███╔╝ ██║██╔═══╝
|
||||
╚████╔╝ ██║ ██╗███████╗██║██║
|
||||
╚═══╝ ╚═╝ ╚═╝╚══════╝╚═╝╚═╝
|
||||
```
|
||||
|
||||
> **Compressão de arquivos acelerada por GPU usando Vulkan Compute Shaders**
|
||||
|
||||
## ✨ Características
|
||||
|
||||
- 🚀 **Aceleração GPU** via Vulkan Compute Shaders
|
||||
- 🖥️ **Cross-platform** - Windows e Linux
|
||||
- 🎮 **Multi-GPU** - NVIDIA, AMD, Intel (qualquer GPU Vulkan)
|
||||
- 🔄 **CPU Fallback** - Funciona mesmo sem GPU compatível
|
||||
- 📊 **Benchmark** - Compare GPU vs CPU no seu hardware
|
||||
- 🔒 **CRC32** - Verificação de integridade dos dados
|
||||
- 📦 **Formato .vkz** - Formato próprio otimizado para compressão paralela
|
||||
|
||||
## 📋 Requisitos
|
||||
|
||||
### Linux
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install cmake build-essential vulkan-tools libvulkan-dev glslang-tools
|
||||
|
||||
# Arch Linux
|
||||
sudo pacman -S cmake vulkan-tools vulkan-headers vulkan-icd-loader glslang
|
||||
|
||||
# Fedora
|
||||
sudo dnf install cmake gcc vulkan-tools vulkan-loader-devel glslang
|
||||
```
|
||||
|
||||
### Windows
|
||||
1. Instale o [Vulkan SDK](https://vulkan.lunarg.com/sdk/home)
|
||||
2. Instale o [CMake](https://cmake.org/download/)
|
||||
3. Instale o [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/) (ou MinGW)
|
||||
|
||||
## 🔨 Compilação
|
||||
|
||||
```bash
|
||||
# Clonar e entrar no diretório
|
||||
cd winrarcomgpu
|
||||
|
||||
# Criar diretório de build
|
||||
mkdir build && cd build
|
||||
|
||||
# Configurar
|
||||
cmake ..
|
||||
|
||||
# Compilar
|
||||
cmake --build . --config Release
|
||||
|
||||
# (Opcional) Instalar
|
||||
sudo cmake --install .
|
||||
```
|
||||
|
||||
### Windows (MSVC)
|
||||
```cmd
|
||||
mkdir build && cd build
|
||||
cmake .. -G "Visual Studio 17 2022"
|
||||
cmake --build . --config Release
|
||||
```
|
||||
|
||||
## 🚀 Uso
|
||||
|
||||
### Compactar arquivo
|
||||
```bash
|
||||
vkzip compress arquivo.dat # → arquivo.dat.vkz
|
||||
vkzip compress arquivo.dat saida.vkz # Nome personalizado
|
||||
vkzip compress arquivo.dat --block-size 128 # Blocos de 128KB
|
||||
vkzip c arquivo.dat # Atalho
|
||||
```
|
||||
|
||||
### Descompactar arquivo
|
||||
```bash
|
||||
vkzip decompress arquivo.vkz # → restaura nome original
|
||||
vkzip decompress arquivo.vkz saida.dat # Nome personalizado
|
||||
vkzip d arquivo.vkz # Atalho
|
||||
vkzip x arquivo.vkz # Atalho alternativo
|
||||
```
|
||||
|
||||
### Informações do arquivo
|
||||
```bash
|
||||
vkzip info arquivo.vkz # Detalhes do arquivo
|
||||
vkzip i arquivo.vkz # Atalho
|
||||
```
|
||||
|
||||
### Benchmark GPU vs CPU
|
||||
```bash
|
||||
vkzip benchmark arquivo_grande.dat # Compara GPU vs CPU
|
||||
vkzip bench arquivo_grande.dat # Atalho
|
||||
```
|
||||
|
||||
### Informações da GPU
|
||||
```bash
|
||||
vkzip --gpu-info # Mostra info da GPU
|
||||
```
|
||||
|
||||
### Opções
|
||||
```bash
|
||||
--cpu-only Forçar modo CPU (sem GPU)
|
||||
--block-size N Tamanho do bloco em KB (padrão: 64, min: 4, max: 1024)
|
||||
```
|
||||
|
||||
## ⚙️ Como Funciona
|
||||
|
||||
### Algoritmo de Compressão
|
||||
|
||||
1. **Divisão em Blocos**: O arquivo é dividido em blocos independentes (64KB por padrão)
|
||||
2. **Upload GPU**: Todos os blocos são enviados para memória da GPU
|
||||
3. **Compressão Paralela**: Cada bloco é comprimido em paralelo por um workgroup do GPU
|
||||
- Usa LZ77 (match-finding com hash table)
|
||||
- Cada match é codificado como `(distância, comprimento)`
|
||||
- Bytes sem match são armazenados como literais
|
||||
4. **Download**: Dados comprimidos são lidos de volta da GPU
|
||||
5. **Empacotamento**: Blocos comprimidos + header = arquivo `.vkz`
|
||||
|
||||
### Formato .vkz
|
||||
|
||||
```
|
||||
┌──────────────────────────────────┐
|
||||
│ Header (28 bytes) │
|
||||
│ Magic: "VKZ\0" │
|
||||
│ Version, Size, Block info │
|
||||
├──────────────────────────────────┤
|
||||
│ Block Table │
|
||||
│ Offset, Size, CRC per block │
|
||||
├──────────────────────────────────┤
|
||||
│ Original Filename │
|
||||
├──────────────────────────────────┤
|
||||
│ Compressed Block 0 │
|
||||
│ Compressed Block 1 │
|
||||
│ ... │
|
||||
│ Compressed Block N │
|
||||
└──────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 📊 Performance
|
||||
|
||||
A vantagem da GPU aparece principalmente em:
|
||||
- **Arquivos grandes** (>10MB) com muitos blocos paralelos
|
||||
- **GPUs potentes** com muitos compute units
|
||||
- **Dados com boa compressibilidade** (texto, logs, dados estruturados)
|
||||
|
||||
Para arquivos pequenos, o overhead de transferência CPU↔GPU pode tornar o CPU mais rápido.
|
||||
|
||||
## 🏗️ Estrutura do Projeto
|
||||
|
||||
```
|
||||
winrarcomgpu/
|
||||
├── CMakeLists.txt # Build system
|
||||
├── README.md # Este arquivo
|
||||
├── src/
|
||||
│ ├── main.c # CLI entry point
|
||||
│ ├── utils.h # Utilitários e constantes
|
||||
│ ├── vkz_format.h/c # Formato do arquivo .vkz
|
||||
│ ├── gpu_context.h/c # Inicialização Vulkan
|
||||
│ ├── gpu_compress.h/c # Pipeline de compressão GPU
|
||||
│ ├── gpu_decompress.h/c # Pipeline de descompressão GPU
|
||||
│ └── cpu_fallback.h/c # Fallback CPU
|
||||
└── shaders/
|
||||
├── compress.comp # Compute shader de compressão
|
||||
├── decompress.comp # Compute shader de descompressão
|
||||
└── compile_shaders.sh # Script de compilação
|
||||
```
|
||||
|
||||
## 📄 Licença
|
||||
|
||||
MIT License - Use livremente!
|
||||
@@ -0,0 +1,385 @@
|
||||
# This is the CMakeCache file.
|
||||
# For build in directory: /home/axel/Vídeos/winrarcomgpu/build
|
||||
# It was generated by CMake: /usr/bin/cmake
|
||||
# You can edit this file to change values found and used by cmake.
|
||||
# If you do not want to change any of the values, simply exit the editor.
|
||||
# If you do want to change a value, simply edit, save, and exit the editor.
|
||||
# The syntax for the file is as follows:
|
||||
# KEY:TYPE=VALUE
|
||||
# KEY is the name of a variable in the cache.
|
||||
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
|
||||
# VALUE is the current value for the KEY.
|
||||
|
||||
########################
|
||||
# EXTERNAL cache entries
|
||||
########################
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_AR:FILEPATH=/usr/bin/ar
|
||||
|
||||
//Choose the type of build, options are: None Debug Release RelWithDebInfo
|
||||
// MinSizeRel ...
|
||||
CMAKE_BUILD_TYPE:STRING=
|
||||
|
||||
//Enable/Disable color output during build.
|
||||
CMAKE_COLOR_MAKEFILE:BOOL=ON
|
||||
|
||||
//C compiler
|
||||
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
|
||||
|
||||
//A wrapper around 'ar' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_C_COMPILER_AR:FILEPATH=/home/linuxbrew/.linuxbrew/bin/gcc-ar-15
|
||||
|
||||
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_C_COMPILER_RANLIB:FILEPATH=/home/linuxbrew/.linuxbrew/bin/gcc-ranlib-15
|
||||
|
||||
//Flags used by the C compiler during all build types.
|
||||
CMAKE_C_FLAGS:STRING=
|
||||
|
||||
//Flags used by the C compiler during DEBUG builds.
|
||||
CMAKE_C_FLAGS_DEBUG:STRING=-g
|
||||
|
||||
//Flags used by the C compiler during MINSIZEREL builds.
|
||||
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
|
||||
|
||||
//Flags used by the C compiler during RELEASE builds.
|
||||
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
|
||||
|
||||
//Flags used by the C compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
|
||||
|
||||
//Flags used by the linker during all build types.
|
||||
CMAKE_EXE_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during DEBUG builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during MINSIZEREL builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during RELEASE builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during RELWITHDEBINFO builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Enable/Disable output of compile commands during generation.
|
||||
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
|
||||
|
||||
//Value Computed by CMake.
|
||||
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/pkgRedirects
|
||||
|
||||
//Install path prefix, prepended onto install directories.
|
||||
CMAKE_INSTALL_PREFIX:PATH=/usr/local
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_LINKER:FILEPATH=/usr/bin/ld
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// all build types.
|
||||
CMAKE_MODULE_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// DEBUG builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// MINSIZEREL builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELEASE builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELWITHDEBINFO builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_NM:FILEPATH=/usr/bin/nm
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_DESCRIPTION:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_NAME:STATIC=vkzip
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_VERSION:STATIC=1.0.0
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_VERSION_MAJOR:STATIC=1
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_VERSION_MINOR:STATIC=0
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_VERSION_PATCH:STATIC=0
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_VERSION_TWEAK:STATIC=
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_READELF:FILEPATH=/usr/bin/readelf
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during all build types.
|
||||
CMAKE_SHARED_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//If set, runtime paths are not added when installing shared libraries,
|
||||
// but are added when building.
|
||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
|
||||
|
||||
//If set, runtime paths are not added when using shared libraries.
|
||||
CMAKE_SKIP_RPATH:BOOL=NO
|
||||
|
||||
//Flags used by the archiver during the creation of static libraries
|
||||
// during all build types.
|
||||
CMAKE_STATIC_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the archiver during the creation of static libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the archiver during the creation of static libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the archiver during the creation of static libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the archiver during the creation of static libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_STRIP:FILEPATH=/usr/bin/strip
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
|
||||
|
||||
//If this value is on, makefiles will be generated without the
|
||||
// .SILENT directive, and all commands will be echoed to the console
|
||||
// during the make. This is useful for debugging only. With Visual
|
||||
// Studio IDE projects all commands are done without /nologo.
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
|
||||
|
||||
//Path to a program.
|
||||
GLSLC:FILEPATH=/bin/glslc
|
||||
|
||||
//Path to a program.
|
||||
Vulkan_GLSLANG_VALIDATOR_EXECUTABLE:FILEPATH=/usr/bin/glslangValidator
|
||||
|
||||
//Path to a program.
|
||||
Vulkan_GLSLC_EXECUTABLE:FILEPATH=/usr/bin/glslc
|
||||
|
||||
//Path to a file.
|
||||
Vulkan_INCLUDE_DIR:PATH=/usr/include
|
||||
|
||||
//Path to a library.
|
||||
Vulkan_LIBRARY:FILEPATH=/usr/lib/libvulkan.so
|
||||
|
||||
//Value Computed by CMake
|
||||
vkzip_BINARY_DIR:STATIC=/home/axel/Vídeos/winrarcomgpu/build
|
||||
|
||||
//Value Computed by CMake
|
||||
vkzip_IS_TOP_LEVEL:STATIC=ON
|
||||
|
||||
//Value Computed by CMake
|
||||
vkzip_SOURCE_DIR:STATIC=/home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
|
||||
########################
|
||||
# INTERNAL cache entries
|
||||
########################
|
||||
|
||||
//ADVANCED property for variable: CMAKE_ADDR2LINE
|
||||
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_AR
|
||||
CMAKE_AR-ADVANCED:INTERNAL=1
|
||||
//This is the directory where this CMakeCache.txt was created
|
||||
CMAKE_CACHEFILE_DIR:INTERNAL=/home/axel/Vídeos/winrarcomgpu/build
|
||||
//Major version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
|
||||
//Minor version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
|
||||
//Patch version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
|
||||
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//Path to CMake executable.
|
||||
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
|
||||
//Path to cpack program executable.
|
||||
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
|
||||
//Path to ctest program executable.
|
||||
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER
|
||||
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
|
||||
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
|
||||
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS
|
||||
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
|
||||
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
|
||||
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_DLLTOOL
|
||||
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
|
||||
//Path to cache edit program executable.
|
||||
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
|
||||
//Executable file format
|
||||
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
|
||||
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
|
||||
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
|
||||
//Name of external makefile project generator.
|
||||
CMAKE_EXTRA_GENERATOR:INTERNAL=
|
||||
//Name of generator.
|
||||
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
|
||||
//Generator instance identifier.
|
||||
CMAKE_GENERATOR_INSTANCE:INTERNAL=
|
||||
//Name of generator platform.
|
||||
CMAKE_GENERATOR_PLATFORM:INTERNAL=
|
||||
//Name of generator toolset.
|
||||
CMAKE_GENERATOR_TOOLSET:INTERNAL=
|
||||
//Source directory with the top level CMakeLists.txt file for this
|
||||
// project
|
||||
CMAKE_HOME_DIRECTORY:INTERNAL=/home/axel/Vídeos/winrarcomgpu
|
||||
//Install .so files without execute permission.
|
||||
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
|
||||
//ADVANCED property for variable: CMAKE_LINKER
|
||||
CMAKE_LINKER-ADVANCED:INTERNAL=1
|
||||
//Name of CMakeLists files to read
|
||||
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
|
||||
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
|
||||
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
|
||||
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_NM
|
||||
CMAKE_NM-ADVANCED:INTERNAL=1
|
||||
//number of local generators
|
||||
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_OBJCOPY
|
||||
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_OBJDUMP
|
||||
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
|
||||
//Platform information initialized
|
||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RANLIB
|
||||
CMAKE_RANLIB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_READELF
|
||||
CMAKE_READELF-ADVANCED:INTERNAL=1
|
||||
//Path to CMake installation.
|
||||
CMAKE_ROOT:INTERNAL=/usr/share/cmake
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
|
||||
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
|
||||
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_RPATH
|
||||
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
|
||||
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STRIP
|
||||
CMAKE_STRIP-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_TAPI
|
||||
CMAKE_TAPI-ADVANCED:INTERNAL=1
|
||||
//uname command
|
||||
CMAKE_UNAME:INTERNAL=/usr/bin/uname
|
||||
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
|
||||
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//Details about finding Vulkan
|
||||
FIND_PACKAGE_MESSAGE_DETAILS_Vulkan:INTERNAL=[/usr/lib/libvulkan.so][/usr/include][found components: glslc glslangValidator ][v1.4.341()]
|
||||
//ADVANCED property for variable: Vulkan_GLSLANG_VALIDATOR_EXECUTABLE
|
||||
Vulkan_GLSLANG_VALIDATOR_EXECUTABLE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: Vulkan_GLSLC_EXECUTABLE
|
||||
Vulkan_GLSLC_EXECUTABLE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: Vulkan_INCLUDE_DIR
|
||||
Vulkan_INCLUDE_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: Vulkan_LIBRARY
|
||||
Vulkan_LIBRARY-ADVANCED:INTERNAL=1
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
set(CMAKE_C_COMPILER "/usr/bin/cc")
|
||||
set(CMAKE_C_COMPILER_ARG1 "")
|
||||
set(CMAKE_C_COMPILER_ID "GNU")
|
||||
set(CMAKE_C_COMPILER_VERSION "15.2.1")
|
||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_C_COMPILER_WRAPPER "")
|
||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "23")
|
||||
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
||||
set(CMAKE_C_STANDARD_LATEST "23")
|
||||
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
|
||||
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
|
||||
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
|
||||
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
|
||||
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
|
||||
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
|
||||
|
||||
set(CMAKE_C_PLATFORM_ID "Linux")
|
||||
set(CMAKE_C_SIMULATE_ID "")
|
||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
|
||||
set(CMAKE_C_COMPILER_APPLE_SYSROOT "")
|
||||
set(CMAKE_C_SIMULATE_VERSION "")
|
||||
set(CMAKE_C_COMPILER_ARCHITECTURE_ID "x86_64")
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_AR "/usr/bin/ar")
|
||||
set(CMAKE_C_COMPILER_AR "/home/linuxbrew/.linuxbrew/bin/gcc-ar-15")
|
||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
|
||||
set(CMAKE_C_COMPILER_RANLIB "/home/linuxbrew/.linuxbrew/bin/gcc-ranlib-15")
|
||||
set(CMAKE_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_LINKER_LINK "")
|
||||
set(CMAKE_LINKER_LLD "")
|
||||
set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_C_COMPILER_LINKER_ID "GNU")
|
||||
set(CMAKE_C_COMPILER_LINKER_VERSION 2.46)
|
||||
set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
|
||||
set(CMAKE_MT "")
|
||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
||||
set(CMAKE_COMPILER_IS_GNUCC 1)
|
||||
set(CMAKE_C_COMPILER_LOADED 1)
|
||||
set(CMAKE_C_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_C_ABI_COMPILED TRUE)
|
||||
|
||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
|
||||
|
||||
set(CMAKE_C_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
|
||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
set(CMAKE_C_LINKER_PREFERENCE 10)
|
||||
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE)
|
||||
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
|
||||
set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
|
||||
|
||||
# Save compiler ABI information.
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR "8")
|
||||
set(CMAKE_C_COMPILER_ABI "ELF")
|
||||
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
|
||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
|
||||
|
||||
if(CMAKE_C_SIZEOF_DATA_PTR)
|
||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ABI)
|
||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_LIBRARY_ARCHITECTURE)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
|
||||
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
|
||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include-fixed;/usr/include")
|
||||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
|
||||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1;/usr/lib;/lib")
|
||||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
set(CMAKE_HOST_SYSTEM "Linux-7.0.0-1-cachyos")
|
||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_HOST_SYSTEM_VERSION "7.0.0-1-cachyos")
|
||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_SYSTEM "Linux-7.0.0-1-cachyos")
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_SYSTEM_VERSION "7.0.0-1-cachyos")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
|
||||
set(CMAKE_SYSTEM_LOADED 1)
|
||||
@@ -0,0 +1,934 @@
|
||||
#ifdef __cplusplus
|
||||
# error "A C++ compiler has been selected for C."
|
||||
#endif
|
||||
|
||||
#if defined(__18CXX)
|
||||
# define ID_VOID_MAIN
|
||||
#endif
|
||||
#if defined(__CLASSIC_C__)
|
||||
/* cv-qualifiers did not exist in K&R C */
|
||||
# define const
|
||||
# define volatile
|
||||
#endif
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number components: V=Version, R=Revision, P=Patch
|
||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
||||
|
||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
|
||||
# define COMPILER_ID "Intel"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# endif
|
||||
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
||||
except that a few beta releases use the old format with V=2021. */
|
||||
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||
# if defined(__INTEL_COMPILER_UPDATE)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||
# else
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||
# endif
|
||||
# else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
||||
/* The third version component from --version is an update index,
|
||||
but no macro is provided for it. */
|
||||
# define COMPILER_VERSION_PATCH DEC(0)
|
||||
# endif
|
||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||
# endif
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
|
||||
# define COMPILER_ID "IntelLLVM"
|
||||
#if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
#endif
|
||||
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
|
||||
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
|
||||
* VVVV is no smaller than the current year when a version is released.
|
||||
*/
|
||||
#if __INTEL_LLVM_COMPILER < 1000000L
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
|
||||
#else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
|
||||
#endif
|
||||
#if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
#elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
#endif
|
||||
#if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
#endif
|
||||
#if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
#elif defined(__PATHCC__)
|
||||
# define COMPILER_ID "PathScale"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
||||
# if defined(__PATHCC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
||||
# define COMPILER_ID "Embarcadero"
|
||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
# define COMPILER_ID "Borland"
|
||||
/* __BORLANDC__ = 0xVRR */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
||||
|
||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
||||
# define COMPILER_ID "Watcom"
|
||||
/* __WATCOMC__ = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# define COMPILER_ID "OpenWatcom"
|
||||
/* __WATCOMC__ = VVRP + 1100 */
|
||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SUNPRO_C)
|
||||
# define COMPILER_ID "SunPro"
|
||||
# if __SUNPRO_C >= 0x5100
|
||||
/* __SUNPRO_C = 0xVRRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# else
|
||||
/* __SUNPRO_CC = 0xVRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# endif
|
||||
|
||||
#elif defined(__HP_cc)
|
||||
# define COMPILER_ID "HP"
|
||||
/* __HP_cc = VVRRPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
|
||||
|
||||
#elif defined(__DECC)
|
||||
# define COMPILER_ID "Compaq"
|
||||
/* __DECC_VER = VVRRTPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
|
||||
|
||||
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
|
||||
# define COMPILER_ID "zOS"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__open_xl__) && defined(__clang__)
|
||||
# define COMPILER_ID "IBMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__ibmxl__) && defined(__clang__)
|
||||
# define COMPILER_ID "XLClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
|
||||
# define COMPILER_ID "XL"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
|
||||
# define COMPILER_ID "VisualAge"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__NVCOMPILER)
|
||||
# define COMPILER_ID "NVHPC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
|
||||
# if defined(__NVCOMPILER_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__PGI)
|
||||
# define COMPILER_ID "PGI"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__cray__)
|
||||
# define COMPILER_ID "CrayClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
# define COMPILER_ID "Cray"
|
||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# define COMPILER_ID "TI"
|
||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
||||
|
||||
#elif defined(__CLANG_FUJITSU)
|
||||
# define COMPILER_ID "FujitsuClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__FUJITSU)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
# if defined(__FCC_version__)
|
||||
# define COMPILER_VERSION __FCC_version__
|
||||
# elif defined(__FCC_major__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# endif
|
||||
# if defined(__fcc_version)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
||||
# elif defined(__FCC_VERSION)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
||||
# endif
|
||||
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# define COMPILER_ID "GHS"
|
||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
||||
# ifdef __GHS_VERSION_NUMBER
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
# define COMPILER_ID "Tasking"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
||||
|
||||
#elif defined(__ORANGEC__)
|
||||
# define COMPILER_ID "OrangeC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
|
||||
|
||||
#elif defined(__RENESAS__)
|
||||
# define COMPILER_ID "Renesas"
|
||||
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
|
||||
|
||||
#elif defined(__TINYC__)
|
||||
# define COMPILER_ID "TinyCC"
|
||||
|
||||
#elif defined(__BCC__)
|
||||
# define COMPILER_ID "Bruce"
|
||||
|
||||
#elif defined(__SCO_VERSION__)
|
||||
# define COMPILER_ID "SCO"
|
||||
|
||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
||||
# define COMPILER_ID "ARMCC"
|
||||
#if __ARMCC_VERSION >= 1000000
|
||||
/* __ARMCC_VERSION = VRRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#else
|
||||
/* __ARMCC_VERSION = VRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
||||
# define COMPILER_ID "AppleClang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
||||
|
||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
||||
# define COMPILER_ID "ARMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# define COMPILER_ID "TIClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
|
||||
|
||||
#elif defined(__clang__)
|
||||
# define COMPILER_ID "Clang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
|
||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
# define COMPILER_ID "LCC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
# define COMPILER_ID "GNU"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
# define COMPILER_ID "MSVC"
|
||||
/* _MSC_VER = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# if defined(_MSC_FULL_VER)
|
||||
# if _MSC_VER >= 1400
|
||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
||||
# else
|
||||
/* _MSC_FULL_VER = VVRRPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
||||
# endif
|
||||
# endif
|
||||
# if defined(_MSC_BUILD)
|
||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
||||
# endif
|
||||
|
||||
#elif defined(_ADI_COMPILER)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VERSIONNUM__)
|
||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
|
||||
#endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# define COMPILER_ID "IAR"
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# endif
|
||||
|
||||
#elif defined(__DCC__) && defined(_DIAB_TOOL)
|
||||
# define COMPILER_ID "Diab"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
|
||||
|
||||
|
||||
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
|
||||
# define COMPILER_ID "SDCC"
|
||||
# if defined(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
|
||||
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
|
||||
# else
|
||||
/* SDCC = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
|
||||
# endif
|
||||
|
||||
|
||||
/* These compilers are either not known or too old to define an
|
||||
identification macro. Try to identify the platform and guess that
|
||||
it is the native compiler. */
|
||||
#elif defined(__hpux) || defined(__hpua)
|
||||
# define COMPILER_ID "HP"
|
||||
|
||||
#else /* unknown compiler */
|
||||
# define COMPILER_ID ""
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
||||
#ifdef SIMULATE_ID
|
||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
||||
#endif
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_HELPER(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
||||
|
||||
/* Identify known platforms by name. */
|
||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
#elif defined(__MSYS__)
|
||||
# define PLATFORM_ID "MSYS"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
# define PLATFORM_ID "Cygwin"
|
||||
|
||||
#elif defined(__MINGW32__)
|
||||
# define PLATFORM_ID "MinGW"
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define PLATFORM_ID "Darwin"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
# define PLATFORM_ID "Windows"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
||||
# define PLATFORM_ID "FreeBSD"
|
||||
|
||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
||||
# define PLATFORM_ID "NetBSD"
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
||||
# define PLATFORM_ID "OpenBSD"
|
||||
|
||||
#elif defined(__sun) || defined(sun)
|
||||
# define PLATFORM_ID "SunOS"
|
||||
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
# define PLATFORM_ID "AIX"
|
||||
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
# define PLATFORM_ID "HP-UX"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
# define PLATFORM_ID "Haiku"
|
||||
|
||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
||||
# define PLATFORM_ID "BeOS"
|
||||
|
||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
||||
# define PLATFORM_ID "QNX"
|
||||
|
||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
||||
# define PLATFORM_ID "Tru64"
|
||||
|
||||
#elif defined(__riscos) || defined(__riscos__)
|
||||
# define PLATFORM_ID "RISCos"
|
||||
|
||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
||||
# define PLATFORM_ID "SINIX"
|
||||
|
||||
#elif defined(__UNIX_SV__)
|
||||
# define PLATFORM_ID "UNIX_SV"
|
||||
|
||||
#elif defined(__bsdos__)
|
||||
# define PLATFORM_ID "BSDOS"
|
||||
|
||||
#elif defined(_MPRAS) || defined(MPRAS)
|
||||
# define PLATFORM_ID "MP-RAS"
|
||||
|
||||
#elif defined(__osf) || defined(__osf__)
|
||||
# define PLATFORM_ID "OSF1"
|
||||
|
||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
||||
# define PLATFORM_ID "SCO_SV"
|
||||
|
||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
||||
# define PLATFORM_ID "ULTRIX"
|
||||
|
||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
||||
# define PLATFORM_ID "Xenix"
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(__LINUX__)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
# elif defined(__DOS__)
|
||||
# define PLATFORM_ID "DOS"
|
||||
|
||||
# elif defined(__OS2__)
|
||||
# define PLATFORM_ID "OS2"
|
||||
|
||||
# elif defined(__WINDOWS__)
|
||||
# define PLATFORM_ID "Windows3x"
|
||||
|
||||
# elif defined(__VXWORKS__)
|
||||
# define PLATFORM_ID "VxWorks"
|
||||
|
||||
# else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
# endif
|
||||
|
||||
#elif defined(__INTEGRITY)
|
||||
# if defined(INT_178B)
|
||||
# define PLATFORM_ID "Integrity178"
|
||||
|
||||
# else /* regular Integrity */
|
||||
# define PLATFORM_ID "Integrity"
|
||||
# endif
|
||||
|
||||
# elif defined(_ADI_COMPILER)
|
||||
# define PLATFORM_ID "ADSP"
|
||||
|
||||
#else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
|
||||
#endif
|
||||
|
||||
/* For windows compilers MSVC and Intel we can determine
|
||||
the architecture of the compiler being used. This is because
|
||||
the compilers do not have flags that can change the architecture,
|
||||
but rather depend on which compiler is being used
|
||||
*/
|
||||
#if defined(_WIN32) && defined(_MSC_VER)
|
||||
# if defined(_M_IA64)
|
||||
# define ARCHITECTURE_ID "IA64"
|
||||
|
||||
# elif defined(_M_ARM64EC)
|
||||
# define ARCHITECTURE_ID "ARM64EC"
|
||||
|
||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# elif defined(_M_ARM64)
|
||||
# define ARCHITECTURE_ID "ARM64"
|
||||
|
||||
# elif defined(_M_ARM)
|
||||
# if _M_ARM == 4
|
||||
# define ARCHITECTURE_ID "ARMV4I"
|
||||
# elif _M_ARM == 5
|
||||
# define ARCHITECTURE_ID "ARMV5I"
|
||||
# else
|
||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
||||
# endif
|
||||
|
||||
# elif defined(_M_MIPS)
|
||||
# define ARCHITECTURE_ID "MIPS"
|
||||
|
||||
# elif defined(_M_SH)
|
||||
# define ARCHITECTURE_ID "SHx"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(_M_I86)
|
||||
# define ARCHITECTURE_ID "I86"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# if defined(__ICCARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__ICCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__ICCRH850__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# elif defined(__ICCRL78__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__ICCRISCV__)
|
||||
# define ARCHITECTURE_ID "RISCV"
|
||||
|
||||
# elif defined(__ICCAVR__)
|
||||
# define ARCHITECTURE_ID "AVR"
|
||||
|
||||
# elif defined(__ICC430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__ICCV850__)
|
||||
# define ARCHITECTURE_ID "V850"
|
||||
|
||||
# elif defined(__ICC8051__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__ICCSTM8__)
|
||||
# define ARCHITECTURE_ID "STM8"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# if defined(__PPC64__)
|
||||
# define ARCHITECTURE_ID "PPC64"
|
||||
|
||||
# elif defined(__ppc__)
|
||||
# define ARCHITECTURE_ID "PPC"
|
||||
|
||||
# elif defined(__ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(__i386__)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# if defined(__ARM_ARCH)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# if defined(__TI_ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__MSP430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__TMS320C28XX__)
|
||||
# define ARCHITECTURE_ID "TMS320C28x"
|
||||
|
||||
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
|
||||
# define ARCHITECTURE_ID "TMS320C6x"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
# elif defined(__ADSPSHARC__)
|
||||
# define ARCHITECTURE_ID "SHARC"
|
||||
|
||||
# elif defined(__ADSPBLACKFIN__)
|
||||
# define ARCHITECTURE_ID "Blackfin"
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
|
||||
# if defined(__CTC__) || defined(__CPTC__)
|
||||
# define ARCHITECTURE_ID "TriCore"
|
||||
|
||||
# elif defined(__CMCS__)
|
||||
# define ARCHITECTURE_ID "MCS"
|
||||
|
||||
# elif defined(__CARM__) || defined(__CPARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__CARC__)
|
||||
# define ARCHITECTURE_ID "ARC"
|
||||
|
||||
# elif defined(__C51__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__CPCP__)
|
||||
# define ARCHITECTURE_ID "PCP"
|
||||
|
||||
# else
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__RENESAS__)
|
||||
# if defined(__CCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__CCRL__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__CCRH__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# else
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#else
|
||||
# define ARCHITECTURE_ID
|
||||
#endif
|
||||
|
||||
/* Convert integer to decimal digit literals. */
|
||||
#define DEC(n) \
|
||||
('0' + (((n) / 10000000)%10)), \
|
||||
('0' + (((n) / 1000000)%10)), \
|
||||
('0' + (((n) / 100000)%10)), \
|
||||
('0' + (((n) / 10000)%10)), \
|
||||
('0' + (((n) / 1000)%10)), \
|
||||
('0' + (((n) / 100)%10)), \
|
||||
('0' + (((n) / 10)%10)), \
|
||||
('0' + ((n) % 10))
|
||||
|
||||
/* Convert integer to hex digit literals. */
|
||||
#define HEX(n) \
|
||||
('0' + ((n)>>28 & 0xF)), \
|
||||
('0' + ((n)>>24 & 0xF)), \
|
||||
('0' + ((n)>>20 & 0xF)), \
|
||||
('0' + ((n)>>16 & 0xF)), \
|
||||
('0' + ((n)>>12 & 0xF)), \
|
||||
('0' + ((n)>>8 & 0xF)), \
|
||||
('0' + ((n)>>4 & 0xF)), \
|
||||
('0' + ((n) & 0xF))
|
||||
|
||||
/* Construct a string literal encoding the version number. */
|
||||
#ifdef COMPILER_VERSION
|
||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#elif defined(COMPILER_VERSION_MAJOR)
|
||||
char const info_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
||||
COMPILER_VERSION_MAJOR,
|
||||
# ifdef COMPILER_VERSION_MINOR
|
||||
'.', COMPILER_VERSION_MINOR,
|
||||
# ifdef COMPILER_VERSION_PATCH
|
||||
'.', COMPILER_VERSION_PATCH,
|
||||
# ifdef COMPILER_VERSION_TWEAK
|
||||
'.', COMPILER_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the internal version number. */
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
char const info_version_internal[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
||||
'i','n','t','e','r','n','a','l','[',
|
||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
char const info_simulate_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
||||
SIMULATE_VERSION_MAJOR,
|
||||
# ifdef SIMULATE_VERSION_MINOR
|
||||
'.', SIMULATE_VERSION_MINOR,
|
||||
# ifdef SIMULATE_VERSION_PATCH
|
||||
'.', SIMULATE_VERSION_PATCH,
|
||||
# ifdef SIMULATE_VERSION_TWEAK
|
||||
'.', SIMULATE_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
||||
|
||||
|
||||
|
||||
#define C_STD_99 199901L
|
||||
#define C_STD_11 201112L
|
||||
#define C_STD_17 201710L
|
||||
#define C_STD_23 202311L
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# define C_STD __STDC_VERSION__
|
||||
#endif
|
||||
|
||||
#if !defined(__STDC__) && !defined(__clang__) && !defined(__RENESAS__)
|
||||
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
|
||||
# define C_VERSION "90"
|
||||
# else
|
||||
# define C_VERSION
|
||||
# endif
|
||||
#elif C_STD > C_STD_17
|
||||
# define C_VERSION "23"
|
||||
#elif C_STD > C_STD_11
|
||||
# define C_VERSION "17"
|
||||
#elif C_STD > C_STD_99
|
||||
# define C_VERSION "11"
|
||||
#elif C_STD >= C_STD_99
|
||||
# define C_VERSION "99"
|
||||
#else
|
||||
# define C_VERSION "90"
|
||||
#endif
|
||||
const char* info_language_standard_default =
|
||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef ID_VOID_MAIN
|
||||
void main() {}
|
||||
#else
|
||||
# if defined(__CLASSIC_C__)
|
||||
int main(argc, argv) int argc; char *argv[];
|
||||
# else
|
||||
int main(int argc, char* argv[])
|
||||
# endif
|
||||
{
|
||||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
require += info_arch[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
require += info_version_internal[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_ID
|
||||
require += info_simulate[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
#endif
|
||||
Executable
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# Relative path conversion top directories.
|
||||
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/axel/Vídeos/winrarcomgpu")
|
||||
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/axel/Vídeos/winrarcomgpu/build")
|
||||
|
||||
# Force unix paths in dependencies.
|
||||
set(CMAKE_FORCE_UNIX_PATHS 1)
|
||||
|
||||
|
||||
# The C and CXX include file regular expressions for this directory.
|
||||
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
|
||||
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
|
||||
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
|
||||
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
|
||||
@@ -0,0 +1,4 @@
|
||||
# Hashes of file build rules.
|
||||
281b0114537f2efefb41c728f0e459f4 CMakeFiles/shaders
|
||||
3c51dded850b2342603d754d0fd7e0dd shaders/compress.comp.spv
|
||||
578fa43d10901b0da26df6965912459f shaders/decompress.comp.spv
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"InstallScripts" :
|
||||
[
|
||||
"/home/axel/V\u00eddeos/winrarcomgpu/build/cmake_install.cmake"
|
||||
],
|
||||
"Parallel" : false
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# The generator used is:
|
||||
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
|
||||
|
||||
# The top level Makefile was generated from the following files:
|
||||
set(CMAKE_MAKEFILE_DEPENDS
|
||||
"CMakeCache.txt"
|
||||
"/home/axel/Vídeos/winrarcomgpu/CMakeLists.txt"
|
||||
"CMakeFiles/4.3.1/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/4.3.1/CMakeSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCCompiler.cmake.in"
|
||||
"/usr/share/cmake/Modules/CMakeCCompilerABI.c"
|
||||
"/usr/share/cmake/Modules/CMakeCInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeFindBinUtils.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystem.cmake.in"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeTestCCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeUnixFindMake.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Diab-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Renesas-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake"
|
||||
"/usr/share/cmake/Modules/FindPackageMessage.cmake"
|
||||
"/usr/share/cmake/Modules/FindVulkan.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeInspectCLinker.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/FeatureTesting.cmake"
|
||||
"/usr/share/cmake/Modules/Linker/GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Linker/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/UnixPaths.cmake"
|
||||
)
|
||||
|
||||
# The corresponding makefile is:
|
||||
set(CMAKE_MAKEFILE_OUTPUTS
|
||||
"Makefile"
|
||||
"CMakeFiles/cmake.check_cache"
|
||||
)
|
||||
|
||||
# Byproducts of CMake generate step:
|
||||
set(CMAKE_MAKEFILE_PRODUCTS
|
||||
"CMakeFiles/4.3.1/CMakeSystem.cmake"
|
||||
"CMakeFiles/4.3.1/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/4.3.1/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/4.3.1/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/CMakeDirectoryInformation.cmake"
|
||||
)
|
||||
|
||||
# Dependency information for all targets:
|
||||
set(CMAKE_DEPEND_INFO_FILES
|
||||
"CMakeFiles/vkzip.dir/DependInfo.cmake"
|
||||
"CMakeFiles/shaders.dir/DependInfo.cmake"
|
||||
)
|
||||
@@ -0,0 +1,157 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
default_target: all
|
||||
.PHONY : default_target
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/axel/Vídeos/winrarcomgpu/build
|
||||
|
||||
#=============================================================================
|
||||
# Directory level rules for the build root directory
|
||||
|
||||
# The main recursive "all" target.
|
||||
all: CMakeFiles/vkzip.dir/all
|
||||
all: CMakeFiles/shaders.dir/all
|
||||
.PHONY : all
|
||||
|
||||
# The main recursive "codegen" target.
|
||||
codegen: CMakeFiles/vkzip.dir/codegen
|
||||
codegen: CMakeFiles/shaders.dir/codegen
|
||||
.PHONY : codegen
|
||||
|
||||
# The main recursive "preinstall" target.
|
||||
preinstall:
|
||||
.PHONY : preinstall
|
||||
|
||||
# The main recursive "clean" target.
|
||||
clean: CMakeFiles/vkzip.dir/clean
|
||||
clean: CMakeFiles/shaders.dir/clean
|
||||
.PHONY : clean
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for target CMakeFiles/vkzip.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/vkzip.dir/all: CMakeFiles/shaders.dir/all
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=3,4,5,6,7,8,9 "Built target vkzip"
|
||||
.PHONY : CMakeFiles/vkzip.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/vkzip.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles 9
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/vkzip.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/vkzip.dir/rule
|
||||
|
||||
# Convenience name for target.
|
||||
vkzip: CMakeFiles/vkzip.dir/rule
|
||||
.PHONY : vkzip
|
||||
|
||||
# codegen rule for target.
|
||||
CMakeFiles/vkzip.dir/codegen: CMakeFiles/shaders.dir/all
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/codegen
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=3,4,5,6,7,8,9 "Finished codegen for target vkzip"
|
||||
.PHONY : CMakeFiles/vkzip.dir/codegen
|
||||
|
||||
# clean rule for target.
|
||||
CMakeFiles/vkzip.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/clean
|
||||
.PHONY : CMakeFiles/vkzip.dir/clean
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for target CMakeFiles/shaders.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/shaders.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/shaders.dir/build.make CMakeFiles/shaders.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/shaders.dir/build.make CMakeFiles/shaders.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=1,2 "Built target shaders"
|
||||
.PHONY : CMakeFiles/shaders.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/shaders.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles 2
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/shaders.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/shaders.dir/rule
|
||||
|
||||
# Convenience name for target.
|
||||
shaders: CMakeFiles/shaders.dir/rule
|
||||
.PHONY : shaders
|
||||
|
||||
# codegen rule for target.
|
||||
CMakeFiles/shaders.dir/codegen:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/shaders.dir/build.make CMakeFiles/shaders.dir/codegen
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=1,2 "Finished codegen for target shaders"
|
||||
.PHONY : CMakeFiles/shaders.dir/codegen
|
||||
|
||||
# clean rule for target.
|
||||
CMakeFiles/shaders.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/shaders.dir/build.make CMakeFiles/shaders.dir/clean
|
||||
.PHONY : CMakeFiles/shaders.dir/clean
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
# Special rule to run CMake to check the build system integrity.
|
||||
# No rule that depends on this can have commands that come from listfiles
|
||||
# because they might be regenerated.
|
||||
cmake_check_build_system:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
|
||||
.PHONY : cmake_check_build_system
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/shaders.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/edit_cache.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/rebuild_cache.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/list_install_components.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/install.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/install/local.dir
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/install/strip.dir
|
||||
@@ -0,0 +1 @@
|
||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
|
||||
@@ -0,0 +1 @@
|
||||
9
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
# Consider dependencies only in project.
|
||||
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
|
||||
|
||||
# The set of languages for which implicit dependencies are needed:
|
||||
set(CMAKE_DEPENDS_LANGUAGES
|
||||
)
|
||||
|
||||
# The set of dependency files which are needed:
|
||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Fortran module output directory.
|
||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||
@@ -0,0 +1,100 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# Delete rule output on recipe failure.
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/axel/Vídeos/winrarcomgpu/build
|
||||
|
||||
# Utility rule file for shaders.
|
||||
|
||||
# Include any custom commands dependencies for this target.
|
||||
include CMakeFiles/shaders.dir/compiler_depend.make
|
||||
|
||||
# Include the progress variables for this target.
|
||||
include CMakeFiles/shaders.dir/progress.make
|
||||
|
||||
CMakeFiles/shaders: shaders/compress.comp.spv
|
||||
CMakeFiles/shaders: shaders/decompress.comp.spv
|
||||
|
||||
shaders/compress.comp.spv: /home/axel/Vídeos/winrarcomgpu/shaders/compress.comp
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Compiling shader compress.comp -> SPIR-V"
|
||||
/bin/glslc -o /home/axel/Vídeos/winrarcomgpu/build/shaders/compress.comp.spv /home/axel/Vídeos/winrarcomgpu/shaders/compress.comp
|
||||
|
||||
shaders/decompress.comp.spv: /home/axel/Vídeos/winrarcomgpu/shaders/decompress.comp
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Compiling shader decompress.comp -> SPIR-V"
|
||||
/bin/glslc -o /home/axel/Vídeos/winrarcomgpu/build/shaders/decompress.comp.spv /home/axel/Vídeos/winrarcomgpu/shaders/decompress.comp
|
||||
|
||||
CMakeFiles/shaders.dir/codegen:
|
||||
.PHONY : CMakeFiles/shaders.dir/codegen
|
||||
|
||||
shaders: CMakeFiles/shaders
|
||||
shaders: shaders/compress.comp.spv
|
||||
shaders: shaders/decompress.comp.spv
|
||||
shaders: CMakeFiles/shaders.dir/build.make
|
||||
.PHONY : shaders
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
CMakeFiles/shaders.dir/build: shaders
|
||||
.PHONY : CMakeFiles/shaders.dir/build
|
||||
|
||||
CMakeFiles/shaders.dir/clean:
|
||||
$(CMAKE_COMMAND) -P CMakeFiles/shaders.dir/cmake_clean.cmake
|
||||
.PHONY : CMakeFiles/shaders.dir/clean
|
||||
|
||||
CMakeFiles/shaders.dir/depend:
|
||||
cd /home/axel/Vídeos/winrarcomgpu/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/axel/Vídeos/winrarcomgpu /home/axel/Vídeos/winrarcomgpu /home/axel/Vídeos/winrarcomgpu/build /home/axel/Vídeos/winrarcomgpu/build /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/shaders.dir/DependInfo.cmake "--color=$(COLOR)" shaders
|
||||
.PHONY : CMakeFiles/shaders.dir/depend
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
file(REMOVE_RECURSE
|
||||
"CMakeFiles/shaders"
|
||||
"shaders/compress.comp.spv"
|
||||
"shaders/decompress.comp.spv"
|
||||
)
|
||||
|
||||
# Per-language clean rules from dependency scanning.
|
||||
foreach(lang )
|
||||
include(CMakeFiles/shaders.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||
endforeach()
|
||||
@@ -0,0 +1,2 @@
|
||||
# Empty custom commands generated dependencies file for shaders.
|
||||
# This may be replaced when dependencies are built.
|
||||
@@ -0,0 +1,2 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Timestamp file for custom commands dependencies management for shaders.
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_PROGRESS_1 = 1
|
||||
CMAKE_PROGRESS_2 = 2
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
# Consider dependencies only in project.
|
||||
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
|
||||
|
||||
# The set of languages for which implicit dependencies are needed:
|
||||
set(CMAKE_DEPENDS_LANGUAGES
|
||||
)
|
||||
|
||||
# The set of dependency files which are needed:
|
||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c" "CMakeFiles/vkzip.dir/src/cpu_fallback.c.o" "gcc" "CMakeFiles/vkzip.dir/src/cpu_fallback.c.o.d"
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c" "CMakeFiles/vkzip.dir/src/gpu_compress.c.o" "gcc" "CMakeFiles/vkzip.dir/src/gpu_compress.c.o.d"
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/gpu_context.c" "CMakeFiles/vkzip.dir/src/gpu_context.c.o" "gcc" "CMakeFiles/vkzip.dir/src/gpu_context.c.o.d"
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c" "CMakeFiles/vkzip.dir/src/gpu_decompress.c.o" "gcc" "CMakeFiles/vkzip.dir/src/gpu_decompress.c.o.d"
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/main.c" "CMakeFiles/vkzip.dir/src/main.c.o" "gcc" "CMakeFiles/vkzip.dir/src/main.c.o.d"
|
||||
"/home/axel/Vídeos/winrarcomgpu/src/vkz_format.c" "CMakeFiles/vkzip.dir/src/vkz_format.c.o" "gcc" "CMakeFiles/vkzip.dir/src/vkz_format.c.o.d"
|
||||
"" "vkzip" "gcc" "CMakeFiles/vkzip.dir/link.d"
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Fortran module output directory.
|
||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||
@@ -0,0 +1,195 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# Delete rule output on recipe failure.
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/axel/Vídeos/winrarcomgpu/build
|
||||
|
||||
# Include any dependencies generated for this target.
|
||||
include CMakeFiles/vkzip.dir/depend.make
|
||||
# Include any dependencies generated by the compiler for this target.
|
||||
include CMakeFiles/vkzip.dir/compiler_depend.make
|
||||
|
||||
# Include the progress variables for this target.
|
||||
include CMakeFiles/vkzip.dir/progress.make
|
||||
|
||||
# Include the compile flags for this target's objects.
|
||||
include CMakeFiles/vkzip.dir/flags.make
|
||||
|
||||
CMakeFiles/vkzip.dir/codegen:
|
||||
.PHONY : CMakeFiles/vkzip.dir/codegen
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/main.c.o: /home/axel/Vídeos/winrarcomgpu/src/main.c
|
||||
CMakeFiles/vkzip.dir/src/main.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/vkzip.dir/src/main.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/main.c.o -MF CMakeFiles/vkzip.dir/src/main.c.o.d -o CMakeFiles/vkzip.dir/src/main.c.o -c /home/axel/Vídeos/winrarcomgpu/src/main.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/main.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/main.c > CMakeFiles/vkzip.dir/src/main.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/main.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/main.c -o CMakeFiles/vkzip.dir/src/main.c.s
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o: /home/axel/Vídeos/winrarcomgpu/src/vkz_format.c
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object CMakeFiles/vkzip.dir/src/vkz_format.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/vkz_format.c.o -MF CMakeFiles/vkzip.dir/src/vkz_format.c.o.d -o CMakeFiles/vkzip.dir/src/vkz_format.c.o -c /home/axel/Vídeos/winrarcomgpu/src/vkz_format.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/vkz_format.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/vkz_format.c > CMakeFiles/vkzip.dir/src/vkz_format.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/vkz_format.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/vkz_format.c -o CMakeFiles/vkzip.dir/src/vkz_format.c.s
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_context.c
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object CMakeFiles/vkzip.dir/src/gpu_context.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/gpu_context.c.o -MF CMakeFiles/vkzip.dir/src/gpu_context.c.o.d -o CMakeFiles/vkzip.dir/src/gpu_context.c.o -c /home/axel/Vídeos/winrarcomgpu/src/gpu_context.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/gpu_context.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/gpu_context.c > CMakeFiles/vkzip.dir/src/gpu_context.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/gpu_context.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/gpu_context.c -o CMakeFiles/vkzip.dir/src/gpu_context.c.s
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object CMakeFiles/vkzip.dir/src/gpu_compress.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/gpu_compress.c.o -MF CMakeFiles/vkzip.dir/src/gpu_compress.c.o.d -o CMakeFiles/vkzip.dir/src/gpu_compress.c.o -c /home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/gpu_compress.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c > CMakeFiles/vkzip.dir/src/gpu_compress.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/gpu_compress.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c -o CMakeFiles/vkzip.dir/src/gpu_compress.c.s
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object CMakeFiles/vkzip.dir/src/gpu_decompress.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/gpu_decompress.c.o -MF CMakeFiles/vkzip.dir/src/gpu_decompress.c.o.d -o CMakeFiles/vkzip.dir/src/gpu_decompress.c.o -c /home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/gpu_decompress.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c > CMakeFiles/vkzip.dir/src/gpu_decompress.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/gpu_decompress.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c -o CMakeFiles/vkzip.dir/src/gpu_decompress.c.s
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o: CMakeFiles/vkzip.dir/flags.make
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o: /home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object CMakeFiles/vkzip.dir/src/cpu_fallback.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/vkzip.dir/src/cpu_fallback.c.o -MF CMakeFiles/vkzip.dir/src/cpu_fallback.c.o.d -o CMakeFiles/vkzip.dir/src/cpu_fallback.c.o -c /home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/vkzip.dir/src/cpu_fallback.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c > CMakeFiles/vkzip.dir/src/cpu_fallback.c.i
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/vkzip.dir/src/cpu_fallback.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c -o CMakeFiles/vkzip.dir/src/cpu_fallback.c.s
|
||||
|
||||
# Object files for target vkzip
|
||||
vkzip_OBJECTS = \
|
||||
"CMakeFiles/vkzip.dir/src/main.c.o" \
|
||||
"CMakeFiles/vkzip.dir/src/vkz_format.c.o" \
|
||||
"CMakeFiles/vkzip.dir/src/gpu_context.c.o" \
|
||||
"CMakeFiles/vkzip.dir/src/gpu_compress.c.o" \
|
||||
"CMakeFiles/vkzip.dir/src/gpu_decompress.c.o" \
|
||||
"CMakeFiles/vkzip.dir/src/cpu_fallback.c.o"
|
||||
|
||||
# External object files for target vkzip
|
||||
vkzip_EXTERNAL_OBJECTS =
|
||||
|
||||
vkzip: CMakeFiles/vkzip.dir/src/main.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/src/vkz_format.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/src/gpu_context.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/src/gpu_compress.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/src/gpu_decompress.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/src/cpu_fallback.c.o
|
||||
vkzip: CMakeFiles/vkzip.dir/build.make
|
||||
vkzip: CMakeFiles/vkzip.dir/compiler_depend.ts
|
||||
vkzip: /usr/lib/libvulkan.so
|
||||
vkzip: CMakeFiles/vkzip.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Linking C executable vkzip"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/vkzip.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
CMakeFiles/vkzip.dir/build: vkzip
|
||||
.PHONY : CMakeFiles/vkzip.dir/build
|
||||
|
||||
CMakeFiles/vkzip.dir/clean:
|
||||
$(CMAKE_COMMAND) -P CMakeFiles/vkzip.dir/cmake_clean.cmake
|
||||
.PHONY : CMakeFiles/vkzip.dir/clean
|
||||
|
||||
CMakeFiles/vkzip.dir/depend:
|
||||
cd /home/axel/Vídeos/winrarcomgpu/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/axel/Vídeos/winrarcomgpu /home/axel/Vídeos/winrarcomgpu /home/axel/Vídeos/winrarcomgpu/build /home/axel/Vídeos/winrarcomgpu/build /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/DependInfo.cmake "--color=$(COLOR)" vkzip
|
||||
.PHONY : CMakeFiles/vkzip.dir/depend
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
file(REMOVE_RECURSE
|
||||
"CMakeFiles/vkzip.dir/link.d"
|
||||
"CMakeFiles/vkzip.dir/src/cpu_fallback.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/cpu_fallback.c.o.d"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_compress.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_compress.c.o.d"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_context.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_context.c.o.d"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_decompress.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/gpu_decompress.c.o.d"
|
||||
"CMakeFiles/vkzip.dir/src/main.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/main.c.o.d"
|
||||
"CMakeFiles/vkzip.dir/src/vkz_format.c.o"
|
||||
"CMakeFiles/vkzip.dir/src/vkz_format.c.o.d"
|
||||
"vkzip"
|
||||
"vkzip.pdb"
|
||||
)
|
||||
|
||||
# Per-language clean rules from dependency scanning.
|
||||
foreach(lang C)
|
||||
include(CMakeFiles/vkzip.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||
endforeach()
|
||||
@@ -0,0 +1,608 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h
|
||||
/usr/include/vulkan/vk_platform.h
|
||||
/usr/include/vulkan/vulkan.h
|
||||
/usr/include/vulkan/vulkan_core.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h
|
||||
/usr/include/vulkan/vk_platform.h
|
||||
/usr/include/vulkan/vulkan.h
|
||||
/usr/include/vulkan/vulkan_core.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h
|
||||
/usr/include/vulkan/vk_platform.h
|
||||
/usr/include/vulkan/vulkan.h
|
||||
/usr/include/vulkan/vulkan_core.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/main.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h
|
||||
/usr/include/vulkan/vk_platform.h
|
||||
/usr/include/vulkan/vulkan.h
|
||||
/usr/include/vulkan/vulkan_core.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.c
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/stat.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
vkzip
|
||||
/usr/lib/Scrt1.o
|
||||
/usr/lib/crti.o
|
||||
/usr/lib/crtn.o
|
||||
/usr/lib/libc.so
|
||||
/usr/lib/libgcc_s.so
|
||||
/usr/lib/libgcc_s.so.1
|
||||
/usr/lib/libm.so
|
||||
/usr/lib/libpthread.a
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a
|
||||
/usr/lib/ld-linux-x86-64.so.2
|
||||
/usr/lib/libc.so.6
|
||||
/usr/lib/libc_nonshared.a
|
||||
/usr/lib/libm.so.6
|
||||
/usr/lib/libmvec.so.1
|
||||
/usr/lib/libvulkan.so
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/cpu_fallback.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/gpu_compress.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/gpu_context.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/gpu_decompress.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/main.c.o
|
||||
/home/axel/Vídeos/winrarcomgpu/build/CMakeFiles/vkzip.dir/src/vkz_format.c.o
|
||||
|
||||
@@ -0,0 +1,861 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o: /home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vulkan/vk_platform.h \
|
||||
/usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vulkan_core.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_context.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vulkan/vk_platform.h \
|
||||
/usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vulkan_core.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o: /home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vulkan/vk_platform.h \
|
||||
/usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vulkan_core.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.o: /home/axel/Vídeos/winrarcomgpu/src/main.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vulkan/vk_platform.h \
|
||||
/usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vulkan_core.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o: /home/axel/Vídeos/winrarcomgpu/src/vkz_format.c \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-bsearch.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/stat.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
|
||||
|
||||
vkzip: /usr/lib/Scrt1.o \
|
||||
/usr/lib/crti.o \
|
||||
/usr/lib/crtn.o \
|
||||
/usr/lib/libc.so \
|
||||
/usr/lib/libgcc_s.so \
|
||||
/usr/lib/libgcc_s.so.1 \
|
||||
/usr/lib/libm.so \
|
||||
/usr/lib/libpthread.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
|
||||
/usr/lib/ld-linux-x86-64.so.2 \
|
||||
/usr/lib/libc.so.6 \
|
||||
/usr/lib/libc_nonshared.a \
|
||||
/usr/lib/libm.so.6 \
|
||||
/usr/lib/libmvec.so.1 \
|
||||
/usr/lib/libvulkan.so \
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o \
|
||||
CMakeFiles/vkzip.dir/src/main.c.o \
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o
|
||||
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o:
|
||||
|
||||
/usr/include/bits/types/struct_timespec.h:
|
||||
|
||||
/usr/include/bits/types/struct_FILE.h:
|
||||
|
||||
/usr/include/sys/stat.h:
|
||||
|
||||
/usr/include/bits/types/locale_t.h:
|
||||
|
||||
/usr/include/bits/uintn-identity.h:
|
||||
|
||||
/usr/include/bits/types/cookie_io_functions_t.h:
|
||||
|
||||
/usr/include/bits/stdint-uintn.h:
|
||||
|
||||
/usr/include/endian.h:
|
||||
|
||||
/usr/include/bits/types/clockid_t.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h:
|
||||
|
||||
/usr/include/bits/stdio.h:
|
||||
|
||||
/usr/include/bits/types/__locale_t.h:
|
||||
|
||||
/usr/include/bits/types/clock_t.h:
|
||||
|
||||
/usr/include/bits/types/__fpos_t.h:
|
||||
|
||||
/usr/include/bits/types/__FILE.h:
|
||||
|
||||
/usr/include/bits/types/FILE.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o:
|
||||
|
||||
/usr/include/bits/types.h:
|
||||
|
||||
/usr/include/bits/getopt_core.h:
|
||||
|
||||
/usr/lib/libc_nonshared.a:
|
||||
|
||||
/usr/include/bits/types/time_t.h:
|
||||
|
||||
/usr/include/bits/struct_stat.h:
|
||||
|
||||
/usr/include/bits/struct_mutex.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h:
|
||||
|
||||
/usr/include/stdio.h:
|
||||
|
||||
/usr/include/string.h:
|
||||
|
||||
/usr/include/bits/byteswap.h:
|
||||
|
||||
/usr/include/bits/struct_rwlock.h:
|
||||
|
||||
/usr/include/bits/types/struct_itimerspec.h:
|
||||
|
||||
/usr/include/sys/types.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h:
|
||||
|
||||
/usr/include/bits/types/__sigset_t.h:
|
||||
|
||||
/usr/include/bits/stdlib-float.h:
|
||||
|
||||
/usr/include/bits/time64.h:
|
||||
|
||||
/usr/lib/libvulkan.so:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o:
|
||||
|
||||
/usr/include/bits/atomic_wide_counter.h:
|
||||
|
||||
/usr/include/bits/posix_opt.h:
|
||||
|
||||
/usr/include/bits/floatn-common.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h:
|
||||
|
||||
/usr/include/bits/floatn.h:
|
||||
|
||||
/usr/include/bits/pthreadtypes.h:
|
||||
|
||||
/usr/include/bits/thread-shared-types.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o:
|
||||
|
||||
/usr/include/bits/stdint-intn.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h:
|
||||
|
||||
/usr/include/bits/environments.h:
|
||||
|
||||
/usr/include/sys/select.h:
|
||||
|
||||
/usr/lib/libm.so.6:
|
||||
|
||||
/usr/include/bits/types/struct_tm.h:
|
||||
|
||||
/usr/include/bits/wchar.h:
|
||||
|
||||
/usr/include/bits/types/struct_timeval.h:
|
||||
|
||||
/usr/include/bits/types/__mbstate_t.h:
|
||||
|
||||
/usr/include/bits/time.h:
|
||||
|
||||
/usr/include/bits/stdio_lim.h:
|
||||
|
||||
/usr/include/bits/long-double.h:
|
||||
|
||||
/usr/include/bits/libc-header-start.h:
|
||||
|
||||
/usr/include/bits/types/__fpos64_t.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c:
|
||||
|
||||
/usr/include/bits/select.h:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o:
|
||||
|
||||
/usr/include/alloca.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h:
|
||||
|
||||
/usr/include/bits/stdint-least.h:
|
||||
|
||||
/usr/include/bits/types/sigset_t.h:
|
||||
|
||||
/usr/include/bits/stdlib-bsearch.h:
|
||||
|
||||
/usr/include/bits/waitflags.h:
|
||||
|
||||
/usr/include/bits/timesize.h:
|
||||
|
||||
/usr/include/bits/waitstatus.h:
|
||||
|
||||
/usr/include/bits/getopt_posix.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h:
|
||||
|
||||
/usr/include/bits/wordsize.h:
|
||||
|
||||
/usr/include/features-time64.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.c:
|
||||
|
||||
/usr/include/bits/endianness.h:
|
||||
|
||||
/usr/include/features.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h:
|
||||
|
||||
/usr/include/gnu/stubs-64.h:
|
||||
|
||||
/usr/include/bits/pthreadtypes-arch.h:
|
||||
|
||||
/usr/include/gnu/stubs.h:
|
||||
|
||||
/usr/include/stdint.h:
|
||||
|
||||
/usr/include/stdlib.h:
|
||||
|
||||
/usr/include/vulkan/vulkan_core.h:
|
||||
|
||||
/usr/include/strings.h:
|
||||
|
||||
/usr/include/sys/cdefs.h:
|
||||
|
||||
/usr/include/unistd.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h:
|
||||
|
||||
/usr/include/bits/unistd_ext.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h:
|
||||
|
||||
/usr/include/bits/endian.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h:
|
||||
|
||||
/usr/include/time.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h:
|
||||
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h:
|
||||
|
||||
/usr/include/stdc-predef.h:
|
||||
|
||||
/usr/include/vulkan/vk_platform.h:
|
||||
|
||||
/usr/include/vulkan/vulkan.h:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c:
|
||||
|
||||
/usr/lib/libmvec.so.1:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/main.c:
|
||||
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.c:
|
||||
|
||||
/usr/lib/libgcc_s.so:
|
||||
|
||||
/usr/include/bits/types/timer_t.h:
|
||||
|
||||
/usr/lib/Scrt1.o:
|
||||
|
||||
/usr/include/bits/typesizes.h:
|
||||
|
||||
/usr/lib/crti.o:
|
||||
|
||||
/usr/lib/crtn.o:
|
||||
|
||||
/usr/lib/libc.so:
|
||||
|
||||
/usr/include/bits/confname.h:
|
||||
|
||||
/usr/lib/libgcc_s.so.1:
|
||||
|
||||
/usr/lib/libm.so:
|
||||
|
||||
/usr/include/bits/stat.h:
|
||||
|
||||
/usr/lib/ld-linux-x86-64.so.2:
|
||||
|
||||
/usr/lib/libc.so.6:
|
||||
|
||||
/usr/lib/libpthread.a:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o:
|
||||
@@ -0,0 +1,2 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Timestamp file for compiler generated dependencies management for vkzip.
|
||||
@@ -0,0 +1,2 @@
|
||||
# Empty dependencies file for vkzip.
|
||||
# This may be replaced when dependencies are built.
|
||||
@@ -0,0 +1,10 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# compile C with /usr/bin/cc
|
||||
C_DEFINES = -DPLATFORM_LINUX -DSHADER_DIR=\"/home/axel/Vídeos/winrarcomgpu/build/shaders\"
|
||||
|
||||
C_INCLUDES = -I/home/axel/Vídeos/winrarcomgpu/src
|
||||
|
||||
C_FLAGS = -std=gnu11 -Wall -Wextra -O2
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
vkzip: \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o \
|
||||
CMakeFiles/vkzip.dir/src/main.c.o \
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o \
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o \
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o \
|
||||
/usr/lib/libvulkan.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so \
|
||||
/usr/lib/libm.so.6 \
|
||||
/usr/lib/libmvec.so.1 \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libpthread.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1 \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
|
||||
/usr/lib/libc.so.6 \
|
||||
/usr/lib/libc_nonshared.a \
|
||||
/usr/lib/ld-linux-x86-64.so.2 \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1 \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o \
|
||||
/usr/lib/ld-linux-x86-64.so.2
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/main.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o:
|
||||
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o:
|
||||
|
||||
/usr/lib/libvulkan.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libm.so:
|
||||
|
||||
/usr/lib/libm.so.6:
|
||||
|
||||
/usr/lib/libmvec.so.1:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libpthread.a:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
|
||||
|
||||
/usr/lib/libc.so.6:
|
||||
|
||||
/usr/lib/libc_nonshared.a:
|
||||
|
||||
/usr/lib/ld-linux-x86-64.so.2:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o:
|
||||
|
||||
/usr/lib/ld-linux-x86-64.so.2:
|
||||
@@ -0,0 +1 @@
|
||||
/usr/bin/cc -Wl,--dependency-file=CMakeFiles/vkzip.dir/link.d CMakeFiles/vkzip.dir/src/main.c.o CMakeFiles/vkzip.dir/src/vkz_format.c.o CMakeFiles/vkzip.dir/src/gpu_context.c.o CMakeFiles/vkzip.dir/src/gpu_compress.c.o CMakeFiles/vkzip.dir/src/gpu_decompress.c.o CMakeFiles/vkzip.dir/src/cpu_fallback.c.o -o vkzip /usr/lib/libvulkan.so -lm -lpthread
|
||||
@@ -0,0 +1,8 @@
|
||||
CMAKE_PROGRESS_1 = 3
|
||||
CMAKE_PROGRESS_2 = 4
|
||||
CMAKE_PROGRESS_3 = 5
|
||||
CMAKE_PROGRESS_4 = 6
|
||||
CMAKE_PROGRESS_5 = 7
|
||||
CMAKE_PROGRESS_6 = 8
|
||||
CMAKE_PROGRESS_7 = 9
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
CMakeFiles/vkzip.dir/src/cpu_fallback.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
CMakeFiles/vkzip.dir/src/gpu_compress.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h /usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vk_platform.h /usr/include/vulkan/vulkan_core.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h
|
||||
Binary file not shown.
@@ -0,0 +1,67 @@
|
||||
CMakeFiles/vkzip.dir/src/gpu_context.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h /usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vk_platform.h /usr/include/vulkan/vulkan_core.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h
|
||||
Binary file not shown.
@@ -0,0 +1,70 @@
|
||||
CMakeFiles/vkzip.dir/src/gpu_decompress.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h /usr/include/vulkan/vulkan.h \
|
||||
/usr/include/vulkan/vk_platform.h /usr/include/vulkan/vulkan_core.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h
|
||||
Binary file not shown.
@@ -0,0 +1,74 @@
|
||||
CMakeFiles/vkzip.dir/src/main.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/main.c /usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/cpu_fallback.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_compress.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_context.h \
|
||||
/usr/include/vulkan/vulkan.h /usr/include/vulkan/vk_platform.h \
|
||||
/usr/include/vulkan/vulkan_core.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codecs_common.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
|
||||
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/gpu_decompress.h \
|
||||
/usr/include/errno.h /usr/include/bits/errno.h \
|
||||
/usr/include/linux/errno.h /usr/include/asm/errno.h \
|
||||
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
|
||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
CMakeFiles/vkzip.dir/src/vkz_format.c.o: \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/vkz_format.h \
|
||||
/home/axel/Vídeos/winrarcomgpu/src/utils.h /usr/include/stdio.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/bits/stdio.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/bits/struct_stat.h \
|
||||
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/confname.h \
|
||||
/usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/unistd_ext.h
|
||||
+379
@@ -0,0 +1,379 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
default_target: all
|
||||
.PHONY : default_target
|
||||
|
||||
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
|
||||
.NOTPARALLEL:
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/axel/Vídeos/winrarcomgpu/build
|
||||
|
||||
#=============================================================================
|
||||
# Targets provided globally by CMake.
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
|
||||
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : edit_cache
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache/fast: edit_cache
|
||||
.PHONY : edit_cache/fast
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
|
||||
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : rebuild_cache
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache/fast: rebuild_cache
|
||||
.PHONY : rebuild_cache/fast
|
||||
|
||||
# Special rule for the target list_install_components
|
||||
list_install_components:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
|
||||
.PHONY : list_install_components
|
||||
|
||||
# Special rule for the target list_install_components
|
||||
list_install_components/fast: list_install_components
|
||||
.PHONY : list_install_components/fast
|
||||
|
||||
# Special rule for the target install
|
||||
install: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
||||
/usr/bin/cmake -P cmake_install.cmake
|
||||
.PHONY : install
|
||||
|
||||
# Special rule for the target install
|
||||
install/fast: preinstall/fast
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
||||
/usr/bin/cmake -P cmake_install.cmake
|
||||
.PHONY : install/fast
|
||||
|
||||
# Special rule for the target install/local
|
||||
install/local: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
||||
.PHONY : install/local
|
||||
|
||||
# Special rule for the target install/local
|
||||
install/local/fast: preinstall/fast
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
||||
.PHONY : install/local/fast
|
||||
|
||||
# Special rule for the target install/strip
|
||||
install/strip: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
||||
.PHONY : install/strip
|
||||
|
||||
# Special rule for the target install/strip
|
||||
install/strip/fast: preinstall/fast
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
||||
.PHONY : install/strip/fast
|
||||
|
||||
# The main all target
|
||||
all: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles /home/axel/Vídeos/winrarcomgpu/build//CMakeFiles/progress.marks
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/axel/Vídeos/winrarcomgpu/build/CMakeFiles 0
|
||||
.PHONY : all
|
||||
|
||||
# The main clean target
|
||||
clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
|
||||
.PHONY : clean
|
||||
|
||||
# The main clean target
|
||||
clean/fast: clean
|
||||
.PHONY : clean/fast
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall: all
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall/fast
|
||||
|
||||
# clear depends
|
||||
depend:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||
.PHONY : depend
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for targets named vkzip
|
||||
|
||||
# Build rule for target.
|
||||
vkzip: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 vkzip
|
||||
.PHONY : vkzip
|
||||
|
||||
# fast build rule for target.
|
||||
vkzip/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/build
|
||||
.PHONY : vkzip/fast
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for targets named shaders
|
||||
|
||||
# Build rule for target.
|
||||
shaders: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 shaders
|
||||
.PHONY : shaders
|
||||
|
||||
# fast build rule for target.
|
||||
shaders/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/shaders.dir/build.make CMakeFiles/shaders.dir/build
|
||||
.PHONY : shaders/fast
|
||||
|
||||
src/cpu_fallback.o: src/cpu_fallback.c.o
|
||||
.PHONY : src/cpu_fallback.o
|
||||
|
||||
# target to build an object file
|
||||
src/cpu_fallback.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/cpu_fallback.c.o
|
||||
.PHONY : src/cpu_fallback.c.o
|
||||
|
||||
src/cpu_fallback.i: src/cpu_fallback.c.i
|
||||
.PHONY : src/cpu_fallback.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/cpu_fallback.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/cpu_fallback.c.i
|
||||
.PHONY : src/cpu_fallback.c.i
|
||||
|
||||
src/cpu_fallback.s: src/cpu_fallback.c.s
|
||||
.PHONY : src/cpu_fallback.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/cpu_fallback.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/cpu_fallback.c.s
|
||||
.PHONY : src/cpu_fallback.c.s
|
||||
|
||||
src/gpu_compress.o: src/gpu_compress.c.o
|
||||
.PHONY : src/gpu_compress.o
|
||||
|
||||
# target to build an object file
|
||||
src/gpu_compress.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_compress.c.o
|
||||
.PHONY : src/gpu_compress.c.o
|
||||
|
||||
src/gpu_compress.i: src/gpu_compress.c.i
|
||||
.PHONY : src/gpu_compress.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/gpu_compress.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_compress.c.i
|
||||
.PHONY : src/gpu_compress.c.i
|
||||
|
||||
src/gpu_compress.s: src/gpu_compress.c.s
|
||||
.PHONY : src/gpu_compress.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/gpu_compress.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_compress.c.s
|
||||
.PHONY : src/gpu_compress.c.s
|
||||
|
||||
src/gpu_context.o: src/gpu_context.c.o
|
||||
.PHONY : src/gpu_context.o
|
||||
|
||||
# target to build an object file
|
||||
src/gpu_context.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_context.c.o
|
||||
.PHONY : src/gpu_context.c.o
|
||||
|
||||
src/gpu_context.i: src/gpu_context.c.i
|
||||
.PHONY : src/gpu_context.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/gpu_context.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_context.c.i
|
||||
.PHONY : src/gpu_context.c.i
|
||||
|
||||
src/gpu_context.s: src/gpu_context.c.s
|
||||
.PHONY : src/gpu_context.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/gpu_context.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_context.c.s
|
||||
.PHONY : src/gpu_context.c.s
|
||||
|
||||
src/gpu_decompress.o: src/gpu_decompress.c.o
|
||||
.PHONY : src/gpu_decompress.o
|
||||
|
||||
# target to build an object file
|
||||
src/gpu_decompress.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_decompress.c.o
|
||||
.PHONY : src/gpu_decompress.c.o
|
||||
|
||||
src/gpu_decompress.i: src/gpu_decompress.c.i
|
||||
.PHONY : src/gpu_decompress.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/gpu_decompress.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_decompress.c.i
|
||||
.PHONY : src/gpu_decompress.c.i
|
||||
|
||||
src/gpu_decompress.s: src/gpu_decompress.c.s
|
||||
.PHONY : src/gpu_decompress.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/gpu_decompress.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/gpu_decompress.c.s
|
||||
.PHONY : src/gpu_decompress.c.s
|
||||
|
||||
src/main.o: src/main.c.o
|
||||
.PHONY : src/main.o
|
||||
|
||||
# target to build an object file
|
||||
src/main.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/main.c.o
|
||||
.PHONY : src/main.c.o
|
||||
|
||||
src/main.i: src/main.c.i
|
||||
.PHONY : src/main.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/main.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/main.c.i
|
||||
.PHONY : src/main.c.i
|
||||
|
||||
src/main.s: src/main.c.s
|
||||
.PHONY : src/main.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/main.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/main.c.s
|
||||
.PHONY : src/main.c.s
|
||||
|
||||
src/vkz_format.o: src/vkz_format.c.o
|
||||
.PHONY : src/vkz_format.o
|
||||
|
||||
# target to build an object file
|
||||
src/vkz_format.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/vkz_format.c.o
|
||||
.PHONY : src/vkz_format.c.o
|
||||
|
||||
src/vkz_format.i: src/vkz_format.c.i
|
||||
.PHONY : src/vkz_format.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/vkz_format.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/vkz_format.c.i
|
||||
.PHONY : src/vkz_format.c.i
|
||||
|
||||
src/vkz_format.s: src/vkz_format.c.s
|
||||
.PHONY : src/vkz_format.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/vkz_format.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vkzip.dir/build.make CMakeFiles/vkzip.dir/src/vkz_format.c.s
|
||||
.PHONY : src/vkz_format.c.s
|
||||
|
||||
# Help Target
|
||||
help:
|
||||
@echo "The following are some of the valid targets for this Makefile:"
|
||||
@echo "... all (the default if no target is provided)"
|
||||
@echo "... clean"
|
||||
@echo "... depend"
|
||||
@echo "... edit_cache"
|
||||
@echo "... install"
|
||||
@echo "... install/local"
|
||||
@echo "... install/strip"
|
||||
@echo "... list_install_components"
|
||||
@echo "... rebuild_cache"
|
||||
@echo "... shaders"
|
||||
@echo "... vkzip"
|
||||
@echo "... src/cpu_fallback.o"
|
||||
@echo "... src/cpu_fallback.i"
|
||||
@echo "... src/cpu_fallback.s"
|
||||
@echo "... src/gpu_compress.o"
|
||||
@echo "... src/gpu_compress.i"
|
||||
@echo "... src/gpu_compress.s"
|
||||
@echo "... src/gpu_context.o"
|
||||
@echo "... src/gpu_context.i"
|
||||
@echo "... src/gpu_context.s"
|
||||
@echo "... src/gpu_decompress.o"
|
||||
@echo "... src/gpu_decompress.i"
|
||||
@echo "... src/gpu_decompress.s"
|
||||
@echo "... src/main.o"
|
||||
@echo "... src/main.i"
|
||||
@echo "... src/main.s"
|
||||
@echo "... src/vkz_format.o"
|
||||
@echo "... src/vkz_format.i"
|
||||
@echo "... src/vkz_format.s"
|
||||
.PHONY : help
|
||||
|
||||
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
# Special rule to run CMake to check the build system integrity.
|
||||
# No rule that depends on this can have commands that come from listfiles
|
||||
# because they might be regenerated.
|
||||
cmake_check_build_system:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
|
||||
.PHONY : cmake_check_build_system
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
# Install script for directory: /home/axel/Vídeos/winrarcomgpu
|
||||
|
||||
# Set the install prefix
|
||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
set(CMAKE_INSTALL_PREFIX "/usr/local")
|
||||
endif()
|
||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# Set the install configuration name.
|
||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
||||
if(BUILD_TYPE)
|
||||
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
||||
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_CONFIG_NAME "")
|
||||
endif()
|
||||
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
||||
endif()
|
||||
|
||||
# Set the component getting installed.
|
||||
if(NOT CMAKE_INSTALL_COMPONENT)
|
||||
if(COMPONENT)
|
||||
message(STATUS "Install component: \"${COMPONENT}\"")
|
||||
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_COMPONENT)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Install shared libraries without execute permission?
|
||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
|
||||
set(CMAKE_INSTALL_SO_NO_EXE "0")
|
||||
endif()
|
||||
|
||||
# Is this installation the result of a crosscompile?
|
||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
endif()
|
||||
|
||||
# Set path to fallback-tool for dependency-resolution.
|
||||
if(NOT DEFINED CMAKE_OBJDUMP)
|
||||
set(CMAKE_OBJDUMP "/usr/bin/objdump")
|
||||
endif()
|
||||
|
||||
if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
|
||||
if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip" AND
|
||||
NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip")
|
||||
file(RPATH_CHECK
|
||||
FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip"
|
||||
RPATH "")
|
||||
endif()
|
||||
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/axel/Vídeos/winrarcomgpu/build/vkzip")
|
||||
if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip" AND
|
||||
NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip")
|
||||
if(CMAKE_INSTALL_DO_STRIP)
|
||||
execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/vkzip")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
|
||||
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/vkzip/shaders" TYPE DIRECTORY FILES "/home/axel/Vídeos/winrarcomgpu/build/shaders/")
|
||||
endif()
|
||||
|
||||
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
|
||||
"${CMAKE_INSTALL_MANIFEST_FILES}")
|
||||
if(CMAKE_INSTALL_LOCAL_ONLY)
|
||||
file(WRITE "/home/axel/Vídeos/winrarcomgpu/build/install_local_manifest.txt"
|
||||
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||
endif()
|
||||
if(CMAKE_INSTALL_COMPONENT)
|
||||
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
|
||||
else()
|
||||
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
|
||||
unset(CMAKE_INST_COMP_HASH)
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
|
||||
file(WRITE "/home/axel/Vídeos/winrarcomgpu/build/${CMAKE_INSTALL_MANIFEST}"
|
||||
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||
endif()
|
||||
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# Compile GLSL compute shaders to SPIR-V
|
||||
# Requires glslc (from Vulkan SDK) or glslangValidator
|
||||
|
||||
SHADER_DIR="$(dirname "$0")"
|
||||
OUTPUT_DIR="${1:-$SHADER_DIR}"
|
||||
|
||||
# Find compiler
|
||||
if command -v glslc &> /dev/null; then
|
||||
COMPILER="glslc"
|
||||
compile() { $COMPILER -o "$2" "$1"; }
|
||||
elif command -v glslangValidator &> /dev/null; then
|
||||
COMPILER="glslangValidator"
|
||||
compile() { $COMPILER -V -o "$2" "$1"; }
|
||||
else
|
||||
echo "ERROR: No GLSL compiler found!"
|
||||
echo "Install Vulkan SDK: https://vulkan.lunarg.com/sdk/home"
|
||||
echo " Ubuntu/Debian: sudo apt install vulkan-tools glslang-tools"
|
||||
echo " Arch: sudo pacman -S vulkan-tools glslang"
|
||||
echo " Fedora: sudo dnf install vulkan-tools glslang"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using compiler: $COMPILER"
|
||||
echo "Output directory: $OUTPUT_DIR"
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
for shader in "$SHADER_DIR"/*.comp; do
|
||||
if [ -f "$shader" ]; then
|
||||
name=$(basename "$shader")
|
||||
output="$OUTPUT_DIR/${name}.spv"
|
||||
echo " Compiling $name -> ${name}.spv"
|
||||
compile "$shader" "$output"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo " FAILED: $name"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "All shaders compiled successfully!"
|
||||
@@ -0,0 +1,158 @@
|
||||
#version 450
|
||||
|
||||
/*
|
||||
* VKZip GPU Compression Shader
|
||||
*
|
||||
* Each workgroup compresses one independent block using a simplified
|
||||
* LZ77 variant optimized for GPU parallelism:
|
||||
*
|
||||
* Algorithm:
|
||||
* 1. Each thread scans a portion of the block for matches using hash chains
|
||||
* 2. Matches are encoded as (distance, length) pairs
|
||||
* 3. Non-matching bytes are stored as literals
|
||||
* 4. Output format per token:
|
||||
* - Literal: [0x00] [byte]
|
||||
* - Match: [0x01] [length: u16] [distance: u16]
|
||||
*
|
||||
* This is a simplified approach focusing on parallel match finding.
|
||||
* The compression ratio won't match gzip/zstd, but the speed
|
||||
* advantage from GPU parallelism makes up for it on large files.
|
||||
*/
|
||||
|
||||
layout(local_size_x = 256) in;
|
||||
|
||||
// ── Push constants ─────────────────────────────────────────────────
|
||||
layout(push_constant) uniform PushConstants {
|
||||
uint block_count; // Total number of blocks to process
|
||||
uint block_size; // Size of each block (e.g., 65536)
|
||||
uint max_match_len; // Maximum match length
|
||||
uint window_size; // Sliding window size
|
||||
} params;
|
||||
|
||||
// ── Buffers ────────────────────────────────────────────────────────
|
||||
// Input: raw uncompressed data (all blocks concatenated)
|
||||
layout(std430, set = 0, binding = 0) readonly buffer InputBuffer {
|
||||
uint data[];
|
||||
} input_buf;
|
||||
|
||||
// Output: compressed data (pre-allocated with worst-case size)
|
||||
layout(std430, set = 0, binding = 1) writeonly buffer OutputBuffer {
|
||||
uint data[];
|
||||
} output_buf;
|
||||
|
||||
// Block metadata: [block_idx] = { input_offset, input_size, output_offset, output_size }
|
||||
layout(std430, set = 0, binding = 2) buffer MetadataBuffer {
|
||||
uvec4 blocks[]; // x=in_offset, y=in_size, z=out_offset, w=out_size(result)
|
||||
} meta;
|
||||
|
||||
// ── Shared memory for workgroup ────────────────────────────────────
|
||||
shared uint s_hash_table[4096]; // Hash table for match finding
|
||||
shared uint s_output_pos; // Current output position (atomic)
|
||||
|
||||
// ── Helper: read a byte from packed uint buffer ────────────────────
|
||||
uint read_byte(uint base_offset, uint byte_idx) {
|
||||
uint word_idx = (base_offset + byte_idx) >> 2;
|
||||
uint byte_pos = (base_offset + byte_idx) & 3;
|
||||
return (input_buf.data[word_idx] >> (byte_pos * 8)) & 0xFF;
|
||||
}
|
||||
|
||||
// ── Helper: write a byte to packed uint buffer ─────────────────────
|
||||
void write_byte(uint base_offset, uint byte_idx, uint value) {
|
||||
uint word_idx = (base_offset + byte_idx) >> 2;
|
||||
uint byte_pos = (base_offset + byte_idx) & 3;
|
||||
atomicOr(output_buf.data[word_idx], (value & 0xFF) << (byte_pos * 8));
|
||||
}
|
||||
|
||||
// ── Hash function for string matching ──────────────────────────────
|
||||
uint hash3(uint base_offset, uint pos) {
|
||||
uint b0 = read_byte(base_offset, pos);
|
||||
uint b1 = read_byte(base_offset, pos + 1);
|
||||
uint b2 = read_byte(base_offset, pos + 2);
|
||||
return ((b0 << 16) ^ (b1 << 8) ^ b2) & 0xFFF;
|
||||
}
|
||||
|
||||
void main() {
|
||||
uint block_idx = gl_WorkGroupID.x;
|
||||
uint thread_id = gl_LocalInvocationID.x;
|
||||
|
||||
if (block_idx >= params.block_count) return;
|
||||
|
||||
uint in_offset = meta.blocks[block_idx].x;
|
||||
uint in_size = meta.blocks[block_idx].y;
|
||||
uint out_offset = meta.blocks[block_idx].z;
|
||||
|
||||
// Initialize shared memory
|
||||
if (thread_id < 256) {
|
||||
for (uint i = thread_id; i < 4096; i += 256) {
|
||||
s_hash_table[i] = 0xFFFFFFFF;
|
||||
}
|
||||
}
|
||||
if (thread_id == 0) {
|
||||
s_output_pos = 0;
|
||||
}
|
||||
barrier();
|
||||
memoryBarrierShared();
|
||||
|
||||
// ── Single-threaded compression for correctness ─────────────
|
||||
// Thread 0 does the sequential LZ77 compression.
|
||||
// Other threads could assist with parallel hash updates in a
|
||||
// more advanced version.
|
||||
if (thread_id == 0) {
|
||||
uint pos = 0;
|
||||
uint out_pos = 0;
|
||||
|
||||
while (pos < in_size) {
|
||||
uint best_len = 0;
|
||||
uint best_dist = 0;
|
||||
|
||||
// Try to find a match (need at least 3 bytes remaining)
|
||||
if (pos + 2 < in_size) {
|
||||
uint h = hash3(in_offset, pos);
|
||||
uint match_pos = s_hash_table[h];
|
||||
|
||||
// Scan hash chain for matches
|
||||
if (match_pos != 0xFFFFFFFF && pos > match_pos) {
|
||||
uint dist = pos - match_pos;
|
||||
if (dist <= params.window_size && dist > 0) {
|
||||
// Count matching bytes
|
||||
uint len = 0;
|
||||
uint max_len = min(params.max_match_len, in_size - pos);
|
||||
while (len < max_len &&
|
||||
read_byte(in_offset, match_pos + len) ==
|
||||
read_byte(in_offset, pos + len)) {
|
||||
len++;
|
||||
}
|
||||
if (len >= 3) {
|
||||
best_len = len;
|
||||
best_dist = dist;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update hash table
|
||||
s_hash_table[h] = pos;
|
||||
}
|
||||
|
||||
if (best_len >= 3) {
|
||||
// Write match token: [0x01] [len_lo] [len_hi] [dist_lo] [dist_hi]
|
||||
write_byte(out_offset, out_pos++, 0x01);
|
||||
write_byte(out_offset, out_pos++, best_len & 0xFF);
|
||||
write_byte(out_offset, out_pos++, (best_len >> 8) & 0xFF);
|
||||
write_byte(out_offset, out_pos++, best_dist & 0xFF);
|
||||
write_byte(out_offset, out_pos++, (best_dist >> 8) & 0xFF);
|
||||
pos += best_len;
|
||||
} else {
|
||||
// Write literal token: [0x00] [byte]
|
||||
uint b = read_byte(in_offset, pos);
|
||||
write_byte(out_offset, out_pos++, 0x00);
|
||||
write_byte(out_offset, out_pos++, b);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
|
||||
// Store output size
|
||||
meta.blocks[block_idx].w = out_pos;
|
||||
}
|
||||
|
||||
barrier();
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
#version 450
|
||||
|
||||
/*
|
||||
* VKZip GPU Decompression Shader
|
||||
*
|
||||
* Decompresses blocks compressed by the compression shader.
|
||||
* Each workgroup decompresses one block.
|
||||
*
|
||||
* Token format (matching compress.comp):
|
||||
* - Literal: [0x00] [byte] → emit 1 byte
|
||||
* - Match: [0x01] [len:u16] [dist:u16] → copy `len` bytes from `pos-dist`
|
||||
*/
|
||||
|
||||
layout(local_size_x = 256) in;
|
||||
|
||||
// ── Push constants ─────────────────────────────────────────────────
|
||||
layout(push_constant) uniform PushConstants {
|
||||
uint block_count;
|
||||
uint block_size;
|
||||
uint _pad1;
|
||||
uint _pad2;
|
||||
} params;
|
||||
|
||||
// ── Buffers ────────────────────────────────────────────────────────
|
||||
// Input: compressed data (all blocks concatenated)
|
||||
layout(std430, set = 0, binding = 0) readonly buffer InputBuffer {
|
||||
uint data[];
|
||||
} input_buf;
|
||||
|
||||
// Output: decompressed data (read-write: needs read for match back-references)
|
||||
layout(std430, set = 0, binding = 1) buffer OutputBuffer {
|
||||
uint data[];
|
||||
} output_buf;
|
||||
|
||||
// Block metadata: [block_idx] = { in_offset, in_size(compressed), out_offset, out_size(original) }
|
||||
layout(std430, set = 0, binding = 2) buffer MetadataBuffer {
|
||||
uvec4 blocks[];
|
||||
} meta;
|
||||
|
||||
// ── Helper: read a byte from packed uint buffer ────────────────────
|
||||
// ── Helper: read a byte from packed uint buffer ────────────────────
|
||||
uint read_byte_in(uint base_offset, uint byte_idx) {
|
||||
uint word_idx = (base_offset + byte_idx) >> 2;
|
||||
uint byte_pos = (base_offset + byte_idx) & 3;
|
||||
return (input_buf.data[word_idx] >> (byte_pos * 8)) & 0xFF;
|
||||
}
|
||||
|
||||
void main() {
|
||||
uint block_idx = gl_WorkGroupID.x;
|
||||
uint thread_id = gl_LocalInvocationID.x;
|
||||
|
||||
if (block_idx >= params.block_count) return;
|
||||
|
||||
uint in_offset = meta.blocks[block_idx].x;
|
||||
uint in_size = meta.blocks[block_idx].y;
|
||||
uint out_offset = meta.blocks[block_idx].z;
|
||||
uint out_size = meta.blocks[block_idx].w;
|
||||
|
||||
// Sequential decompression by thread 0
|
||||
if (thread_id == 0) {
|
||||
// If the block was stored raw (uncompressed), just copy it
|
||||
if (in_size == out_size) {
|
||||
for (uint i = 0; i < in_size; i++) {
|
||||
uint b = read_byte_in(in_offset, i);
|
||||
uint byte_pos = i & 3;
|
||||
|
||||
// Read modify write needed here to avoid clobbering since we don't word-buffer the raw yet
|
||||
uint word_idx = (out_offset + i) >> 2;
|
||||
atomicOr(output_buf.data[word_idx], b << (byte_pos * 8));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
uint in_pos = 0;
|
||||
uint out_pos = 0;
|
||||
|
||||
uint current_word = 0;
|
||||
uint current_word_idx = 0;
|
||||
|
||||
while (in_pos < in_size && out_pos < out_size) {
|
||||
uint token = read_byte_in(in_offset, in_pos);
|
||||
in_pos++;
|
||||
|
||||
if (token == 0x00) {
|
||||
// Literal
|
||||
uint b = read_byte_in(in_offset, in_pos);
|
||||
in_pos++;
|
||||
|
||||
// Buffer output
|
||||
uint byte_pos = out_pos & 3;
|
||||
current_word |= (b << (byte_pos * 8));
|
||||
|
||||
if (byte_pos == 3 || out_pos == out_size - 1) {
|
||||
output_buf.data[(out_offset + out_pos) >> 2] = current_word;
|
||||
current_word = 0;
|
||||
}
|
||||
out_pos++;
|
||||
}
|
||||
else if (token == 0x01) {
|
||||
// Match
|
||||
uint match_len = read_byte_in(in_offset, in_pos) | (read_byte_in(in_offset, in_pos + 1) << 8);
|
||||
in_pos += 2;
|
||||
uint match_dist = read_byte_in(in_offset, in_pos) | (read_byte_in(in_offset, in_pos + 1) << 8);
|
||||
in_pos += 2;
|
||||
|
||||
uint copy_src = out_pos - match_dist;
|
||||
|
||||
for (uint i = 0; i < match_len && out_pos < out_size; i++) {
|
||||
uint src_byte_idx = copy_src + i;
|
||||
uint b = 0;
|
||||
|
||||
// Did we write this byte fully to memory yet?
|
||||
if (src_byte_idx >= (out_pos & ~3u)) {
|
||||
// It is in the current word being accumulated
|
||||
uint src_byte_pos = src_byte_idx & 3;
|
||||
b = (current_word >> (src_byte_pos * 8)) & 0xFF;
|
||||
} else {
|
||||
// Read from VRAM
|
||||
uint src_word = output_buf.data[(out_offset + src_byte_idx) >> 2];
|
||||
uint src_byte_pos = src_byte_idx & 3;
|
||||
b = (src_word >> (src_byte_pos * 8)) & 0xFF;
|
||||
}
|
||||
|
||||
// Buffer Output
|
||||
uint byte_pos = out_pos & 3;
|
||||
current_word |= (b << (byte_pos * 8));
|
||||
|
||||
if (byte_pos == 3 || out_pos == out_size - 1) {
|
||||
output_buf.data[(out_offset + out_pos) >> 2] = current_word;
|
||||
current_word = 0;
|
||||
}
|
||||
out_pos++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,193 @@
|
||||
#include "cpu_fallback.h"
|
||||
|
||||
// ── CPU LZ77 Compress Block ────────────────────────────────────────
|
||||
uint8_t *cpu_compress_block(const uint8_t *input, uint32_t input_size,
|
||||
uint32_t *out_size) {
|
||||
// Worst case: 2 bytes per input byte (literal tokens)
|
||||
uint32_t max_output = input_size * 2 + 16;
|
||||
uint8_t *output = (uint8_t *)malloc(max_output);
|
||||
if (!output)
|
||||
return NULL;
|
||||
|
||||
// Simple hash table for match finding
|
||||
uint32_t hash_table[VKZ_HASH_SIZE];
|
||||
memset(hash_table, 0xFF, sizeof(hash_table));
|
||||
|
||||
uint32_t pos = 0;
|
||||
uint32_t out_pos = 0;
|
||||
|
||||
while (pos < input_size) {
|
||||
uint32_t best_len = 0;
|
||||
uint32_t best_dist = 0;
|
||||
|
||||
// Try to find a match (need at least 3 bytes)
|
||||
if (pos + 2 < input_size) {
|
||||
// Hash 3 bytes
|
||||
uint32_t h = ((uint32_t)input[pos] << 16 | (uint32_t)input[pos + 1] << 8 |
|
||||
(uint32_t)input[pos + 2]) %
|
||||
VKZ_HASH_SIZE;
|
||||
|
||||
uint32_t match_pos = hash_table[h];
|
||||
hash_table[h] = pos;
|
||||
|
||||
if (match_pos != 0xFFFFFFFF && pos > match_pos) {
|
||||
uint32_t dist = pos - match_pos;
|
||||
if (dist <= VKZ_WINDOW_SIZE && dist > 0) {
|
||||
uint32_t len = 0;
|
||||
uint32_t max_len = input_size - pos;
|
||||
if (max_len > VKZ_MAX_MATCH_LEN)
|
||||
max_len = VKZ_MAX_MATCH_LEN;
|
||||
|
||||
while (len < max_len && input[match_pos + len] == input[pos + len]) {
|
||||
len++;
|
||||
}
|
||||
|
||||
if (len >= VKZ_MIN_MATCH_LEN) {
|
||||
best_len = len;
|
||||
best_dist = dist;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (best_len >= VKZ_MIN_MATCH_LEN) {
|
||||
// Match token: [0x01] [len_lo] [len_hi] [dist_lo] [dist_hi]
|
||||
output[out_pos++] = 0x01;
|
||||
output[out_pos++] = (uint8_t)(best_len & 0xFF);
|
||||
output[out_pos++] = (uint8_t)((best_len >> 8) & 0xFF);
|
||||
output[out_pos++] = (uint8_t)(best_dist & 0xFF);
|
||||
output[out_pos++] = (uint8_t)((best_dist >> 8) & 0xFF);
|
||||
pos += best_len;
|
||||
} else {
|
||||
// Literal token: [0x00] [byte]
|
||||
output[out_pos++] = 0x00;
|
||||
output[out_pos++] = input[pos];
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
|
||||
*out_size = out_pos;
|
||||
|
||||
// Shrink to actual size
|
||||
output = (uint8_t *)realloc(output, out_pos);
|
||||
return output;
|
||||
}
|
||||
|
||||
// ── CPU LZ77 Decompress Block ──────────────────────────────────────
|
||||
uint8_t *cpu_decompress_block(const uint8_t *compressed,
|
||||
uint32_t compressed_size, uint32_t original_size,
|
||||
uint32_t *out_size) {
|
||||
uint8_t *output = (uint8_t *)malloc(original_size);
|
||||
if (!output)
|
||||
return NULL;
|
||||
|
||||
uint32_t in_pos = 0;
|
||||
uint32_t out_pos = 0;
|
||||
|
||||
while (in_pos < compressed_size && out_pos < original_size) {
|
||||
uint8_t token = compressed[in_pos++];
|
||||
|
||||
if (token == 0x00) {
|
||||
// Literal
|
||||
if (in_pos >= compressed_size)
|
||||
break;
|
||||
output[out_pos++] = compressed[in_pos++];
|
||||
} else if (token == 0x01) {
|
||||
// Match
|
||||
if (in_pos + 4 > compressed_size)
|
||||
break;
|
||||
|
||||
uint32_t match_len = (uint32_t)compressed[in_pos] |
|
||||
((uint32_t)compressed[in_pos + 1] << 8);
|
||||
in_pos += 2;
|
||||
uint32_t match_dist = (uint32_t)compressed[in_pos] |
|
||||
((uint32_t)compressed[in_pos + 1] << 8);
|
||||
in_pos += 2;
|
||||
|
||||
uint32_t copy_src = out_pos - match_dist;
|
||||
for (uint32_t i = 0; i < match_len && out_pos < original_size; i++) {
|
||||
output[out_pos++] = output[copy_src + i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*out_size = out_pos;
|
||||
return output;
|
||||
}
|
||||
|
||||
// ── Compress file (multi-block, CPU) ───────────────────────────────
|
||||
int cpu_compress_file(const uint8_t *input_data, uint64_t input_size,
|
||||
uint32_t block_size, uint8_t ***out_blocks,
|
||||
uint32_t **out_block_sizes, uint32_t *out_block_count) {
|
||||
|
||||
uint32_t n_blocks = (uint32_t)((input_size + block_size - 1) / block_size);
|
||||
|
||||
*out_block_count = n_blocks;
|
||||
*out_blocks = (uint8_t **)calloc(n_blocks, sizeof(uint8_t *));
|
||||
*out_block_sizes = (uint32_t *)calloc(n_blocks, sizeof(uint32_t));
|
||||
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
uint64_t offset = (uint64_t)i * block_size;
|
||||
uint64_t remaining = input_size - offset;
|
||||
uint32_t this_size =
|
||||
(uint32_t)(remaining < block_size ? remaining : block_size);
|
||||
|
||||
uint32_t comp_size = 0;
|
||||
uint8_t *compressed =
|
||||
cpu_compress_block(input_data + offset, this_size, &comp_size);
|
||||
|
||||
if (!compressed || comp_size >= this_size) {
|
||||
// Store raw if compression doesn't help
|
||||
if (compressed)
|
||||
free(compressed);
|
||||
(*out_blocks)[i] = (uint8_t *)malloc(this_size);
|
||||
memcpy((*out_blocks)[i], input_data + offset, this_size);
|
||||
(*out_block_sizes)[i] = this_size;
|
||||
} else {
|
||||
(*out_blocks)[i] = compressed;
|
||||
(*out_block_sizes)[i] = comp_size;
|
||||
}
|
||||
|
||||
print_progress("Compressing (CPU)", i + 1, n_blocks);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Decompress file (multi-block, CPU) ─────────────────────────────
|
||||
int cpu_decompress_file(const VkzArchive *archive, const char *archive_path,
|
||||
uint8_t *output_data, uint64_t output_size) {
|
||||
|
||||
uint32_t n_blocks = archive->header.block_count;
|
||||
(void)output_size;
|
||||
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
uint32_t comp_size;
|
||||
uint8_t *compressed = vkz_read_block(archive_path, archive, i, &comp_size);
|
||||
if (!compressed)
|
||||
return -1;
|
||||
|
||||
uint32_t orig_size = archive->blocks[i].original_size;
|
||||
uint64_t offset = (uint64_t)i * archive->header.block_size;
|
||||
|
||||
// Check if block was stored raw (compressed_size == original_size)
|
||||
if (comp_size == orig_size) {
|
||||
memcpy(output_data + offset, compressed, orig_size);
|
||||
} else {
|
||||
uint32_t dec_size;
|
||||
uint8_t *decompressed =
|
||||
cpu_decompress_block(compressed, comp_size, orig_size, &dec_size);
|
||||
if (!decompressed) {
|
||||
free(compressed);
|
||||
return -1;
|
||||
}
|
||||
memcpy(output_data + offset, decompressed, dec_size);
|
||||
free(decompressed);
|
||||
}
|
||||
|
||||
free(compressed);
|
||||
print_progress("Decompressing (CPU)", i + 1, n_blocks);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef CPU_FALLBACK_H
|
||||
#define CPU_FALLBACK_H
|
||||
|
||||
#include "utils.h"
|
||||
#include "vkz_format.h"
|
||||
|
||||
// ── CPU Fallback Compression ───────────────────────────────────────
|
||||
// Used when no Vulkan GPU is available.
|
||||
// Same algorithm as GPU shader for format compatibility.
|
||||
|
||||
// Compress a single block using CPU
|
||||
// Returns compressed data (caller must free), sets out_size
|
||||
uint8_t *cpu_compress_block(const uint8_t *input, uint32_t input_size,
|
||||
uint32_t *out_size);
|
||||
|
||||
// Decompress a single block using CPU
|
||||
// Returns decompressed data (caller must free), sets out_size
|
||||
uint8_t *cpu_decompress_block(const uint8_t *compressed,
|
||||
uint32_t compressed_size, uint32_t original_size,
|
||||
uint32_t *out_size);
|
||||
|
||||
// Compress entire file using CPU (multi-block)
|
||||
int cpu_compress_file(const uint8_t *input_data, uint64_t input_size,
|
||||
uint32_t block_size, uint8_t ***out_blocks,
|
||||
uint32_t **out_block_sizes, uint32_t *out_block_count);
|
||||
|
||||
// Decompress entire archive using CPU
|
||||
int cpu_decompress_file(const VkzArchive *archive, const char *archive_path,
|
||||
uint8_t *output_data, uint64_t output_size);
|
||||
|
||||
#endif // CPU_FALLBACK_H
|
||||
@@ -0,0 +1,349 @@
|
||||
#include "gpu_compress.h"
|
||||
#include <string.h>
|
||||
|
||||
// ── Initialize compression pipeline ────────────────────────────────
|
||||
int gpu_compress_init(GpuCompressPipeline *pipe, GpuContext *ctx) {
|
||||
memset(pipe, 0, sizeof(GpuCompressPipeline));
|
||||
pipe->ctx = ctx;
|
||||
|
||||
// ── Descriptor set layout ──────────────────────────────────────
|
||||
VkDescriptorSetLayoutBinding bindings[3] = {
|
||||
{.binding = 0,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
{.binding = 1,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
{.binding = 2,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
};
|
||||
|
||||
VkDescriptorSetLayoutCreateInfo layout_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
|
||||
.bindingCount = 3,
|
||||
.pBindings = bindings,
|
||||
};
|
||||
|
||||
VkResult res = vkCreateDescriptorSetLayout(ctx->device, &layout_info, NULL,
|
||||
&pipe->desc_layout);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
// ── Push constant range ────────────────────────────────────────
|
||||
VkPushConstantRange push_range = {
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,
|
||||
.offset = 0,
|
||||
.size = sizeof(CompressPushConstants),
|
||||
};
|
||||
|
||||
// ── Pipeline layout ────────────────────────────────────────────
|
||||
VkPipelineLayoutCreateInfo pipe_layout_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
|
||||
.setLayoutCount = 1,
|
||||
.pSetLayouts = &pipe->desc_layout,
|
||||
.pushConstantRangeCount = 1,
|
||||
.pPushConstantRanges = &push_range,
|
||||
};
|
||||
|
||||
res = vkCreatePipelineLayout(ctx->device, &pipe_layout_info, NULL,
|
||||
&pipe->pipeline_layout);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
// ── Compute pipeline ───────────────────────────────────────────
|
||||
VkComputePipelineCreateInfo pipeline_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
|
||||
.stage =
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
|
||||
.stage = VK_SHADER_STAGE_COMPUTE_BIT,
|
||||
.module = ctx->compress_shader,
|
||||
.pName = "main",
|
||||
},
|
||||
.layout = pipe->pipeline_layout,
|
||||
};
|
||||
|
||||
res = vkCreateComputePipelines(ctx->device, VK_NULL_HANDLE, 1, &pipeline_info,
|
||||
NULL, &pipe->pipeline);
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create compression compute pipeline (VkResult: %d)",
|
||||
res);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// ── Descriptor pool ────────────────────────────────────────────
|
||||
VkDescriptorPoolSize pool_size = {
|
||||
.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 3,
|
||||
};
|
||||
|
||||
VkDescriptorPoolCreateInfo pool_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
|
||||
.maxSets = 1,
|
||||
.poolSizeCount = 1,
|
||||
.pPoolSizes = &pool_size,
|
||||
};
|
||||
|
||||
res = vkCreateDescriptorPool(ctx->device, &pool_info, NULL, &pipe->desc_pool);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
// ── Allocate descriptor set ────────────────────────────────────
|
||||
VkDescriptorSetAllocateInfo alloc_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
|
||||
.descriptorPool = pipe->desc_pool,
|
||||
.descriptorSetCount = 1,
|
||||
.pSetLayouts = &pipe->desc_layout,
|
||||
};
|
||||
|
||||
res = vkAllocateDescriptorSets(ctx->device, &alloc_info, &pipe->desc_set);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
LOG_OK("GPU compression pipeline initialized");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Compress data using GPU ────────────────────────────────────────
|
||||
int gpu_compress_data(GpuCompressPipeline *pipe, const uint8_t *input_data,
|
||||
uint64_t input_size, uint32_t block_size,
|
||||
uint8_t ***out_blocks, uint32_t **out_block_sizes,
|
||||
uint32_t *out_block_count) {
|
||||
|
||||
GpuContext *ctx = pipe->ctx;
|
||||
uint32_t n_blocks = (uint32_t)((input_size + block_size - 1) / block_size);
|
||||
|
||||
*out_block_count = n_blocks;
|
||||
*out_blocks = (uint8_t **)calloc(n_blocks, sizeof(uint8_t *));
|
||||
*out_block_sizes = (uint32_t *)calloc(n_blocks, sizeof(uint32_t));
|
||||
|
||||
// Worst case: each byte becomes 2 bytes (literal token)
|
||||
uint64_t worst_case_output = input_size * 2 + n_blocks * 16;
|
||||
|
||||
// Round up sizes to 4 bytes for uint packing
|
||||
VkDeviceSize in_buf_size = ((input_size + 3) / 4) * 4;
|
||||
VkDeviceSize out_buf_size = ((worst_case_output + 3) / 4) * 4;
|
||||
VkDeviceSize meta_buf_size = n_blocks * sizeof(BlockMeta);
|
||||
|
||||
// ── Create GPU buffers ─────────────────────────────────────────
|
||||
VkMemoryPropertyFlags host_visible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
|
||||
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
|
||||
|
||||
if (gpu_create_buffer(ctx, in_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->input_buffer,
|
||||
&pipe->input_memory) != 0) {
|
||||
LOG_ERR("Failed to create input buffer");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (gpu_create_buffer(ctx, out_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->output_buffer,
|
||||
&pipe->output_memory) != 0) {
|
||||
LOG_ERR("Failed to create output buffer");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (gpu_create_buffer(ctx, meta_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->meta_buffer,
|
||||
&pipe->meta_memory) != 0) {
|
||||
LOG_ERR("Failed to create metadata buffer");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// ── Upload input data ──────────────────────────────────────────
|
||||
// Zero-fill then upload
|
||||
void *mapped;
|
||||
vkMapMemory(ctx->device, pipe->input_memory, 0, in_buf_size, 0, &mapped);
|
||||
memset(mapped, 0, (size_t)in_buf_size);
|
||||
memcpy(mapped, input_data, (size_t)input_size);
|
||||
vkUnmapMemory(ctx->device, pipe->input_memory);
|
||||
|
||||
// Zero the output buffer
|
||||
vkMapMemory(ctx->device, pipe->output_memory, 0, out_buf_size, 0, &mapped);
|
||||
memset(mapped, 0, (size_t)out_buf_size);
|
||||
vkUnmapMemory(ctx->device, pipe->output_memory);
|
||||
|
||||
// ── Build block metadata ───────────────────────────────────────
|
||||
BlockMeta *block_metas = (BlockMeta *)calloc(n_blocks, sizeof(BlockMeta));
|
||||
uint32_t out_offset = 0;
|
||||
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
uint64_t remaining = input_size - (uint64_t)i * block_size;
|
||||
uint32_t this_block_size =
|
||||
(uint32_t)(remaining < block_size ? remaining : block_size);
|
||||
|
||||
block_metas[i].input_offset = i * block_size;
|
||||
block_metas[i].input_size = this_block_size;
|
||||
block_metas[i].output_offset = out_offset;
|
||||
block_metas[i].output_size = 0;
|
||||
|
||||
// Allocate worst-case per block in output
|
||||
out_offset += this_block_size * 2 + 16;
|
||||
}
|
||||
|
||||
gpu_upload_data(ctx, pipe->meta_memory, block_metas, meta_buf_size);
|
||||
|
||||
// ── Update descriptor set ──────────────────────────────────────
|
||||
VkDescriptorBufferInfo buffer_infos[3] = {
|
||||
{.buffer = pipe->input_buffer, .offset = 0, .range = in_buf_size},
|
||||
{.buffer = pipe->output_buffer, .offset = 0, .range = out_buf_size},
|
||||
{.buffer = pipe->meta_buffer, .offset = 0, .range = meta_buf_size},
|
||||
};
|
||||
|
||||
VkWriteDescriptorSet writes[3];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
writes[i] = (VkWriteDescriptorSet){
|
||||
.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
||||
.dstSet = pipe->desc_set,
|
||||
.dstBinding = (uint32_t)i,
|
||||
.descriptorCount = 1,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.pBufferInfo = &buffer_infos[i],
|
||||
};
|
||||
}
|
||||
vkUpdateDescriptorSets(ctx->device, 3, writes, 0, NULL);
|
||||
|
||||
// ── Record and submit command buffer ───────────────────────────
|
||||
VkCommandBufferAllocateInfo cmd_alloc = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
|
||||
.commandPool = ctx->command_pool,
|
||||
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
|
||||
.commandBufferCount = 1,
|
||||
};
|
||||
|
||||
VkCommandBuffer cmd;
|
||||
vkAllocateCommandBuffers(ctx->device, &cmd_alloc, &cmd);
|
||||
|
||||
VkCommandBufferBeginInfo begin_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
|
||||
vkBeginCommandBuffer(cmd, &begin_info);
|
||||
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, pipe->pipeline);
|
||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_COMPUTE,
|
||||
pipe->pipeline_layout, 0, 1, &pipe->desc_set, 0,
|
||||
NULL);
|
||||
|
||||
CompressPushConstants pc = {
|
||||
.block_count = n_blocks,
|
||||
.block_size = block_size,
|
||||
.max_match_len = VKZ_MAX_MATCH_LEN,
|
||||
.window_size = VKZ_WINDOW_SIZE,
|
||||
};
|
||||
vkCmdPushConstants(cmd, pipe->pipeline_layout, VK_SHADER_STAGE_COMPUTE_BIT, 0,
|
||||
sizeof(CompressPushConstants), &pc);
|
||||
|
||||
// Dispatch one workgroup per block
|
||||
vkCmdDispatch(cmd, n_blocks, 1, 1);
|
||||
|
||||
// Memory barrier to ensure compute is done before reading results
|
||||
VkMemoryBarrier barrier = {
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
|
||||
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT,
|
||||
.dstAccessMask = VK_ACCESS_HOST_READ_BIT,
|
||||
};
|
||||
vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
|
||||
VK_PIPELINE_STAGE_HOST_BIT, 0, 1, &barrier, 0, NULL, 0,
|
||||
NULL);
|
||||
|
||||
vkEndCommandBuffer(cmd);
|
||||
|
||||
// Submit
|
||||
VkSubmitInfo submit = {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
||||
.commandBufferCount = 1,
|
||||
.pCommandBuffers = &cmd,
|
||||
};
|
||||
|
||||
VkFence fence;
|
||||
VkFenceCreateInfo fence_info = {.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO};
|
||||
vkCreateFence(ctx->device, &fence_info, NULL, &fence);
|
||||
|
||||
vkQueueSubmit(ctx->compute_queue, 1, &submit, fence);
|
||||
vkWaitForFences(ctx->device, 1, &fence, VK_TRUE, UINT64_MAX);
|
||||
|
||||
vkDestroyFence(ctx->device, fence, NULL);
|
||||
vkFreeCommandBuffers(ctx->device, ctx->command_pool, 1, &cmd);
|
||||
|
||||
// ── Read back results ──────────────────────────────────────────
|
||||
// Read updated metadata
|
||||
gpu_download_data(ctx, pipe->meta_memory, block_metas, meta_buf_size);
|
||||
|
||||
// Read compressed output
|
||||
uint8_t *output_raw = (uint8_t *)malloc((size_t)out_buf_size);
|
||||
gpu_download_data(ctx, pipe->output_memory, output_raw, out_buf_size);
|
||||
|
||||
// Extract individual compressed blocks
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
uint32_t comp_size = block_metas[i].output_size;
|
||||
|
||||
// If GPU didn't compress (output_size == 0 or >= input), store raw
|
||||
if (comp_size == 0 || comp_size >= block_metas[i].input_size) {
|
||||
comp_size = block_metas[i].input_size;
|
||||
(*out_blocks)[i] = (uint8_t *)malloc(comp_size);
|
||||
memcpy((*out_blocks)[i], input_data + block_metas[i].input_offset,
|
||||
comp_size);
|
||||
} else {
|
||||
(*out_blocks)[i] = (uint8_t *)malloc(comp_size);
|
||||
memcpy((*out_blocks)[i], output_raw + block_metas[i].output_offset,
|
||||
comp_size);
|
||||
}
|
||||
(*out_block_sizes)[i] = comp_size;
|
||||
}
|
||||
|
||||
free(output_raw);
|
||||
free(block_metas);
|
||||
|
||||
// ── Cleanup GPU buffers ────────────────────────────────────────
|
||||
vkDestroyBuffer(ctx->device, pipe->input_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->input_memory, NULL);
|
||||
vkDestroyBuffer(ctx->device, pipe->output_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->output_memory, NULL);
|
||||
vkDestroyBuffer(ctx->device, pipe->meta_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->meta_memory, NULL);
|
||||
|
||||
pipe->input_buffer = VK_NULL_HANDLE;
|
||||
pipe->input_memory = VK_NULL_HANDLE;
|
||||
pipe->output_buffer = VK_NULL_HANDLE;
|
||||
pipe->output_memory = VK_NULL_HANDLE;
|
||||
pipe->meta_buffer = VK_NULL_HANDLE;
|
||||
pipe->meta_memory = VK_NULL_HANDLE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Cleanup ────────────────────────────────────────────────────────
|
||||
void gpu_compress_cleanup(GpuCompressPipeline *pipe) {
|
||||
if (!pipe || !pipe->ctx)
|
||||
return;
|
||||
VkDevice dev = pipe->ctx->device;
|
||||
|
||||
if (pipe->pipeline != VK_NULL_HANDLE)
|
||||
vkDestroyPipeline(dev, pipe->pipeline, NULL);
|
||||
if (pipe->pipeline_layout != VK_NULL_HANDLE)
|
||||
vkDestroyPipelineLayout(dev, pipe->pipeline_layout, NULL);
|
||||
if (pipe->desc_pool != VK_NULL_HANDLE)
|
||||
vkDestroyDescriptorPool(dev, pipe->desc_pool, NULL);
|
||||
if (pipe->desc_layout != VK_NULL_HANDLE)
|
||||
vkDestroyDescriptorSetLayout(dev, pipe->desc_layout, NULL);
|
||||
|
||||
// Buffers may already be freed in compress_data
|
||||
if (pipe->input_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->input_buffer, NULL);
|
||||
if (pipe->input_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->input_memory, NULL);
|
||||
if (pipe->output_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->output_buffer, NULL);
|
||||
if (pipe->output_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->output_memory, NULL);
|
||||
if (pipe->meta_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->meta_buffer, NULL);
|
||||
if (pipe->meta_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->meta_memory, NULL);
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
#ifndef GPU_COMPRESS_H
|
||||
#define GPU_COMPRESS_H
|
||||
|
||||
#include "gpu_context.h"
|
||||
#include "vkz_format.h"
|
||||
|
||||
// ── GPU Compression Pipeline ───────────────────────────────────────
|
||||
typedef struct {
|
||||
GpuContext *ctx;
|
||||
|
||||
// Pipeline
|
||||
VkPipelineLayout pipeline_layout;
|
||||
VkPipeline pipeline;
|
||||
VkDescriptorSetLayout desc_layout;
|
||||
VkDescriptorPool desc_pool;
|
||||
VkDescriptorSet desc_set;
|
||||
|
||||
// GPU Buffers
|
||||
VkBuffer input_buffer;
|
||||
VkDeviceMemory input_memory;
|
||||
VkBuffer output_buffer;
|
||||
VkDeviceMemory output_memory;
|
||||
VkBuffer meta_buffer;
|
||||
VkDeviceMemory meta_memory;
|
||||
|
||||
// Sizes
|
||||
VkDeviceSize input_size;
|
||||
VkDeviceSize output_size;
|
||||
VkDeviceSize meta_size;
|
||||
} GpuCompressPipeline;
|
||||
|
||||
// Push constants matching shader layout
|
||||
typedef struct {
|
||||
uint32_t block_count;
|
||||
uint32_t block_size;
|
||||
uint32_t max_match_len;
|
||||
uint32_t window_size;
|
||||
} CompressPushConstants;
|
||||
|
||||
// Block metadata matching shader layout (uvec4)
|
||||
typedef struct {
|
||||
uint32_t input_offset;
|
||||
uint32_t input_size;
|
||||
uint32_t output_offset;
|
||||
uint32_t output_size; // Written by shader
|
||||
} BlockMeta;
|
||||
|
||||
// ── Functions ──────────────────────────────────────────────────────
|
||||
|
||||
// Initialize compression pipeline
|
||||
int gpu_compress_init(GpuCompressPipeline *pipe, GpuContext *ctx);
|
||||
|
||||
// Compress data using GPU
|
||||
// Returns array of compressed block buffers (caller must free each + array)
|
||||
int gpu_compress_data(GpuCompressPipeline *pipe, const uint8_t *input_data,
|
||||
uint64_t input_size, uint32_t block_size,
|
||||
uint8_t ***out_blocks, uint32_t **out_block_sizes,
|
||||
uint32_t *out_block_count);
|
||||
|
||||
// Cleanup compression pipeline
|
||||
void gpu_compress_cleanup(GpuCompressPipeline *pipe);
|
||||
|
||||
#endif // GPU_COMPRESS_H
|
||||
@@ -0,0 +1,346 @@
|
||||
#include "gpu_context.h"
|
||||
|
||||
// ── Initialize Vulkan ──────────────────────────────────────────────
|
||||
int gpu_init(GpuContext *ctx) {
|
||||
memset(ctx, 0, sizeof(GpuContext));
|
||||
|
||||
// ── Create Vulkan instance ─────────────────────────────────────
|
||||
VkApplicationInfo app_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
||||
.pApplicationName = "VKZip",
|
||||
.applicationVersion = VK_MAKE_VERSION(1, 0, 0),
|
||||
.pEngineName = "VKZip Engine",
|
||||
.engineVersion = VK_MAKE_VERSION(1, 0, 0),
|
||||
.apiVersion = VK_API_VERSION_1_2,
|
||||
};
|
||||
|
||||
VkInstanceCreateInfo instance_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
|
||||
.pApplicationInfo = &app_info,
|
||||
};
|
||||
|
||||
VkResult res = vkCreateInstance(&instance_info, NULL, &ctx->instance);
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create Vulkan instance (VkResult: %d)", res);
|
||||
LOG_ERR("Make sure Vulkan drivers are installed!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// ── Select physical device (prefer discrete GPU) ───────────────
|
||||
uint32_t device_count = 0;
|
||||
vkEnumeratePhysicalDevices(ctx->instance, &device_count, NULL);
|
||||
if (device_count == 0) {
|
||||
LOG_ERR("No Vulkan-capable GPU found!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
VkPhysicalDevice *devices =
|
||||
(VkPhysicalDevice *)malloc(device_count * sizeof(VkPhysicalDevice));
|
||||
vkEnumeratePhysicalDevices(ctx->instance, &device_count, devices);
|
||||
|
||||
// Score and pick best device
|
||||
int best_score = -1;
|
||||
uint32_t best_idx = 0;
|
||||
|
||||
for (uint32_t i = 0; i < device_count; i++) {
|
||||
VkPhysicalDeviceProperties props;
|
||||
vkGetPhysicalDeviceProperties(devices[i], &props);
|
||||
|
||||
int score = 0;
|
||||
if (props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
|
||||
score += 1000;
|
||||
else if (props.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU)
|
||||
score += 100;
|
||||
|
||||
// Prefer more compute units / higher limits
|
||||
score += props.limits.maxComputeWorkGroupInvocations / 32;
|
||||
|
||||
if (score > best_score) {
|
||||
best_score = score;
|
||||
best_idx = i;
|
||||
}
|
||||
}
|
||||
|
||||
ctx->physical_device = devices[best_idx];
|
||||
free(devices);
|
||||
|
||||
vkGetPhysicalDeviceProperties(ctx->physical_device, &ctx->device_props);
|
||||
vkGetPhysicalDeviceMemoryProperties(ctx->physical_device, &ctx->mem_props);
|
||||
|
||||
strncpy(ctx->device_name, ctx->device_props.deviceName,
|
||||
sizeof(ctx->device_name) - 1);
|
||||
ctx->max_workgroup_size =
|
||||
ctx->device_props.limits.maxComputeWorkGroupInvocations;
|
||||
|
||||
// Calculate VRAM
|
||||
ctx->vram_size = 0;
|
||||
for (uint32_t i = 0; i < ctx->mem_props.memoryHeapCount; i++) {
|
||||
if (ctx->mem_props.memoryHeaps[i].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) {
|
||||
ctx->vram_size += ctx->mem_props.memoryHeaps[i].size;
|
||||
}
|
||||
}
|
||||
|
||||
// ── Find compute queue family ──────────────────────────────────
|
||||
uint32_t queue_family_count = 0;
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(ctx->physical_device,
|
||||
&queue_family_count, NULL);
|
||||
VkQueueFamilyProperties *queue_families = (VkQueueFamilyProperties *)malloc(
|
||||
queue_family_count * sizeof(VkQueueFamilyProperties));
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(ctx->physical_device,
|
||||
&queue_family_count, queue_families);
|
||||
|
||||
ctx->compute_queue_family = UINT32_MAX;
|
||||
|
||||
// Prefer a dedicated compute queue (no graphics)
|
||||
for (uint32_t i = 0; i < queue_family_count; i++) {
|
||||
if ((queue_families[i].queueFlags & VK_QUEUE_COMPUTE_BIT) &&
|
||||
!(queue_families[i].queueFlags & VK_QUEUE_GRAPHICS_BIT)) {
|
||||
ctx->compute_queue_family = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to any compute queue
|
||||
if (ctx->compute_queue_family == UINT32_MAX) {
|
||||
for (uint32_t i = 0; i < queue_family_count; i++) {
|
||||
if (queue_families[i].queueFlags & VK_QUEUE_COMPUTE_BIT) {
|
||||
ctx->compute_queue_family = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
free(queue_families);
|
||||
|
||||
if (ctx->compute_queue_family == UINT32_MAX) {
|
||||
LOG_ERR("No compute queue family found on GPU!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// ── Create logical device ──────────────────────────────────────
|
||||
float queue_priority = 1.0f;
|
||||
VkDeviceQueueCreateInfo queue_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
|
||||
.queueFamilyIndex = ctx->compute_queue_family,
|
||||
.queueCount = 1,
|
||||
.pQueuePriorities = &queue_priority,
|
||||
};
|
||||
|
||||
VkDeviceCreateInfo device_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
|
||||
.queueCreateInfoCount = 1,
|
||||
.pQueueCreateInfos = &queue_info,
|
||||
};
|
||||
|
||||
res = vkCreateDevice(ctx->physical_device, &device_info, NULL, &ctx->device);
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create Vulkan device (VkResult: %d)", res);
|
||||
return -1;
|
||||
}
|
||||
|
||||
vkGetDeviceQueue(ctx->device, ctx->compute_queue_family, 0,
|
||||
&ctx->compute_queue);
|
||||
|
||||
// ── Create command pool ────────────────────────────────────────
|
||||
VkCommandPoolCreateInfo pool_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
|
||||
.queueFamilyIndex = ctx->compute_queue_family,
|
||||
.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
|
||||
};
|
||||
|
||||
res = vkCreateCommandPool(ctx->device, &pool_info, NULL, &ctx->command_pool);
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create command pool (VkResult: %d)", res);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ctx->is_initialized = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Load SPIR-V shader ─────────────────────────────────────────────
|
||||
VkShaderModule gpu_load_shader(GpuContext *ctx, const char *spv_path) {
|
||||
FILE *f = fopen(spv_path, "rb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot open shader: %s", spv_path);
|
||||
return VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
fseek(f, 0, SEEK_END);
|
||||
size_t size = (size_t)ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
|
||||
uint32_t *code = (uint32_t *)malloc(size);
|
||||
if (!code) {
|
||||
fclose(f);
|
||||
return VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
fread(code, 1, size, f);
|
||||
fclose(f);
|
||||
|
||||
VkShaderModuleCreateInfo create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
|
||||
.codeSize = size,
|
||||
.pCode = code,
|
||||
};
|
||||
|
||||
VkShaderModule shader;
|
||||
VkResult res = vkCreateShaderModule(ctx->device, &create_info, NULL, &shader);
|
||||
free(code);
|
||||
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create shader module from %s (VkResult: %d)", spv_path,
|
||||
res);
|
||||
return VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
return shader;
|
||||
}
|
||||
|
||||
// ── Find memory type ───────────────────────────────────────────────
|
||||
uint32_t gpu_find_memory_type(GpuContext *ctx, uint32_t type_bits,
|
||||
VkMemoryPropertyFlags properties) {
|
||||
for (uint32_t i = 0; i < ctx->mem_props.memoryTypeCount; i++) {
|
||||
if ((type_bits & (1 << i)) && (ctx->mem_props.memoryTypes[i].propertyFlags &
|
||||
properties) == properties) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return UINT32_MAX;
|
||||
}
|
||||
|
||||
// ── Create buffer ──────────────────────────────────────────────────
|
||||
int gpu_create_buffer(GpuContext *ctx, VkDeviceSize size,
|
||||
VkBufferUsageFlags usage,
|
||||
VkMemoryPropertyFlags mem_props_flags, VkBuffer *buffer,
|
||||
VkDeviceMemory *memory) {
|
||||
VkBufferCreateInfo buffer_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.size = size,
|
||||
.usage = usage,
|
||||
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
|
||||
};
|
||||
|
||||
VkResult res = vkCreateBuffer(ctx->device, &buffer_info, NULL, buffer);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
VkMemoryRequirements mem_req;
|
||||
vkGetBufferMemoryRequirements(ctx->device, *buffer, &mem_req);
|
||||
|
||||
uint32_t mem_type =
|
||||
gpu_find_memory_type(ctx, mem_req.memoryTypeBits, mem_props_flags);
|
||||
if (mem_type == UINT32_MAX) {
|
||||
vkDestroyBuffer(ctx->device, *buffer, NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
VkMemoryAllocateInfo alloc_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
|
||||
.allocationSize = mem_req.size,
|
||||
.memoryTypeIndex = mem_type,
|
||||
};
|
||||
|
||||
res = vkAllocateMemory(ctx->device, &alloc_info, NULL, memory);
|
||||
if (res != VK_SUCCESS) {
|
||||
vkDestroyBuffer(ctx->device, *buffer, NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
vkBindBufferMemory(ctx->device, *buffer, *memory, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Upload data to GPU ─────────────────────────────────────────────
|
||||
int gpu_upload_data(GpuContext *ctx, VkDeviceMemory memory, const void *data,
|
||||
VkDeviceSize size) {
|
||||
void *mapped;
|
||||
VkResult res = vkMapMemory(ctx->device, memory, 0, size, 0, &mapped);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
memcpy(mapped, data, (size_t)size);
|
||||
vkUnmapMemory(ctx->device, memory);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Download data from GPU ─────────────────────────────────────────
|
||||
int gpu_download_data(GpuContext *ctx, VkDeviceMemory memory, void *data,
|
||||
VkDeviceSize size) {
|
||||
void *mapped;
|
||||
VkResult res = vkMapMemory(ctx->device, memory, 0, size, 0, &mapped);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
memcpy(data, mapped, (size_t)size);
|
||||
vkUnmapMemory(ctx->device, memory);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Print GPU info ─────────────────────────────────────────────────
|
||||
void gpu_print_info(const GpuContext *ctx) {
|
||||
char vram_buf[32];
|
||||
format_size(ctx->vram_size, vram_buf, sizeof(vram_buf));
|
||||
|
||||
const char *type_str = "Unknown";
|
||||
switch (ctx->device_props.deviceType) {
|
||||
case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:
|
||||
type_str = "Discrete GPU";
|
||||
break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:
|
||||
type_str = "Integrated GPU";
|
||||
break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:
|
||||
type_str = "Virtual GPU";
|
||||
break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_CPU:
|
||||
type_str = "CPU";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
printf(COL_BOLD COL_MAGENTA
|
||||
"╔══════════════════════════════════════════╗\n" COL_RESET);
|
||||
printf(COL_BOLD COL_MAGENTA
|
||||
"║ GPU Information ║\n" COL_RESET);
|
||||
printf(COL_BOLD COL_MAGENTA
|
||||
"╠══════════════════════════════════════════╣\n" COL_RESET);
|
||||
printf(COL_MAGENTA "║" COL_RESET " Device: %-28s" COL_MAGENTA
|
||||
"║\n" COL_RESET,
|
||||
ctx->device_name);
|
||||
printf(COL_MAGENTA "║" COL_RESET " Type: %-28s" COL_MAGENTA
|
||||
"║\n" COL_RESET,
|
||||
type_str);
|
||||
printf(COL_MAGENTA "║" COL_RESET " VRAM: %-28s" COL_MAGENTA
|
||||
"║\n" COL_RESET,
|
||||
vram_buf);
|
||||
printf(COL_MAGENTA "║" COL_RESET " Max WG: %-28u" COL_MAGENTA
|
||||
"║\n" COL_RESET,
|
||||
ctx->max_workgroup_size);
|
||||
printf(COL_MAGENTA "║" COL_RESET " Vulkan API: %u.%u.%u%*s" COL_MAGENTA
|
||||
"║\n" COL_RESET,
|
||||
VK_API_VERSION_MAJOR(ctx->device_props.apiVersion),
|
||||
VK_API_VERSION_MINOR(ctx->device_props.apiVersion),
|
||||
VK_API_VERSION_PATCH(ctx->device_props.apiVersion), 21, "");
|
||||
printf(COL_BOLD COL_MAGENTA
|
||||
"╚══════════════════════════════════════════╝\n" COL_RESET);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// ── Cleanup ────────────────────────────────────────────────────────
|
||||
void gpu_cleanup(GpuContext *ctx) {
|
||||
if (!ctx || !ctx->is_initialized)
|
||||
return;
|
||||
|
||||
if (ctx->compress_shader != VK_NULL_HANDLE)
|
||||
vkDestroyShaderModule(ctx->device, ctx->compress_shader, NULL);
|
||||
if (ctx->decompress_shader != VK_NULL_HANDLE)
|
||||
vkDestroyShaderModule(ctx->device, ctx->decompress_shader, NULL);
|
||||
|
||||
vkDestroyCommandPool(ctx->device, ctx->command_pool, NULL);
|
||||
vkDestroyDevice(ctx->device, NULL);
|
||||
vkDestroyInstance(ctx->instance, NULL);
|
||||
|
||||
ctx->is_initialized = false;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef GPU_CONTEXT_H
|
||||
#define GPU_CONTEXT_H
|
||||
|
||||
#include "utils.h"
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
// ── GPU Context ────────────────────────────────────────────────────
|
||||
typedef struct {
|
||||
VkInstance instance;
|
||||
VkPhysicalDevice physical_device;
|
||||
VkDevice device;
|
||||
VkQueue compute_queue;
|
||||
uint32_t compute_queue_family;
|
||||
VkCommandPool command_pool;
|
||||
VkPhysicalDeviceProperties device_props;
|
||||
VkPhysicalDeviceMemoryProperties mem_props;
|
||||
|
||||
// Shader modules
|
||||
VkShaderModule compress_shader;
|
||||
VkShaderModule decompress_shader;
|
||||
|
||||
// GPU info
|
||||
char device_name[256];
|
||||
uint64_t vram_size;
|
||||
uint32_t max_workgroup_size;
|
||||
bool is_initialized;
|
||||
} GpuContext;
|
||||
|
||||
// ── Functions ──────────────────────────────────────────────────────
|
||||
|
||||
// Initialize Vulkan GPU context
|
||||
int gpu_init(GpuContext *ctx);
|
||||
|
||||
// Load a SPIR-V shader module
|
||||
VkShaderModule gpu_load_shader(GpuContext *ctx, const char *spv_path);
|
||||
|
||||
// Find memory type index matching requirements
|
||||
uint32_t gpu_find_memory_type(GpuContext *ctx, uint32_t type_bits,
|
||||
VkMemoryPropertyFlags properties);
|
||||
|
||||
// Create a GPU buffer
|
||||
int gpu_create_buffer(GpuContext *ctx, VkDeviceSize size,
|
||||
VkBufferUsageFlags usage,
|
||||
VkMemoryPropertyFlags mem_props_flags, VkBuffer *buffer,
|
||||
VkDeviceMemory *memory);
|
||||
|
||||
// Copy data to GPU buffer
|
||||
int gpu_upload_data(GpuContext *ctx, VkDeviceMemory memory, const void *data,
|
||||
VkDeviceSize size);
|
||||
|
||||
// Copy data from GPU buffer
|
||||
int gpu_download_data(GpuContext *ctx, VkDeviceMemory memory, void *data,
|
||||
VkDeviceSize size);
|
||||
|
||||
// Print GPU information
|
||||
void gpu_print_info(const GpuContext *ctx);
|
||||
|
||||
// Cleanup GPU context
|
||||
void gpu_cleanup(GpuContext *ctx);
|
||||
|
||||
#endif // GPU_CONTEXT_H
|
||||
@@ -0,0 +1,335 @@
|
||||
#include "gpu_decompress.h"
|
||||
#include "gpu_compress.h" // for BlockMeta
|
||||
#include <string.h>
|
||||
|
||||
// ── Initialize decompression pipeline ──────────────────────────────
|
||||
int gpu_decompress_init(GpuDecompressPipeline *pipe, GpuContext *ctx) {
|
||||
memset(pipe, 0, sizeof(GpuDecompressPipeline));
|
||||
pipe->ctx = ctx;
|
||||
|
||||
// ── Descriptor set layout (same as compression) ────────────────
|
||||
VkDescriptorSetLayoutBinding bindings[3] = {
|
||||
{.binding = 0,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
{.binding = 1,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
{.binding = 2,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
};
|
||||
|
||||
VkDescriptorSetLayoutCreateInfo layout_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
|
||||
.bindingCount = 3,
|
||||
.pBindings = bindings,
|
||||
};
|
||||
|
||||
VkResult res = vkCreateDescriptorSetLayout(ctx->device, &layout_info, NULL,
|
||||
&pipe->desc_layout);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
VkPushConstantRange push_range = {
|
||||
.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,
|
||||
.offset = 0,
|
||||
.size = sizeof(DecompressPushConstants),
|
||||
};
|
||||
|
||||
VkPipelineLayoutCreateInfo pipe_layout_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
|
||||
.setLayoutCount = 1,
|
||||
.pSetLayouts = &pipe->desc_layout,
|
||||
.pushConstantRangeCount = 1,
|
||||
.pPushConstantRanges = &push_range,
|
||||
};
|
||||
|
||||
res = vkCreatePipelineLayout(ctx->device, &pipe_layout_info, NULL,
|
||||
&pipe->pipeline_layout);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
VkComputePipelineCreateInfo pipeline_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
|
||||
.stage =
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
|
||||
.stage = VK_SHADER_STAGE_COMPUTE_BIT,
|
||||
.module = ctx->decompress_shader,
|
||||
.pName = "main",
|
||||
},
|
||||
.layout = pipe->pipeline_layout,
|
||||
};
|
||||
|
||||
res = vkCreateComputePipelines(ctx->device, VK_NULL_HANDLE, 1, &pipeline_info,
|
||||
NULL, &pipe->pipeline);
|
||||
if (res != VK_SUCCESS) {
|
||||
LOG_ERR("Failed to create decompression compute pipeline (VkResult: %d)",
|
||||
res);
|
||||
return -1;
|
||||
}
|
||||
|
||||
VkDescriptorPoolSize pool_size = {
|
||||
.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.descriptorCount = 3,
|
||||
};
|
||||
|
||||
VkDescriptorPoolCreateInfo pool_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
|
||||
.maxSets = 1,
|
||||
.poolSizeCount = 1,
|
||||
.pPoolSizes = &pool_size,
|
||||
};
|
||||
|
||||
res = vkCreateDescriptorPool(ctx->device, &pool_info, NULL, &pipe->desc_pool);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
VkDescriptorSetAllocateInfo alloc_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
|
||||
.descriptorPool = pipe->desc_pool,
|
||||
.descriptorSetCount = 1,
|
||||
.pSetLayouts = &pipe->desc_layout,
|
||||
};
|
||||
|
||||
res = vkAllocateDescriptorSets(ctx->device, &alloc_info, &pipe->desc_set);
|
||||
if (res != VK_SUCCESS)
|
||||
return -1;
|
||||
|
||||
LOG_OK("GPU decompression pipeline initialized");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Decompress data using GPU ──────────────────────────────────────
|
||||
int gpu_decompress_data(GpuDecompressPipeline *pipe, const VkzArchive *archive,
|
||||
const char *archive_path, uint8_t *output_data,
|
||||
uint64_t output_size) {
|
||||
|
||||
GpuContext *ctx = pipe->ctx;
|
||||
uint32_t n_blocks = archive->header.block_count;
|
||||
uint32_t block_size = archive->header.block_size;
|
||||
|
||||
// ── Read all compressed blocks into one buffer ─────────────────
|
||||
uint64_t total_compressed = 0;
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
total_compressed += archive->blocks[i].compressed_size;
|
||||
}
|
||||
|
||||
uint8_t *compressed_data =
|
||||
(uint8_t *)calloc(1, (size_t)total_compressed + 16);
|
||||
if (!compressed_data)
|
||||
return -1;
|
||||
|
||||
// Read compressed blocks from archive file
|
||||
FILE *f = fopen(archive_path, "rb");
|
||||
if (!f) {
|
||||
free(compressed_data);
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint64_t comp_offset = 0;
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
fseek(f, (long)archive->blocks[i].compressed_offset, SEEK_SET);
|
||||
fread(compressed_data + comp_offset, 1, archive->blocks[i].compressed_size,
|
||||
f);
|
||||
comp_offset += archive->blocks[i].compressed_size;
|
||||
}
|
||||
fclose(f);
|
||||
|
||||
// ── Build block metadata ───────────────────────────────────────
|
||||
BlockMeta *block_metas = (BlockMeta *)calloc(n_blocks, sizeof(BlockMeta));
|
||||
uint32_t in_off = 0;
|
||||
uint32_t out_off = 0;
|
||||
|
||||
for (uint32_t i = 0; i < n_blocks; i++) {
|
||||
block_metas[i].input_offset = in_off;
|
||||
block_metas[i].input_size = archive->blocks[i].compressed_size;
|
||||
block_metas[i].output_offset = out_off;
|
||||
block_metas[i].output_size = archive->blocks[i].original_size;
|
||||
|
||||
in_off += archive->blocks[i].compressed_size;
|
||||
out_off += archive->blocks[i].original_size;
|
||||
}
|
||||
|
||||
// ── Create GPU buffers ─────────────────────────────────────────
|
||||
VkDeviceSize in_buf_size = ((total_compressed + 3) / 4) * 4;
|
||||
VkDeviceSize out_buf_size = ((output_size + 3) / 4) * 4;
|
||||
VkDeviceSize meta_buf_size = n_blocks * sizeof(BlockMeta);
|
||||
|
||||
VkMemoryPropertyFlags host_visible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
|
||||
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
|
||||
|
||||
if (gpu_create_buffer(ctx, in_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->input_buffer,
|
||||
&pipe->input_memory) != 0) {
|
||||
free(compressed_data);
|
||||
free(block_metas);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (gpu_create_buffer(ctx, out_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->output_buffer,
|
||||
&pipe->output_memory) != 0) {
|
||||
free(compressed_data);
|
||||
free(block_metas);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (gpu_create_buffer(ctx, meta_buf_size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
host_visible, &pipe->meta_buffer,
|
||||
&pipe->meta_memory) != 0) {
|
||||
free(compressed_data);
|
||||
free(block_metas);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Upload data
|
||||
void *mapped;
|
||||
vkMapMemory(ctx->device, pipe->input_memory, 0, in_buf_size, 0, &mapped);
|
||||
memset(mapped, 0, (size_t)in_buf_size);
|
||||
memcpy(mapped, compressed_data, (size_t)total_compressed);
|
||||
vkUnmapMemory(ctx->device, pipe->input_memory);
|
||||
|
||||
vkMapMemory(ctx->device, pipe->output_memory, 0, out_buf_size, 0, &mapped);
|
||||
memset(mapped, 0, (size_t)out_buf_size);
|
||||
vkUnmapMemory(ctx->device, pipe->output_memory);
|
||||
|
||||
gpu_upload_data(ctx, pipe->meta_memory, block_metas, meta_buf_size);
|
||||
|
||||
// ── Update descriptor set ──────────────────────────────────────
|
||||
VkDescriptorBufferInfo buffer_infos[3] = {
|
||||
{.buffer = pipe->input_buffer, .offset = 0, .range = in_buf_size},
|
||||
{.buffer = pipe->output_buffer, .offset = 0, .range = out_buf_size},
|
||||
{.buffer = pipe->meta_buffer, .offset = 0, .range = meta_buf_size},
|
||||
};
|
||||
|
||||
VkWriteDescriptorSet writes[3];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
writes[i] = (VkWriteDescriptorSet){
|
||||
.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
||||
.dstSet = pipe->desc_set,
|
||||
.dstBinding = (uint32_t)i,
|
||||
.descriptorCount = 1,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
||||
.pBufferInfo = &buffer_infos[i],
|
||||
};
|
||||
}
|
||||
vkUpdateDescriptorSets(ctx->device, 3, writes, 0, NULL);
|
||||
|
||||
// ── Dispatch compute ───────────────────────────────────────────
|
||||
VkCommandBufferAllocateInfo cmd_alloc = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
|
||||
.commandPool = ctx->command_pool,
|
||||
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
|
||||
.commandBufferCount = 1,
|
||||
};
|
||||
|
||||
VkCommandBuffer cmd;
|
||||
vkAllocateCommandBuffers(ctx->device, &cmd_alloc, &cmd);
|
||||
|
||||
VkCommandBufferBeginInfo begin_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
|
||||
vkBeginCommandBuffer(cmd, &begin_info);
|
||||
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, pipe->pipeline);
|
||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_COMPUTE,
|
||||
pipe->pipeline_layout, 0, 1, &pipe->desc_set, 0,
|
||||
NULL);
|
||||
|
||||
DecompressPushConstants pc = {
|
||||
.block_count = n_blocks,
|
||||
.block_size = block_size,
|
||||
._pad1 = 0,
|
||||
._pad2 = 0,
|
||||
};
|
||||
vkCmdPushConstants(cmd, pipe->pipeline_layout, VK_SHADER_STAGE_COMPUTE_BIT, 0,
|
||||
sizeof(DecompressPushConstants), &pc);
|
||||
|
||||
vkCmdDispatch(cmd, n_blocks, 1, 1);
|
||||
|
||||
VkMemoryBarrier barrier = {
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
|
||||
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT,
|
||||
.dstAccessMask = VK_ACCESS_HOST_READ_BIT,
|
||||
};
|
||||
vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
|
||||
VK_PIPELINE_STAGE_HOST_BIT, 0, 1, &barrier, 0, NULL, 0,
|
||||
NULL);
|
||||
|
||||
vkEndCommandBuffer(cmd);
|
||||
|
||||
VkSubmitInfo submit = {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
||||
.commandBufferCount = 1,
|
||||
.pCommandBuffers = &cmd,
|
||||
};
|
||||
|
||||
VkFence fence;
|
||||
VkFenceCreateInfo fence_info = {.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO};
|
||||
vkCreateFence(ctx->device, &fence_info, NULL, &fence);
|
||||
|
||||
vkQueueSubmit(ctx->compute_queue, 1, &submit, fence);
|
||||
vkWaitForFences(ctx->device, 1, &fence, VK_TRUE, UINT64_MAX);
|
||||
|
||||
vkDestroyFence(ctx->device, fence, NULL);
|
||||
vkFreeCommandBuffers(ctx->device, ctx->command_pool, 1, &cmd);
|
||||
|
||||
// ── Read back decompressed data ────────────────────────────────
|
||||
gpu_download_data(ctx, pipe->output_memory, output_data, output_size);
|
||||
|
||||
// ── Cleanup ────────────────────────────────────────────────────
|
||||
vkDestroyBuffer(ctx->device, pipe->input_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->input_memory, NULL);
|
||||
vkDestroyBuffer(ctx->device, pipe->output_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->output_memory, NULL);
|
||||
vkDestroyBuffer(ctx->device, pipe->meta_buffer, NULL);
|
||||
vkFreeMemory(ctx->device, pipe->meta_memory, NULL);
|
||||
|
||||
pipe->input_buffer = VK_NULL_HANDLE;
|
||||
pipe->input_memory = VK_NULL_HANDLE;
|
||||
pipe->output_buffer = VK_NULL_HANDLE;
|
||||
pipe->output_memory = VK_NULL_HANDLE;
|
||||
pipe->meta_buffer = VK_NULL_HANDLE;
|
||||
pipe->meta_memory = VK_NULL_HANDLE;
|
||||
|
||||
free(compressed_data);
|
||||
free(block_metas);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Cleanup ────────────────────────────────────────────────────────
|
||||
void gpu_decompress_cleanup(GpuDecompressPipeline *pipe) {
|
||||
if (!pipe || !pipe->ctx)
|
||||
return;
|
||||
VkDevice dev = pipe->ctx->device;
|
||||
|
||||
if (pipe->pipeline != VK_NULL_HANDLE)
|
||||
vkDestroyPipeline(dev, pipe->pipeline, NULL);
|
||||
if (pipe->pipeline_layout != VK_NULL_HANDLE)
|
||||
vkDestroyPipelineLayout(dev, pipe->pipeline_layout, NULL);
|
||||
if (pipe->desc_pool != VK_NULL_HANDLE)
|
||||
vkDestroyDescriptorPool(dev, pipe->desc_pool, NULL);
|
||||
if (pipe->desc_layout != VK_NULL_HANDLE)
|
||||
vkDestroyDescriptorSetLayout(dev, pipe->desc_layout, NULL);
|
||||
|
||||
if (pipe->input_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->input_buffer, NULL);
|
||||
if (pipe->input_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->input_memory, NULL);
|
||||
if (pipe->output_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->output_buffer, NULL);
|
||||
if (pipe->output_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->output_memory, NULL);
|
||||
if (pipe->meta_buffer != VK_NULL_HANDLE)
|
||||
vkDestroyBuffer(dev, pipe->meta_buffer, NULL);
|
||||
if (pipe->meta_memory != VK_NULL_HANDLE)
|
||||
vkFreeMemory(dev, pipe->meta_memory, NULL);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
#ifndef GPU_DECOMPRESS_H
|
||||
#define GPU_DECOMPRESS_H
|
||||
|
||||
#include "gpu_context.h"
|
||||
#include "vkz_format.h"
|
||||
|
||||
// ── GPU Decompression Pipeline ─────────────────────────────────────
|
||||
typedef struct {
|
||||
GpuContext *ctx;
|
||||
|
||||
VkPipelineLayout pipeline_layout;
|
||||
VkPipeline pipeline;
|
||||
VkDescriptorSetLayout desc_layout;
|
||||
VkDescriptorPool desc_pool;
|
||||
VkDescriptorSet desc_set;
|
||||
|
||||
VkBuffer input_buffer;
|
||||
VkDeviceMemory input_memory;
|
||||
VkBuffer output_buffer;
|
||||
VkDeviceMemory output_memory;
|
||||
VkBuffer meta_buffer;
|
||||
VkDeviceMemory meta_memory;
|
||||
} GpuDecompressPipeline;
|
||||
|
||||
typedef struct {
|
||||
uint32_t block_count;
|
||||
uint32_t block_size;
|
||||
uint32_t _pad1;
|
||||
uint32_t _pad2;
|
||||
} DecompressPushConstants;
|
||||
|
||||
// Reuse BlockMeta from gpu_compress.h
|
||||
|
||||
// ── Functions ──────────────────────────────────────────────────────
|
||||
|
||||
int gpu_decompress_init(GpuDecompressPipeline *pipe, GpuContext *ctx);
|
||||
|
||||
int gpu_decompress_data(GpuDecompressPipeline *pipe, const VkzArchive *archive,
|
||||
const char *archive_path, uint8_t *output_data,
|
||||
uint64_t output_size);
|
||||
|
||||
void gpu_decompress_cleanup(GpuDecompressPipeline *pipe);
|
||||
|
||||
#endif // GPU_DECOMPRESS_H
|
||||
+850
@@ -0,0 +1,850 @@
|
||||
/*
|
||||
* ╔══════════════════════════════════════════════════════════════════╗
|
||||
* ║ VKZip v1.0 ║
|
||||
* ║ GPU-Accelerated File Compressor/Decompressor ║
|
||||
* ║ Powered by Vulkan Compute Shaders ║
|
||||
* ╚══════════════════════════════════════════════════════════════════╝
|
||||
*
|
||||
* Usage:
|
||||
* vkzip compress <input_file> [output.vkz]
|
||||
* vkzip decompress <archive.vkz> [output_file]
|
||||
* vkzip info <archive.vkz>
|
||||
* vkzip benchmark <input_file>
|
||||
* vkzip --help
|
||||
*
|
||||
* Cross-platform: Linux & Windows
|
||||
* GPU Support: Any Vulkan-capable GPU (NVIDIA, AMD, Intel)
|
||||
* Fallback: CPU compression when no GPU is available
|
||||
*/
|
||||
|
||||
#include "cpu_fallback.h"
|
||||
#include "gpu_compress.h"
|
||||
#include "gpu_context.h"
|
||||
#include "gpu_decompress.h"
|
||||
#include "utils.h"
|
||||
#include "vkz_format.h"
|
||||
#include <errno.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
// ── Banner ─────────────────────────────────────────────────────────
|
||||
static void print_banner(void) {
|
||||
printf("\n");
|
||||
printf(COL_BOLD COL_GREEN
|
||||
" ██╗ ██╗██╗ ██╗███████╗██╗██████╗ \n"
|
||||
" ██║ ██║██║ ██╔╝╚══███╔╝██║██╔══██╗\n"
|
||||
" ██║ ██║█████╔╝ ███╔╝ ██║██████╔╝\n"
|
||||
" ╚██╗ ██╔╝██╔═██╗ ███╔╝ ██║██╔═══╝ \n"
|
||||
" ╚████╔╝ ██║ ██╗███████╗██║██║ \n"
|
||||
" ╚═══╝ ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ \n" COL_RESET);
|
||||
printf(COL_CYAN " GPU-Accelerated File Compressor v1.0\n" COL_RESET);
|
||||
printf(COL_CYAN " Powered by Vulkan Compute Shaders\n" COL_RESET);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// ── Help ───────────────────────────────────────────────────────────
|
||||
static void print_help(void) {
|
||||
print_banner();
|
||||
printf("Usage:\n");
|
||||
printf(" vkzip " COL_GREEN "compress" COL_RESET
|
||||
" <input_file> [output.vkz] Compress a file\n");
|
||||
printf(" vkzip " COL_GREEN "decompress" COL_RESET
|
||||
" <archive.vkz> [output_file] Decompress archive\n");
|
||||
printf(" vkzip " COL_GREEN "info" COL_RESET
|
||||
" <archive.vkz> Show archive info\n");
|
||||
printf(" vkzip " COL_GREEN "benchmark" COL_RESET
|
||||
" <input_file> Benchmark GPU vs CPU\n");
|
||||
printf(" vkzip " COL_GREEN "--gpu-info" COL_RESET
|
||||
" Show GPU information\n");
|
||||
printf(" vkzip " COL_GREEN "--help" COL_RESET
|
||||
" Show this help\n");
|
||||
printf("\n");
|
||||
printf("Options:\n");
|
||||
printf(" --cpu-only Force CPU mode (no GPU)\n");
|
||||
printf(" --block-size Block size in KB (default: 64)\n");
|
||||
printf("\n");
|
||||
printf("Examples:\n");
|
||||
printf(" vkzip compress myfile.bin\n");
|
||||
printf(" vkzip compress myfile.bin output.vkz\n");
|
||||
printf(" vkzip decompress output.vkz\n");
|
||||
printf(" vkzip decompress output.vkz restored.bin\n");
|
||||
printf(" vkzip benchmark largefile.dat\n");
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// ── Find shader path ───────────────────────────────────────────────
|
||||
static int find_shader_path(char *out_path, size_t max_len,
|
||||
const char *shader_name) {
|
||||
// Try build directory first (defined by CMake)
|
||||
#ifdef SHADER_DIR
|
||||
snprintf(out_path, max_len, "%s/%s", SHADER_DIR, shader_name);
|
||||
if (access(out_path, R_OK) == 0)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
// Try relative to executable
|
||||
snprintf(out_path, max_len, "shaders/%s", shader_name);
|
||||
if (access(out_path, R_OK) == 0)
|
||||
return 0;
|
||||
|
||||
// Try installed location
|
||||
snprintf(out_path, max_len, "/usr/share/vkzip/shaders/%s", shader_name);
|
||||
if (access(out_path, R_OK) == 0)
|
||||
return 0;
|
||||
|
||||
// Try local share
|
||||
snprintf(out_path, max_len, "/usr/local/share/vkzip/shaders/%s", shader_name);
|
||||
if (access(out_path, R_OK) == 0)
|
||||
return 0;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// ── Check if path is a directory ───────────────────────────────────
|
||||
static bool is_directory(const char *path) {
|
||||
struct stat st;
|
||||
if (stat(path, &st) != 0)
|
||||
return false;
|
||||
return S_ISDIR(st.st_mode);
|
||||
}
|
||||
|
||||
// ── Strip trailing slashes ─────────────────────────────────────────
|
||||
static void strip_trailing_slash(char *path) {
|
||||
size_t len = strlen(path);
|
||||
while (len > 1 && (path[len - 1] == '/' || path[len - 1] == '\\')) {
|
||||
path[len - 1] = '\0';
|
||||
len--;
|
||||
}
|
||||
}
|
||||
|
||||
// ── Create tar from directory ──────────────────────────────────────
|
||||
static char *tar_directory(const char *dir_path) {
|
||||
static char tar_path[VKZ_MAX_FILENAME];
|
||||
snprintf(tar_path, sizeof(tar_path), "/tmp/vkzip_%u.tar", (uint32_t)getpid());
|
||||
|
||||
// Get parent dir and basename
|
||||
char dir_copy[VKZ_MAX_FILENAME];
|
||||
strncpy(dir_copy, dir_path, sizeof(dir_copy) - 1);
|
||||
strip_trailing_slash(dir_copy);
|
||||
|
||||
char *last_slash = strrchr(dir_copy, '/');
|
||||
char parent[VKZ_MAX_FILENAME] = ".";
|
||||
const char *basename = dir_copy;
|
||||
|
||||
if (last_slash) {
|
||||
*last_slash = '\0';
|
||||
strncpy(parent, dir_copy, sizeof(parent) - 1);
|
||||
basename = last_slash + 1;
|
||||
}
|
||||
|
||||
char cmd[VKZ_MAX_FILENAME * 3];
|
||||
snprintf(cmd, sizeof(cmd), "tar cf '%s' -C '%s' '%s' 2>/dev/null", tar_path,
|
||||
parent, basename);
|
||||
|
||||
LOG_INFO("Packing directory with tar...");
|
||||
int ret = system(cmd);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to create tar archive from directory");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char size_buf[32];
|
||||
format_size(get_file_size(tar_path), size_buf, sizeof(size_buf));
|
||||
LOG_OK("Directory packed: %s", size_buf);
|
||||
|
||||
return tar_path;
|
||||
}
|
||||
|
||||
// ── Extract tar to directory ───────────────────────────────────────
|
||||
static int untar_file(const char *tar_path, const char *output_dir) {
|
||||
// Create output directory if needed
|
||||
char cmd[VKZ_MAX_FILENAME * 3];
|
||||
|
||||
if (output_dir) {
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
"mkdir -p '%s' && tar xf '%s' -C '%s' 2>/dev/null", output_dir,
|
||||
tar_path, output_dir);
|
||||
} else {
|
||||
snprintf(cmd, sizeof(cmd), "tar xf '%s' 2>/dev/null", tar_path);
|
||||
}
|
||||
|
||||
int ret = system(cmd);
|
||||
return (ret == 0) ? 0 : -1;
|
||||
}
|
||||
|
||||
// ── Generate output filename ───────────────────────────────────────
|
||||
static void make_compress_output(const char *input, char *output,
|
||||
size_t max_len) {
|
||||
// Strip trailing slash for directories
|
||||
char clean[VKZ_MAX_FILENAME];
|
||||
strncpy(clean, input, sizeof(clean) - 1);
|
||||
strip_trailing_slash(clean);
|
||||
snprintf(output, max_len, "%s.vkz", clean);
|
||||
}
|
||||
|
||||
static void make_decompress_output(const VkzArchive *archive, char *output,
|
||||
size_t max_len) {
|
||||
if (archive->original_filename[0] != '\0') {
|
||||
snprintf(output, max_len, "%s", archive->original_filename);
|
||||
} else {
|
||||
snprintf(output, max_len, "output.bin");
|
||||
}
|
||||
}
|
||||
|
||||
// ── Compress command ───────────────────────────────────────────────
|
||||
static int cmd_compress(const char *input_path, const char *output_path,
|
||||
bool cpu_only, uint32_t block_size_kb) {
|
||||
Timer total_timer;
|
||||
timer_start(&total_timer);
|
||||
|
||||
// Check if input is a directory
|
||||
bool is_dir = is_directory(input_path);
|
||||
const char *actual_input = input_path;
|
||||
char *tar_temp_path = NULL;
|
||||
|
||||
if (is_dir) {
|
||||
LOG_INFO("Input is a directory: %s", input_path);
|
||||
tar_temp_path = tar_directory(input_path);
|
||||
if (!tar_temp_path)
|
||||
return 1;
|
||||
actual_input = tar_temp_path;
|
||||
}
|
||||
|
||||
// Read input file
|
||||
uint64_t input_size = get_file_size(actual_input);
|
||||
if (input_size == 0) {
|
||||
LOG_ERR("Cannot read file or file is empty: %s", actual_input);
|
||||
if (tar_temp_path)
|
||||
unlink(tar_temp_path);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char size_buf[32];
|
||||
format_size(input_size, size_buf, sizeof(size_buf));
|
||||
LOG_INFO("Input: %s (%s)", input_path, size_buf);
|
||||
if (is_dir)
|
||||
LOG_INFO("Mode: directory (tar + compress)");
|
||||
|
||||
FILE *f = fopen(actual_input, "rb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot open input file: %s", input_path);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t *input_data = (uint8_t *)malloc((size_t)input_size);
|
||||
if (!input_data) {
|
||||
LOG_ERR("Out of memory (need %s)", size_buf);
|
||||
fclose(f);
|
||||
if (tar_temp_path)
|
||||
unlink(tar_temp_path);
|
||||
return 1;
|
||||
}
|
||||
fread(input_data, 1, (size_t)input_size, f);
|
||||
fclose(f);
|
||||
|
||||
uint32_t block_size = block_size_kb * 1024;
|
||||
|
||||
// Auto-generate output filename if needed
|
||||
char auto_output[VKZ_MAX_FILENAME];
|
||||
if (!output_path) {
|
||||
make_compress_output(input_path, auto_output, sizeof(auto_output));
|
||||
output_path = auto_output;
|
||||
}
|
||||
|
||||
LOG_INFO("Output: %s", output_path);
|
||||
LOG_INFO("Block size: %u KB", block_size_kb);
|
||||
|
||||
// ── Try GPU compression ────────────────────────────────────────
|
||||
uint8_t **compressed_blocks = NULL;
|
||||
uint32_t *block_sizes = NULL;
|
||||
uint32_t block_count = 0;
|
||||
bool used_gpu = false;
|
||||
|
||||
if (!cpu_only) {
|
||||
GpuContext gpu;
|
||||
if (gpu_init(&gpu) == 0) {
|
||||
gpu_print_info(&gpu);
|
||||
|
||||
// Load compression shader
|
||||
char shader_path[1024];
|
||||
if (find_shader_path(shader_path, sizeof(shader_path),
|
||||
"compress.comp.spv") == 0) {
|
||||
gpu.compress_shader = gpu_load_shader(&gpu, shader_path);
|
||||
|
||||
if (gpu.compress_shader != VK_NULL_HANDLE) {
|
||||
GpuCompressPipeline pipe;
|
||||
if (gpu_compress_init(&pipe, &gpu) == 0) {
|
||||
LOG_INFO("Compressing with GPU...");
|
||||
Timer gpu_timer;
|
||||
timer_start(&gpu_timer);
|
||||
|
||||
int result = gpu_compress_data(&pipe, input_data, input_size,
|
||||
block_size, &compressed_blocks,
|
||||
&block_sizes, &block_count);
|
||||
|
||||
double gpu_time = timer_stop(&gpu_timer);
|
||||
|
||||
if (result == 0) {
|
||||
used_gpu = true;
|
||||
LOG_OK("GPU compression done in %.3f seconds", gpu_time);
|
||||
|
||||
double throughput =
|
||||
(double)input_size / (1024.0 * 1024.0) / gpu_time;
|
||||
LOG_OK("Throughput: %.1f MB/s", throughput);
|
||||
} else {
|
||||
LOG_WARN("GPU compression failed, falling back to CPU");
|
||||
}
|
||||
|
||||
gpu_compress_cleanup(&pipe);
|
||||
}
|
||||
} else {
|
||||
LOG_WARN("Could not load compression shader");
|
||||
}
|
||||
} else {
|
||||
LOG_WARN("Shader file not found, falling back to CPU");
|
||||
}
|
||||
|
||||
gpu_cleanup(&gpu);
|
||||
} else {
|
||||
LOG_WARN("No Vulkan GPU available, using CPU fallback");
|
||||
}
|
||||
}
|
||||
|
||||
// ── CPU fallback ───────────────────────────────────────────────
|
||||
if (!used_gpu) {
|
||||
LOG_INFO("Compressing with CPU...");
|
||||
Timer cpu_timer;
|
||||
timer_start(&cpu_timer);
|
||||
|
||||
int result =
|
||||
cpu_compress_file(input_data, input_size, block_size,
|
||||
&compressed_blocks, &block_sizes, &block_count);
|
||||
|
||||
double cpu_time = timer_stop(&cpu_timer);
|
||||
|
||||
if (result != 0) {
|
||||
LOG_ERR("CPU compression failed!");
|
||||
free(input_data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
LOG_OK("CPU compression done in %.3f seconds", cpu_time);
|
||||
double throughput = (double)input_size / (1024.0 * 1024.0) / cpu_time;
|
||||
LOG_OK("Throughput: %.1f MB/s", throughput);
|
||||
}
|
||||
|
||||
// ── Build and write archive ────────────────────────────────────
|
||||
VkzArchive *archive = vkz_create(input_size, block_size, input_path);
|
||||
if (!archive) {
|
||||
LOG_ERR("Failed to create archive structure");
|
||||
free(input_data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Set block compressed sizes and checksums
|
||||
for (uint32_t i = 0; i < block_count; i++) {
|
||||
archive->blocks[i].compressed_size = block_sizes[i];
|
||||
archive->blocks[i].checksum =
|
||||
vkz_crc32(compressed_blocks[i], block_sizes[i]);
|
||||
}
|
||||
|
||||
// Set directory flag if input was a directory
|
||||
if (is_dir) {
|
||||
archive->header.flags |= VKZ_FLAG_DIRECTORY;
|
||||
}
|
||||
|
||||
// Set overall checksum
|
||||
archive->header.checksum = vkz_crc32(input_data, (size_t)input_size);
|
||||
|
||||
int write_result =
|
||||
vkz_write(archive, (const uint8_t **)compressed_blocks, output_path);
|
||||
|
||||
// Print results
|
||||
if (write_result == 0) {
|
||||
vkz_print_info(archive);
|
||||
|
||||
double total_time = timer_stop(&total_timer);
|
||||
uint64_t output_file_size = get_file_size(output_path);
|
||||
char out_buf[32];
|
||||
format_size(output_file_size, out_buf, sizeof(out_buf));
|
||||
|
||||
printf(COL_BOLD COL_GREEN "✓ Compression complete!" COL_RESET "\n");
|
||||
printf(" Method: %s\n", used_gpu ? "GPU (Vulkan)" : "CPU");
|
||||
printf(" Time: %.3f seconds\n", total_time);
|
||||
printf(" Output: %s (%s)\n", output_path, out_buf);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// Cleanup
|
||||
for (uint32_t i = 0; i < block_count; i++) {
|
||||
free(compressed_blocks[i]);
|
||||
}
|
||||
free(compressed_blocks);
|
||||
free(block_sizes);
|
||||
free(input_data);
|
||||
vkz_free(archive);
|
||||
|
||||
// Remove temp tar
|
||||
if (tar_temp_path)
|
||||
unlink(tar_temp_path);
|
||||
|
||||
return write_result;
|
||||
}
|
||||
|
||||
// ── Decompress command ─────────────────────────────────────────────
|
||||
static int cmd_decompress(const char *archive_path, const char *output_path,
|
||||
bool cpu_only) {
|
||||
Timer total_timer;
|
||||
timer_start(&total_timer);
|
||||
|
||||
// Read archive
|
||||
VkzArchive *archive = vkz_read(archive_path);
|
||||
if (!archive)
|
||||
return 1;
|
||||
|
||||
vkz_print_info(archive);
|
||||
|
||||
// Generate output path if not provided
|
||||
char auto_output[VKZ_MAX_FILENAME];
|
||||
if (!output_path) {
|
||||
make_decompress_output(archive, auto_output, sizeof(auto_output));
|
||||
output_path = auto_output;
|
||||
}
|
||||
|
||||
LOG_INFO("Output: %s", output_path);
|
||||
|
||||
// Allocate output buffer
|
||||
uint8_t *output_data =
|
||||
(uint8_t *)calloc(1, (size_t)archive->header.original_size);
|
||||
if (!output_data) {
|
||||
char buf[32];
|
||||
format_size(archive->header.original_size, buf, sizeof(buf));
|
||||
LOG_ERR("Out of memory (need %s)", buf);
|
||||
vkz_free(archive);
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool used_gpu = false;
|
||||
|
||||
// ── Try GPU decompression ──────────────────────────────────────
|
||||
if (!cpu_only) {
|
||||
GpuContext gpu;
|
||||
if (gpu_init(&gpu) == 0) {
|
||||
char shader_path[1024];
|
||||
if (find_shader_path(shader_path, sizeof(shader_path),
|
||||
"decompress.comp.spv") == 0) {
|
||||
gpu.decompress_shader = gpu_load_shader(&gpu, shader_path);
|
||||
|
||||
if (gpu.decompress_shader != VK_NULL_HANDLE) {
|
||||
GpuDecompressPipeline pipe;
|
||||
if (gpu_decompress_init(&pipe, &gpu) == 0) {
|
||||
LOG_INFO("Decompressing with GPU...");
|
||||
Timer gpu_timer;
|
||||
timer_start(&gpu_timer);
|
||||
|
||||
int result =
|
||||
gpu_decompress_data(&pipe, archive, archive_path, output_data,
|
||||
archive->header.original_size);
|
||||
|
||||
double gpu_time = timer_stop(&gpu_timer);
|
||||
|
||||
if (result == 0) {
|
||||
used_gpu = true;
|
||||
LOG_OK("GPU decompression done in %.3f seconds", gpu_time);
|
||||
} else {
|
||||
LOG_WARN("GPU decompression failed, falling back to CPU");
|
||||
}
|
||||
|
||||
gpu_decompress_cleanup(&pipe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gpu_cleanup(&gpu);
|
||||
}
|
||||
}
|
||||
|
||||
// ── CPU fallback ───────────────────────────────────────────────
|
||||
if (!used_gpu) {
|
||||
LOG_INFO("Decompressing with CPU...");
|
||||
Timer cpu_timer;
|
||||
timer_start(&cpu_timer);
|
||||
|
||||
int result = cpu_decompress_file(archive, archive_path, output_data,
|
||||
archive->header.original_size);
|
||||
|
||||
double cpu_time = timer_stop(&cpu_timer);
|
||||
|
||||
if (result != 0) {
|
||||
LOG_ERR("Decompression failed!");
|
||||
free(output_data);
|
||||
vkz_free(archive);
|
||||
return 1;
|
||||
}
|
||||
|
||||
LOG_OK("CPU decompression done in %.3f seconds", cpu_time);
|
||||
}
|
||||
|
||||
// ── Verify checksum ────────────────────────────────────────────
|
||||
uint32_t checksum =
|
||||
vkz_crc32(output_data, (size_t)archive->header.original_size);
|
||||
if (archive->header.checksum != 0 && checksum != archive->header.checksum) {
|
||||
LOG_WARN("CRC32 mismatch! File may be corrupted.");
|
||||
LOG_WARN("Expected: 0x%08X Got: 0x%08X", archive->header.checksum,
|
||||
checksum);
|
||||
} else if (archive->header.checksum != 0) {
|
||||
LOG_OK("CRC32 checksum verified: 0x%08X", checksum);
|
||||
}
|
||||
|
||||
// ── Handle output ──────────────────────────────────────────────
|
||||
bool is_dir_archive = (archive->header.flags & VKZ_FLAG_DIRECTORY) != 0;
|
||||
|
||||
if (is_dir_archive) {
|
||||
// Write tar to temp file, then extract
|
||||
char tar_path[VKZ_MAX_FILENAME];
|
||||
snprintf(tar_path, sizeof(tar_path), "/tmp/vkzip_decomp_%u.tar",
|
||||
(uint32_t)getpid());
|
||||
|
||||
FILE *f = fopen(tar_path, "wb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot create temp tar: %s", tar_path);
|
||||
free(output_data);
|
||||
vkz_free(archive);
|
||||
return 1;
|
||||
}
|
||||
fwrite(output_data, 1, (size_t)archive->header.original_size, f);
|
||||
fclose(f);
|
||||
|
||||
LOG_INFO("Extracting directory...");
|
||||
// If output_path is specified, extract there; otherwise extract to current
|
||||
// dir
|
||||
int ret = untar_file(tar_path, output_path);
|
||||
unlink(tar_path);
|
||||
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to extract directory from tar");
|
||||
free(output_data);
|
||||
vkz_free(archive);
|
||||
return 1;
|
||||
}
|
||||
|
||||
double total_time = timer_stop(&total_timer);
|
||||
char size_buf[32];
|
||||
format_size(archive->header.original_size, size_buf, sizeof(size_buf));
|
||||
|
||||
printf(COL_BOLD COL_GREEN "✓ Directory extracted!" COL_RESET "\n");
|
||||
printf(" Method: %s\n", used_gpu ? "GPU (Vulkan)" : "CPU");
|
||||
printf(" Time: %.3f seconds\n", total_time);
|
||||
printf(" Output: %s\n", output_path ? output_path : "(current directory)");
|
||||
printf(" Tar: %s\n", size_buf);
|
||||
printf("\n");
|
||||
} else {
|
||||
// Regular file output
|
||||
FILE *f = fopen(output_path, "wb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot create output file: %s", output_path);
|
||||
free(output_data);
|
||||
vkz_free(archive);
|
||||
return 1;
|
||||
}
|
||||
|
||||
fwrite(output_data, 1, (size_t)archive->header.original_size, f);
|
||||
fclose(f);
|
||||
|
||||
double total_time = timer_stop(&total_timer);
|
||||
char size_buf[32];
|
||||
format_size(archive->header.original_size, size_buf, sizeof(size_buf));
|
||||
|
||||
printf(COL_BOLD COL_GREEN "✓ Decompression complete!" COL_RESET "\n");
|
||||
printf(" Method: %s\n", used_gpu ? "GPU (Vulkan)" : "CPU");
|
||||
printf(" Time: %.3f seconds\n", total_time);
|
||||
printf(" Output: %s (%s)\n", output_path, size_buf);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
free(output_data);
|
||||
vkz_free(archive);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Info command ───────────────────────────────────────────────────
|
||||
static int cmd_info(const char *archive_path) {
|
||||
print_banner();
|
||||
|
||||
VkzArchive *archive = vkz_read(archive_path);
|
||||
if (!archive)
|
||||
return 1;
|
||||
|
||||
vkz_print_info(archive);
|
||||
|
||||
// Print block details
|
||||
printf(COL_BOLD "Block Details:\n" COL_RESET);
|
||||
printf(" %-6s %-12s %-12s %-8s %-10s\n", "Block", "Original",
|
||||
"Compressed", "Ratio", "CRC32");
|
||||
printf(" ────── ──────────── ──────────── ──────── ──────────\n");
|
||||
|
||||
for (uint32_t i = 0; i < archive->header.block_count && i < 20; i++) {
|
||||
char orig_buf[32], comp_buf[32];
|
||||
format_size(archive->blocks[i].original_size, orig_buf, sizeof(orig_buf));
|
||||
format_size(archive->blocks[i].compressed_size, comp_buf, sizeof(comp_buf));
|
||||
|
||||
double ratio = archive->blocks[i].original_size > 0
|
||||
? (double)archive->blocks[i].compressed_size /
|
||||
(double)archive->blocks[i].original_size * 100.0
|
||||
: 0.0;
|
||||
|
||||
printf(" %-6u %-12s %-12s %5.1f%% 0x%08X\n", i, orig_buf, comp_buf,
|
||||
ratio, archive->blocks[i].checksum);
|
||||
}
|
||||
|
||||
if (archive->header.block_count > 20) {
|
||||
printf(" ... and %u more blocks\n", archive->header.block_count - 20);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
vkz_free(archive);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Benchmark command ──────────────────────────────────────────────
|
||||
static int cmd_benchmark(const char *input_path) {
|
||||
print_banner();
|
||||
|
||||
uint64_t input_size = get_file_size(input_path);
|
||||
if (input_size == 0) {
|
||||
LOG_ERR("Cannot read file: %s", input_path);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char size_buf[32];
|
||||
format_size(input_size, size_buf, sizeof(size_buf));
|
||||
LOG_INFO("Benchmarking: %s (%s)", input_path, size_buf);
|
||||
|
||||
FILE *f = fopen(input_path, "rb");
|
||||
if (!f)
|
||||
return 1;
|
||||
|
||||
uint8_t *input_data = (uint8_t *)malloc((size_t)input_size);
|
||||
fread(input_data, 1, (size_t)input_size, f);
|
||||
fclose(f);
|
||||
|
||||
uint32_t block_size = VKZ_BLOCK_SIZE;
|
||||
double cpu_time = 0, gpu_time = 0;
|
||||
uint64_t cpu_output_size = 0, gpu_output_size = 0;
|
||||
|
||||
// ── CPU Benchmark ──────────────────────────────────────────────
|
||||
{
|
||||
LOG_INFO("Running CPU benchmark...");
|
||||
uint8_t **blocks = NULL;
|
||||
uint32_t *sizes = NULL;
|
||||
uint32_t count = 0;
|
||||
|
||||
Timer t;
|
||||
timer_start(&t);
|
||||
cpu_compress_file(input_data, input_size, block_size, &blocks, &sizes,
|
||||
&count);
|
||||
cpu_time = timer_stop(&t);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
cpu_output_size += sizes[i];
|
||||
free(blocks[i]);
|
||||
}
|
||||
free(blocks);
|
||||
free(sizes);
|
||||
}
|
||||
|
||||
// ── GPU Benchmark ──────────────────────────────────────────────
|
||||
{
|
||||
GpuContext gpu;
|
||||
if (gpu_init(&gpu) == 0) {
|
||||
gpu_print_info(&gpu);
|
||||
|
||||
char shader_path[1024];
|
||||
if (find_shader_path(shader_path, sizeof(shader_path),
|
||||
"compress.comp.spv") == 0) {
|
||||
gpu.compress_shader = gpu_load_shader(&gpu, shader_path);
|
||||
|
||||
if (gpu.compress_shader != VK_NULL_HANDLE) {
|
||||
GpuCompressPipeline pipe;
|
||||
if (gpu_compress_init(&pipe, &gpu) == 0) {
|
||||
LOG_INFO("Running GPU benchmark...");
|
||||
uint8_t **blocks = NULL;
|
||||
uint32_t *sizes = NULL;
|
||||
uint32_t count = 0;
|
||||
|
||||
Timer t;
|
||||
timer_start(&t);
|
||||
gpu_compress_data(&pipe, input_data, input_size, block_size,
|
||||
&blocks, &sizes, &count);
|
||||
gpu_time = timer_stop(&t);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
gpu_output_size += sizes[i];
|
||||
free(blocks[i]);
|
||||
}
|
||||
free(blocks);
|
||||
free(sizes);
|
||||
|
||||
gpu_compress_cleanup(&pipe);
|
||||
}
|
||||
}
|
||||
}
|
||||
gpu_cleanup(&gpu);
|
||||
} else {
|
||||
LOG_WARN("No GPU available for benchmark");
|
||||
}
|
||||
}
|
||||
|
||||
// ── Results ────────────────────────────────────────────────────
|
||||
printf("\n");
|
||||
printf(COL_BOLD COL_YELLOW
|
||||
"╔══════════════════════════════════════════════════╗\n" COL_RESET);
|
||||
printf(COL_BOLD COL_YELLOW
|
||||
"║ Benchmark Results ║\n" COL_RESET);
|
||||
printf(COL_BOLD COL_YELLOW
|
||||
"╠══════════════════════════════════════════════════╣\n" COL_RESET);
|
||||
|
||||
char cpu_buf[32], gpu_buf[32];
|
||||
format_size(cpu_output_size, cpu_buf, sizeof(cpu_buf));
|
||||
|
||||
double cpu_ratio =
|
||||
input_size > 0 ? (double)cpu_output_size / (double)input_size * 100.0 : 0;
|
||||
double cpu_throughput =
|
||||
cpu_time > 0 ? (double)input_size / (1024.0 * 1024.0) / cpu_time : 0;
|
||||
|
||||
printf(COL_YELLOW "║" COL_RESET " CPU:\n");
|
||||
printf(COL_YELLOW "║" COL_RESET " Time: %.3f sec\n", cpu_time);
|
||||
printf(COL_YELLOW "║" COL_RESET " Output: %s (%.1f%%)\n", cpu_buf,
|
||||
cpu_ratio);
|
||||
printf(COL_YELLOW "║" COL_RESET " Throughput: %.1f MB/s\n",
|
||||
cpu_throughput);
|
||||
printf(COL_YELLOW "║" COL_RESET "\n");
|
||||
|
||||
if (gpu_time > 0) {
|
||||
format_size(gpu_output_size, gpu_buf, sizeof(gpu_buf));
|
||||
double gpu_ratio =
|
||||
input_size > 0 ? (double)gpu_output_size / (double)input_size * 100.0
|
||||
: 0;
|
||||
double gpu_throughput =
|
||||
gpu_time > 0 ? (double)input_size / (1024.0 * 1024.0) / gpu_time : 0;
|
||||
|
||||
printf(COL_YELLOW "║" COL_RESET " GPU:\n");
|
||||
printf(COL_YELLOW "║" COL_RESET " Time: %.3f sec\n", gpu_time);
|
||||
printf(COL_YELLOW "║" COL_RESET " Output: %s (%.1f%%)\n", gpu_buf,
|
||||
gpu_ratio);
|
||||
printf(COL_YELLOW "║" COL_RESET " Throughput: %.1f MB/s\n",
|
||||
gpu_throughput);
|
||||
printf(COL_YELLOW "║" COL_RESET "\n");
|
||||
|
||||
double speedup = cpu_time > 0 ? cpu_time / gpu_time : 0;
|
||||
printf(COL_YELLOW "║" COL_RESET COL_BOLD " Speedup: %.2fx %s\n" COL_RESET,
|
||||
speedup,
|
||||
speedup > 1.0 ? COL_GREEN "GPU wins! 🚀" COL_RESET
|
||||
: COL_RED "CPU wins" COL_RESET);
|
||||
} else {
|
||||
printf(COL_YELLOW "║" COL_RESET " GPU: " COL_RED "Not available" COL_RESET
|
||||
"\n");
|
||||
}
|
||||
|
||||
printf(COL_BOLD COL_YELLOW
|
||||
"╚══════════════════════════════════════════════════╝\n" COL_RESET);
|
||||
printf("\n");
|
||||
|
||||
free(input_data);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── GPU Info command ───────────────────────────────────────────────
|
||||
static int cmd_gpu_info(void) {
|
||||
print_banner();
|
||||
|
||||
GpuContext gpu;
|
||||
if (gpu_init(&gpu) != 0) {
|
||||
LOG_ERR("No Vulkan GPU available");
|
||||
return 1;
|
||||
}
|
||||
|
||||
gpu_print_info(&gpu);
|
||||
gpu_cleanup(&gpu);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Main ───────────────────────────────────────────────────────────
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc < 2) {
|
||||
print_help();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Parse global options
|
||||
bool cpu_only = false;
|
||||
uint32_t block_size_kb = 64;
|
||||
|
||||
// Check for flags anywhere in args
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "--cpu-only") == 0) {
|
||||
cpu_only = true;
|
||||
} else if (strcmp(argv[i], "--block-size") == 0 && i + 1 < argc) {
|
||||
block_size_kb = (uint32_t)atoi(argv[++i]);
|
||||
if (block_size_kb < 4)
|
||||
block_size_kb = 4;
|
||||
if (block_size_kb > 1024)
|
||||
block_size_kb = 1024;
|
||||
}
|
||||
}
|
||||
|
||||
const char *command = argv[1];
|
||||
|
||||
// ── Route commands ─────────────────────────────────────────────
|
||||
if (strcmp(command, "--help") == 0 || strcmp(command, "-h") == 0) {
|
||||
print_help();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(command, "--gpu-info") == 0) {
|
||||
return cmd_gpu_info();
|
||||
}
|
||||
|
||||
if (strcmp(command, "compress") == 0 || strcmp(command, "c") == 0) {
|
||||
if (argc < 3) {
|
||||
LOG_ERR("Usage: vkzip compress <input_file> [output.vkz]");
|
||||
return 1;
|
||||
}
|
||||
print_banner();
|
||||
const char *input = argv[2];
|
||||
const char *output = (argc > 3 && argv[3][0] != '-') ? argv[3] : NULL;
|
||||
return cmd_compress(input, output, cpu_only, block_size_kb);
|
||||
}
|
||||
|
||||
if (strcmp(command, "decompress") == 0 || strcmp(command, "d") == 0 ||
|
||||
strcmp(command, "extract") == 0 || strcmp(command, "x") == 0) {
|
||||
if (argc < 3) {
|
||||
LOG_ERR("Usage: vkzip decompress <archive.vkz> [output_file]");
|
||||
return 1;
|
||||
}
|
||||
print_banner();
|
||||
const char *input = argv[2];
|
||||
const char *output = (argc > 3 && argv[3][0] != '-') ? argv[3] : NULL;
|
||||
return cmd_decompress(input, output, cpu_only);
|
||||
}
|
||||
|
||||
if (strcmp(command, "info") == 0 || strcmp(command, "i") == 0) {
|
||||
if (argc < 3) {
|
||||
LOG_ERR("Usage: vkzip info <archive.vkz>");
|
||||
return 1;
|
||||
}
|
||||
return cmd_info(argv[2]);
|
||||
}
|
||||
|
||||
if (strcmp(command, "benchmark") == 0 || strcmp(command, "bench") == 0 ||
|
||||
strcmp(command, "b") == 0) {
|
||||
if (argc < 3) {
|
||||
LOG_ERR("Usage: vkzip benchmark <input_file>");
|
||||
return 1;
|
||||
}
|
||||
return cmd_benchmark(argv[2]);
|
||||
}
|
||||
|
||||
LOG_ERR("Unknown command: %s", command);
|
||||
LOG_ERR("Run 'vkzip --help' for usage information");
|
||||
return 1;
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
#ifndef UTILS_H
|
||||
#define UTILS_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#include <windows.h>
|
||||
#define PATH_SEP '\\'
|
||||
#else
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#define PATH_SEP '/'
|
||||
#endif
|
||||
|
||||
// ── Constants ──────────────────────────────────────────────────────
|
||||
#define VKZ_BLOCK_SIZE (64 * 1024) // 64 KB per block
|
||||
#define VKZ_MAX_MATCH_LEN 258
|
||||
#define VKZ_MIN_MATCH_LEN 3
|
||||
#define VKZ_WINDOW_SIZE (32 * 1024) // 32 KB sliding window
|
||||
#define VKZ_HASH_BITS 15
|
||||
#define VKZ_HASH_SIZE (1 << VKZ_HASH_BITS)
|
||||
#define VKZ_MAX_FILENAME 1024
|
||||
#define VKZ_MAX_BLOCKS (1024 * 1024) // Support files up to 64 GB
|
||||
|
||||
// ── Color output ───────────────────────────────────────────────────
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#define COL_RESET ""
|
||||
#define COL_RED ""
|
||||
#define COL_GREEN ""
|
||||
#define COL_YELLOW ""
|
||||
#define COL_BLUE ""
|
||||
#define COL_CYAN ""
|
||||
#define COL_MAGENTA ""
|
||||
#define COL_BOLD ""
|
||||
#else
|
||||
#define COL_RESET "\033[0m"
|
||||
#define COL_RED "\033[31m"
|
||||
#define COL_GREEN "\033[32m"
|
||||
#define COL_YELLOW "\033[33m"
|
||||
#define COL_BLUE "\033[34m"
|
||||
#define COL_CYAN "\033[36m"
|
||||
#define COL_MAGENTA "\033[35m"
|
||||
#define COL_BOLD "\033[1m"
|
||||
#endif
|
||||
|
||||
// ── Logging macros ─────────────────────────────────────────────────
|
||||
#define LOG_INFO(fmt, ...) fprintf(stdout, COL_CYAN "[INFO] " COL_RESET fmt "\n", ##__VA_ARGS__)
|
||||
#define LOG_OK(fmt, ...) fprintf(stdout, COL_GREEN "[OK] " COL_RESET fmt "\n", ##__VA_ARGS__)
|
||||
#define LOG_WARN(fmt, ...) fprintf(stderr, COL_YELLOW "[WARN] " COL_RESET fmt "\n", ##__VA_ARGS__)
|
||||
#define LOG_ERR(fmt, ...) fprintf(stderr, COL_RED "[ERROR] " COL_RESET fmt "\n", ##__VA_ARGS__)
|
||||
|
||||
// ── Timer utilities ────────────────────────────────────────────────
|
||||
typedef struct {
|
||||
struct timespec start;
|
||||
struct timespec end;
|
||||
} Timer;
|
||||
|
||||
static inline void timer_start(Timer *t) {
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
timespec_get(&t->start, TIME_UTC);
|
||||
#else
|
||||
clock_gettime(CLOCK_MONOTONIC, &t->start);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline double timer_stop(Timer *t) {
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
timespec_get(&t->end, TIME_UTC);
|
||||
#else
|
||||
clock_gettime(CLOCK_MONOTONIC, &t->end);
|
||||
#endif
|
||||
double elapsed = (double)(t->end.tv_sec - t->start.tv_sec);
|
||||
elapsed += (double)(t->end.tv_nsec - t->start.tv_nsec) / 1e9;
|
||||
return elapsed;
|
||||
}
|
||||
|
||||
// ── File utilities ─────────────────────────────────────────────────
|
||||
static inline uint64_t get_file_size(const char *path) {
|
||||
FILE *f = fopen(path, "rb");
|
||||
if (!f) return 0;
|
||||
fseek(f, 0, SEEK_END);
|
||||
uint64_t size = (uint64_t)ftell(f);
|
||||
fclose(f);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline const char* get_filename(const char *path) {
|
||||
const char *name = strrchr(path, PATH_SEP);
|
||||
if (!name) name = strrchr(path, '/'); // fallback
|
||||
return name ? name + 1 : path;
|
||||
}
|
||||
|
||||
static inline void format_size(uint64_t bytes, char *buf, size_t buf_size) {
|
||||
const char *units[] = {"B", "KB", "MB", "GB", "TB"};
|
||||
int unit = 0;
|
||||
double size = (double)bytes;
|
||||
while (size >= 1024.0 && unit < 4) {
|
||||
size /= 1024.0;
|
||||
unit++;
|
||||
}
|
||||
snprintf(buf, buf_size, "%.2f %s", size, units[unit]);
|
||||
}
|
||||
|
||||
// ── Progress bar ───────────────────────────────────────────────────
|
||||
static inline void print_progress(const char *label, uint64_t current, uint64_t total) {
|
||||
if (total == 0) return;
|
||||
int percent = (int)((current * 100) / total);
|
||||
int bar_width = 40;
|
||||
int filled = (percent * bar_width) / 100;
|
||||
|
||||
fprintf(stdout, "\r%s [", label);
|
||||
for (int i = 0; i < bar_width; i++) {
|
||||
if (i < filled) fprintf(stdout, "█");
|
||||
else fprintf(stdout, "░");
|
||||
}
|
||||
fprintf(stdout, "] %3d%%", percent);
|
||||
if (current >= total) fprintf(stdout, "\n");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
#endif // UTILS_H
|
||||
@@ -0,0 +1,278 @@
|
||||
#include "vkz_format.h"
|
||||
|
||||
// ── CRC32 lookup table ─────────────────────────────────────────────
|
||||
static uint32_t crc32_table[256];
|
||||
static bool crc32_table_init = false;
|
||||
|
||||
static void init_crc32_table(void) {
|
||||
if (crc32_table_init)
|
||||
return;
|
||||
for (uint32_t i = 0; i < 256; i++) {
|
||||
uint32_t c = i;
|
||||
for (int j = 0; j < 8; j++) {
|
||||
if (c & 1)
|
||||
c = 0xEDB88320 ^ (c >> 1);
|
||||
else
|
||||
c >>= 1;
|
||||
}
|
||||
crc32_table[i] = c;
|
||||
}
|
||||
crc32_table_init = true;
|
||||
}
|
||||
|
||||
uint32_t vkz_crc32(const uint8_t *data, size_t length) {
|
||||
init_crc32_table();
|
||||
uint32_t crc = 0xFFFFFFFF;
|
||||
for (size_t i = 0; i < length; i++) {
|
||||
crc = crc32_table[(crc ^ data[i]) & 0xFF] ^ (crc >> 8);
|
||||
}
|
||||
return crc ^ 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
// ── Create archive ─────────────────────────────────────────────────
|
||||
VkzArchive *vkz_create(uint64_t original_size, uint32_t block_size,
|
||||
const char *original_filename) {
|
||||
VkzArchive *archive = (VkzArchive *)calloc(1, sizeof(VkzArchive));
|
||||
if (!archive)
|
||||
return NULL;
|
||||
|
||||
uint32_t block_count =
|
||||
(uint32_t)((original_size + block_size - 1) / block_size);
|
||||
if (block_count == 0)
|
||||
block_count = 1;
|
||||
|
||||
archive->header.magic = VKZ_MAGIC;
|
||||
archive->header.version = VKZ_VERSION;
|
||||
archive->header.original_size = original_size;
|
||||
archive->header.block_size = block_size;
|
||||
archive->header.block_count = block_count;
|
||||
archive->header.flags = 0;
|
||||
archive->header.checksum = 0;
|
||||
|
||||
archive->blocks = (VkzBlockEntry *)calloc(block_count, sizeof(VkzBlockEntry));
|
||||
if (!archive->blocks) {
|
||||
free(archive);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Initialize block sizes
|
||||
for (uint32_t i = 0; i < block_count; i++) {
|
||||
uint64_t remaining = original_size - (uint64_t)i * block_size;
|
||||
archive->blocks[i].original_size =
|
||||
(uint32_t)(remaining < block_size ? remaining : block_size);
|
||||
}
|
||||
|
||||
if (original_filename) {
|
||||
strncpy(archive->original_filename, get_filename(original_filename),
|
||||
VKZ_MAX_FILENAME - 1);
|
||||
}
|
||||
|
||||
return archive;
|
||||
}
|
||||
|
||||
// ── Write archive to file ──────────────────────────────────────────
|
||||
int vkz_write(const VkzArchive *archive, const uint8_t **compressed_blocks,
|
||||
const char *output_path) {
|
||||
FILE *f = fopen(output_path, "wb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot create output file: %s", output_path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Calculate data offsets
|
||||
uint64_t header_size = sizeof(VkzHeader);
|
||||
uint64_t table_size =
|
||||
(uint64_t)archive->header.block_count * sizeof(VkzBlockEntry);
|
||||
uint64_t filename_size = strlen(archive->original_filename) + 1;
|
||||
uint64_t data_offset = header_size + table_size + filename_size;
|
||||
|
||||
// Build block table with correct offsets
|
||||
VkzBlockEntry *entries = (VkzBlockEntry *)malloc(table_size);
|
||||
if (!entries) {
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
memcpy(entries, archive->blocks, table_size);
|
||||
|
||||
uint64_t current_offset = data_offset;
|
||||
for (uint32_t i = 0; i < archive->header.block_count; i++) {
|
||||
entries[i].compressed_offset = current_offset;
|
||||
current_offset += entries[i].compressed_size;
|
||||
}
|
||||
|
||||
// Write header
|
||||
fwrite(&archive->header, sizeof(VkzHeader), 1, f);
|
||||
|
||||
// Write block table
|
||||
fwrite(entries, sizeof(VkzBlockEntry), archive->header.block_count, f);
|
||||
|
||||
// Write original filename
|
||||
fwrite(archive->original_filename, 1, filename_size, f);
|
||||
|
||||
// Write compressed blocks
|
||||
for (uint32_t i = 0; i < archive->header.block_count; i++) {
|
||||
if (compressed_blocks[i] && entries[i].compressed_size > 0) {
|
||||
fwrite(compressed_blocks[i], 1, entries[i].compressed_size, f);
|
||||
}
|
||||
}
|
||||
|
||||
free(entries);
|
||||
fclose(f);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ── Read archive from file ─────────────────────────────────────────
|
||||
VkzArchive *vkz_read(const char *archive_path) {
|
||||
FILE *f = fopen(archive_path, "rb");
|
||||
if (!f) {
|
||||
LOG_ERR("Cannot open archive: %s", archive_path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
VkzArchive *archive = (VkzArchive *)calloc(1, sizeof(VkzArchive));
|
||||
if (!archive) {
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Read header
|
||||
if (fread(&archive->header, sizeof(VkzHeader), 1, f) != 1) {
|
||||
LOG_ERR("Failed to read archive header");
|
||||
free(archive);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Validate magic
|
||||
if (archive->header.magic != VKZ_MAGIC) {
|
||||
LOG_ERR(
|
||||
"Invalid archive: magic number mismatch (got 0x%08X, expected 0x%08X)",
|
||||
archive->header.magic, VKZ_MAGIC);
|
||||
free(archive);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Validate version
|
||||
if (archive->header.version != VKZ_VERSION) {
|
||||
LOG_ERR("Unsupported archive version: %u (supported: %u)",
|
||||
archive->header.version, VKZ_VERSION);
|
||||
free(archive);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Read block table
|
||||
archive->blocks = (VkzBlockEntry *)calloc(archive->header.block_count,
|
||||
sizeof(VkzBlockEntry));
|
||||
if (!archive->blocks) {
|
||||
free(archive);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (fread(archive->blocks, sizeof(VkzBlockEntry), archive->header.block_count,
|
||||
f) != archive->header.block_count) {
|
||||
LOG_ERR("Failed to read block table");
|
||||
vkz_free(archive);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Read filename
|
||||
int ch;
|
||||
size_t name_len = 0;
|
||||
while ((ch = fgetc(f)) != EOF && ch != '\0' &&
|
||||
name_len < VKZ_MAX_FILENAME - 1) {
|
||||
archive->original_filename[name_len++] = (char)ch;
|
||||
}
|
||||
archive->original_filename[name_len] = '\0';
|
||||
|
||||
fclose(f);
|
||||
return archive;
|
||||
}
|
||||
|
||||
// ── Read compressed block ──────────────────────────────────────────
|
||||
uint8_t *vkz_read_block(const char *archive_path, const VkzArchive *archive,
|
||||
uint32_t block_index, uint32_t *out_size) {
|
||||
if (block_index >= archive->header.block_count)
|
||||
return NULL;
|
||||
|
||||
FILE *f = fopen(archive_path, "rb");
|
||||
if (!f)
|
||||
return NULL;
|
||||
|
||||
const VkzBlockEntry *entry = &archive->blocks[block_index];
|
||||
uint8_t *data = (uint8_t *)malloc(entry->compressed_size);
|
||||
if (!data) {
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fseek(f, (long)entry->compressed_offset, SEEK_SET);
|
||||
if (fread(data, 1, entry->compressed_size, f) != entry->compressed_size) {
|
||||
free(data);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*out_size = entry->compressed_size;
|
||||
fclose(f);
|
||||
return data;
|
||||
}
|
||||
|
||||
// ── Free archive ───────────────────────────────────────────────────
|
||||
void vkz_free(VkzArchive *archive) {
|
||||
if (!archive)
|
||||
return;
|
||||
if (archive->blocks)
|
||||
free(archive->blocks);
|
||||
free(archive);
|
||||
}
|
||||
|
||||
// ── Print archive info ─────────────────────────────────────────────
|
||||
void vkz_print_info(const VkzArchive *archive) {
|
||||
if (!archive)
|
||||
return;
|
||||
|
||||
char orig_buf[32], comp_buf[32];
|
||||
format_size(archive->header.original_size, orig_buf, sizeof(orig_buf));
|
||||
|
||||
uint64_t total_compressed = 0;
|
||||
for (uint32_t i = 0; i < archive->header.block_count; i++) {
|
||||
total_compressed += archive->blocks[i].compressed_size;
|
||||
}
|
||||
format_size(total_compressed, comp_buf, sizeof(comp_buf));
|
||||
|
||||
double ratio = archive->header.original_size > 0
|
||||
? (double)total_compressed /
|
||||
(double)archive->header.original_size * 100.0
|
||||
: 0.0;
|
||||
|
||||
printf("\n");
|
||||
printf(COL_BOLD COL_CYAN
|
||||
"╔══════════════════════════════════════════╗\n" COL_RESET);
|
||||
printf(COL_BOLD COL_CYAN
|
||||
"║ VKZ Archive Information ║\n" COL_RESET);
|
||||
printf(COL_BOLD COL_CYAN
|
||||
"╠══════════════════════════════════════════╣\n" COL_RESET);
|
||||
printf(COL_CYAN "║" COL_RESET " File: %-28s" COL_CYAN "║\n" COL_RESET,
|
||||
archive->original_filename);
|
||||
printf(COL_CYAN "║" COL_RESET " Original: %-28s" COL_CYAN "║\n" COL_RESET,
|
||||
orig_buf);
|
||||
printf(COL_CYAN "║" COL_RESET " Compressed: %-28s" COL_CYAN "║\n" COL_RESET,
|
||||
comp_buf);
|
||||
printf(COL_CYAN "║" COL_RESET " Ratio: %-27.1f%%" COL_CYAN
|
||||
"║\n" COL_RESET,
|
||||
ratio);
|
||||
printf(COL_CYAN "║" COL_RESET " Blocks: %-28u" COL_CYAN "║\n" COL_RESET,
|
||||
archive->header.block_count);
|
||||
printf(COL_CYAN "║" COL_RESET " Block Size: %-28u" COL_CYAN "║\n" COL_RESET,
|
||||
archive->header.block_size);
|
||||
printf(COL_CYAN "║" COL_RESET " Version: %-28u" COL_CYAN "║\n" COL_RESET,
|
||||
archive->header.version);
|
||||
printf(COL_BOLD COL_CYAN
|
||||
"╚══════════════════════════════════════════╝\n" COL_RESET);
|
||||
printf("\n");
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
#ifndef VKZ_FORMAT_H
|
||||
#define VKZ_FORMAT_H
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
// ── Magic number & version ─────────────────────────────────────────
|
||||
#define VKZ_MAGIC 0x5A4B5600 // "VKZ\0" in little-endian
|
||||
#define VKZ_VERSION 1
|
||||
|
||||
// ── Flags ──────────────────────────────────────────────────────────
|
||||
#define VKZ_FLAG_DIRECTORY \
|
||||
0x01 // Archive was created from a directory (tar inside)
|
||||
|
||||
// ── Archive header ─────────────────────────────────────────────────
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct {
|
||||
uint32_t magic; // VKZ_MAGIC
|
||||
uint32_t version; // VKZ_VERSION
|
||||
uint64_t original_size; // Total uncompressed size
|
||||
uint32_t block_size; // Size of each uncompressed block
|
||||
uint32_t block_count; // Number of blocks
|
||||
uint32_t flags; // Compression flags (future use)
|
||||
uint32_t checksum; // CRC32 of original data
|
||||
} VkzHeader;
|
||||
|
||||
typedef struct {
|
||||
uint64_t compressed_offset; // Offset of compressed data in file
|
||||
uint32_t compressed_size; // Size of compressed block
|
||||
uint32_t original_size; // Original block size (last may be smaller)
|
||||
uint32_t checksum; // CRC32 of this block
|
||||
} VkzBlockEntry;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
// ── Archive structure ──────────────────────────────────────────────
|
||||
typedef struct {
|
||||
VkzHeader header;
|
||||
VkzBlockEntry *blocks; // Array of block entries
|
||||
char original_filename[VKZ_MAX_FILENAME];
|
||||
} VkzArchive;
|
||||
|
||||
// ── Functions ──────────────────────────────────────────────────────
|
||||
|
||||
// Create a new archive structure
|
||||
VkzArchive *vkz_create(uint64_t original_size, uint32_t block_size,
|
||||
const char *original_filename);
|
||||
|
||||
// Write archive to file
|
||||
int vkz_write(const VkzArchive *archive, const uint8_t **compressed_blocks,
|
||||
const char *output_path);
|
||||
|
||||
// Read archive from file (header + block table only)
|
||||
VkzArchive *vkz_read(const char *archive_path);
|
||||
|
||||
// Read a specific compressed block from archive
|
||||
uint8_t *vkz_read_block(const char *archive_path, const VkzArchive *archive,
|
||||
uint32_t block_index, uint32_t *out_size);
|
||||
|
||||
// Free archive structure
|
||||
void vkz_free(VkzArchive *archive);
|
||||
|
||||
// CRC32 checksum
|
||||
uint32_t vkz_crc32(const uint8_t *data, size_t length);
|
||||
|
||||
// Print archive info
|
||||
void vkz_print_info(const VkzArchive *archive);
|
||||
|
||||
#endif // VKZ_FORMAT_H
|
||||
Reference in New Issue
Block a user