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

Separate dx12 codegen #1827

Open
wants to merge 12 commits into
base: dev
Choose a base branch
from

Conversation

MarkY-LunarG
Copy link
Contributor

Separate out the DX12 codegen from the Vulkan codegen. The DX12 codegen was heavily tied in with the Vulkan codegen which leads to difficulty when trying to add in other Khronos API codegen (since we have to be careful of breaking other APIs).

Remove the hard-coded dependency upon our Vulkan and the Khronos
registry edit functionality (which the DX side really doesn't use).
NOTE: This did require copying a few functions (like write) from
the Khronos source to maintain consistency (so I added the Khronos
copyright notice to the dx12_generators/base_generator.py file).
This mostly is just copying functionality from the
vulkan_generators/base_generator.py to the renamed
dx12_generators/base_generator.py.  The file in the dx12_generators
directory was renamed from "dx12_base_generator.py" to
"base_generator.py" because the "base_generators" directory scripts
required it to be named that to work without more major edits to
that shared code base.

There will be a change coming with will break the dx12 depedence upon
those base_generator scripts.
Move the beginFeature and endFeature method definition in the python
so it's easier to find near the beginFile/endFile methods.
Move the Dx12 codegen to use its own base_decoder_body_generator
script.
Some code for dx12 codegen was still left in the base_generators
base_decoder_body_generator script which is no longer used by
the dx12 codegen path.
Copy the base_replay_consumer_body_generator script to the
dx12 path so that we don't get broken by the Khronos API codegen
changes.
Copy the base_struct_decoders_body_generator into the Dx12
tree so that when the Khronos API codegen changes occur, they
won't affect the DX12 tree.
Copy the base_struct_decoders_header_generator into the Dx12
tree so that when the Khronos API codegen changes occur, they
won't affect the DX12 tree.
Copy the base_struct_object_mappers_body_generator content
directly into the dx12_struct_object_mappers_body_generator
script because it would only end up there.
This is so that when the Khronos API codegen changes occur, they
won't affect the DX12 tree.
Copy the base_struct_object_mappers_header_generator content
directly into the dx12_struct_object_mappers_header_generator
script because it would only end up there.
This is so that when the Khronos API codegen changes occur, they
won't affect the DX12 tree.
Dx12 codegen now uses its own scripts.  So remove any dx12 specific
items in the Vulkan or Base code.
Rename what used to be dx12_generators\dx12_base_generators.py
which we had then renamed dx12_generators\base_generators.py to
start the Dx12 codegen separation project, back to the original
dx12_generators\dx12_base_generators.py filename.
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 285599.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5166 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5166 passed.

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

Successfully merging this pull request may close these issues.

2 participants