Revive --extract-shaders for dxbc bytecode extraction#186
Draft
PachiMako wants to merge 4 commits into
Draft
Conversation
teShaderCode, teShaderInstance and teShaderGroup all changed structure since at least the patch of Aug 10 '23 (Manifest 3320652641754470004). This change reran structural analysis of teShaderCode as well as teShaderGroup which now holds a list of shaders per group. teShaderInstance is not reversed in this change since --extract-shaders does not require it to be updated (note that teShaderInstance moved from 088 to 040). Further reversing of the fields and their associations may come in subsequent changes. Changes: - Improves error handling and logging for --extract-shaders - Adds errors in codepaths that are not longer functional such as resolving file names in SaveShaderGroup and resolving previously extracted shaders using their now stale hash - Fixup teSHADER_TYPE enum which is in fact a byte-sized bitflag with COMPUTE being inferred from no other stages being enabled - Minimal reverse of teShaderGroup and teShaderCode headers Verified working on overwatch build prometheus-2_23_0_0-150480 with valid dxbc for all entries of teShaderCode with the following distributions across shader types: PIXEL (2): 112210 VERTEX (1): 21777 COMPUTE (0): 147 GEOMETRY (4): 24 VERTEX, UNKNOWN_C (129): 13 GEOMETRY, UNKNOWN_B (20): 1
Author
|
Needs a few fixes before opening up for review again:
|
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.
teShaderCode, teShaderInstance and teShaderGroup all changed structure since at least the patch of Aug 10 '23 (Manifest 3320652641754470004).
This change reran structural analysis of teShaderCode as well as teShaderGroup which now holds a list of shaders per group. teShaderInstance is not reversed in this change since --extract-shaders does not require it to be updated (note that teShaderInstance moved from 088 to 040).
Further reversing of the fields and their associations may come in subsequent changes.
Changes:
Verified working on overwatch build prometheus-2_23_0_0-150480 with valid dxbc for all entries of teShaderCode with the following distributions across shader types: