Enable Native CUDA/nvCOMP Loading and Add ZIP/7z Archive Support#12
Merged
temotskipa merged 1 commit intomainfrom Sep 1, 2025
Merged
Enable Native CUDA/nvCOMP Loading and Add ZIP/7z Archive Support#12temotskipa merged 1 commit intomainfrom
temotskipa merged 1 commit intomainfrom
Conversation
This commit introduces several new features and improvements:
1. **Native CUDA/nvCOMP Dependency Loading:**
- The application now dynamically searches for and loads native CUDA Toolkit and nvCOMP libraries from standard installation paths.
- This removes the need to have the DLLs alongside the executable and allows the app to use existing CUDA installations.
- P/Invoke calls were refactored to use dynamic loading (`LoadLibrary`/`GetProcAddress` on Windows), making the application more robust and version-agnostic.
- Added error handling to gracefully manage cases where the native libraries are not found, falling back to simulation mode.
2. **ZIP Archive Support:**
- Added the ability to compress files into `.zip` archives.
- The application can now compress multiple files or entire folders into a single `.zip` file.
- Decompression of `.zip` archives is also supported. The application intelligently handles archives with mixed content (a combination of `.gdef` and other files).
- A new `ArchiveManager` class was created to handle the zip functionality using `System.IO.Compression`.
3. **Console Application Enhancements:**
- Added a `--format` option to the `compress` command to specify the output format (`gdef` or `zip`).
- Added an `--output-dir` option to the `decompress` command to specify the extraction directory.
- Improved command-line argument parsing.
4. **GUI Application Enhancements:**
- Added a dropdown menu to select the output format.
- Added a folder selection dialog for decompression.
- Added a prominent status indicator to show whether GPU acceleration is active or if the app is in simulation mode.
These changes make the application more powerful, flexible, and user-friendly.
Contributor
Author
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll acknowledge your comments with a 👀 emoji and then get to work. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! I will automatically address your feedback on specific files or sections of files. For any comments you don't want me to act on, just include PS: Responding to comments on the entire PR are not yet supported but coming soon. For security, I will only act on instructions from the user who triggered this task for this pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This update adds two major features:
.ziparchives, providing a standard container for one or more GPU-compressed files. A disabled option for.7zhas been added for future implementation.The console and GUI applications have been updated to support these new features, including new command-line options and UI controls.