Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Status #1

Open
KoromaruKoruko opened this issue Nov 15, 2020 · 4 comments
Open

Status #1

KoromaruKoruko opened this issue Nov 15, 2020 · 4 comments

Comments

@KoromaruKoruko
Copy link

How's this coming along?

Is it in a working state of is it still very much a prototype?

@spacehamster
Copy link
Owner

I would say it is still very much a prototype. Bytecode parsing works, but the HLSL output is not valid at this stage.

@olie304
Copy link

olie304 commented Feb 13, 2021

Would you be a little bit clearer on what is going on in the project right now? Specifically what it supports and your plans for it? Also what is the "OldHLSLDecompiler" stuff about? I was thinking about fixing some stuff but not really sure what you plan to do with that.

@spacehamster spacehamster reopened this Feb 13, 2021
@KoromaruKoruko
Copy link
Author

turn it to a continues status/update thread?

@spacehamster
Copy link
Owner

spacehamster commented Feb 13, 2021

@olie304 I plan to support DX9 Shaders (SM2, SM3), DX10 Shaders (SM4, SM5), and potentially DX12 shaders (SM6). The goal being readable and correct HLSL.

I plan to throw out OldHLSLDecompiler completely. the current design in master is a two phase system:

  1. Parse Bytecode into a Bytecode Container
  2. Convert Bytecode Container to HLSL source .

I am in the process of replacing it with a 3 stage design and OldHLSLDecompiler will be removed once that is done.

  1. Parse Bytecode into a Bytecode Container
  2. Convert Bytecode into a intermediate representation
  3. Convert intermediate representation to HLSL source.

The new IR phase would allow type reconstruction, instruction lifting, better sharing of DX9 and DX10 HLSL generation code and assuming SM6 is supported, revectorization and structured control flow reconstruction. I have pushed the IR changes to master, but the current state is not as advanced as OldHLSLDecompiler was, I am in the process of investigating how well the IR can support DX12 (SM6) shaders.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants