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

Vulkan Codegen Next Tranche #1944

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

Conversation

jzulauf-lunarg
Copy link
Contributor

These changes do change the output of the code generation, how all output seems to be simply reordered, but present.

The first half of the changes move various processing to endFile time, the second half change struct/handle/wrapper generation

Generate the Vulkan struct encoders at endFile time instead of
generate_feature time.
Move the generation of Vulkan referenced resource consumer
content from generate_feature to endFile time.
Move the Vulkan JSON consumer generation from generate_feature to
endFile time.
Migrate the generation of content for the replay dump resource header
from generate_feature to endFile time.
Generate the codegen content for struct handle mapping from
generate_feature to endFile time.
Migrate the generation of Khronos and Vulkan struct decoder
body generation from generate_feature to endFile time.
Update the generation of consumer replay body content from
generate_feature to endFile time.
Move the consumer header (which also affected JSON consumer header)
codgen to generate at endFile time instead of generate_feature
Update the Vulkan struct decoder header generation to be endFile
time and not generate-feature.

** Warning **
It does re-arrange function definitions in the header, but they
are all present still.
*************
Generate Vulkan struct decoders forward header at endFile time.

** WARNING: **
This re-arranged items in the file because it would
alternate structs with functions and now all the structs are listed
before all the functions.
I have walked the changes, and only the order of items has changed.
**************
Update the Vulkan enum to string header generation to be endFile
time and not generate-feature.

** Warning **
It does re-arrange function definitions in the header, but they
are all present still.
*************
Update the Vulkan enum to string body generation to be endFile
time and not generate-feature.

** Warning **
It does re-arrange function definitions in the header, but they
are all present still.
*************
This change modifies how the extension structs are stored to be more
obvious.  Previously, the extension structs were stored by the
struct that did the extending.  Instead, switch to storing the extended
structs based on the parent that is extended.

This resulted in order changes in output of the various pNext structs
so sort them so they will no longer change in order.

** Warning **
It does re-arrange items in the file, but they are all still present.
*************
The pnext_struct files were not indicating that they were for Vulkan.
They are, and so rename them.
Update the extended struct updating when handles are in play.
This recurses up the tree to make sure we don't miss any structures
which have struct members which have struct members which have handles.
Start using global_structs_with_handles instead of using a local
version.
Update the Vulkan struct handle wrapping codegen to use the
khronos base variables for struct handle tracking.

** Warning **
It does re-arrange items in the file, but they are all still present.
*************
Add support for detecting handle pointers in structures and
tracking those in the Khronos base classes.
Migrate the codegen for structure handle mappers header to use
the new khronos variables and move functionality from Vulkan into
the Khronos generic versions.
Migrate the struct handle mapper body generation code to use the
Khronos structs_with_handles types and to have not dependency on
the Vulkan calling code.
Migrate the replay consumer code gen to use the Khronos types and
not internal types.
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 339791.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5714 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5714 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.

4 participants