Feature(GPU): Texture dumper and replacer#333
Open
Graine25 wants to merge 5 commits intorexglue:developmentfrom
Open
Feature(GPU): Texture dumper and replacer#333Graine25 wants to merge 5 commits intorexglue:developmentfrom
Graine25 wants to merge 5 commits intorexglue:developmentfrom
Conversation
Co-authored-by: SolarCookies <SolarCookies@users.noreply.github.com>
Co-authored-by: SolarCookies <SolarCookies@users.noreply.github.com>
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 feature adds a texture dump and replacement system that identifies guest textures by a stable content hash, dumps them to
textures/dump, and loads user-authored replacements fromtextures/replace. When enabled through CVars, matching replacements are decoded to RGBA8 and injected into the D3D12 texture cache in place of the original guest texture.build(thirdparty): expose stb_image target- Adds stb_image as an available third-party target and updates install handling so the replacement pipeline can decode image files, especially PNG replacements, without embedding a separate image dependency path.a8517da feat(gpu): add texture replacement pipeline- Introduces the core replacement/dumper module undergraphics/pipeline/texture. This adds hashing, replacement directory scanning, PNG/DDS loading, DDS dumping, guest texture untiling/endian conversion for dumps, and the filesystem layout:textures/dumpfor generated assets andtextures/replacefor user-provided replacements.7a90eaa feat(gpu): inject replacement textures- Wires the replacement pipeline into the texture cache and D3D12 upload path. It hashes guest texture contents, looks up matching replacement files, adjusts the texture key for RGBA8 replacement uploads, preserves the original guest layout for memory watches, and keeps temporary upload buffers alive until the GPU has finished using them.feat(gpu): add texture replacement cvars- This commit adds the user-facing controls for the texture edit feature: texture_dump_enabled,texture_replace_enabled, andtexture_folder. Dumping and replacement are now gated by CVars, andtexture_folderlets users choose a custom root directory fordump/andreplace/instead of always using<executable folder>/textures.More effort can be made to implement this into Vulkan as well as adjusting for more DDS formats or even PNG's, but this has mostly been optmized for D3D12. Almost all work is @SolarCookies. Addresses issue #294