-
Notifications
You must be signed in to change notification settings - Fork 716
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
[RFC] WinAdapter: Export helper functions to interact with shimmed types #3265
Open
MarijnS95
wants to merge
3
commits into
microsoft:main
Choose a base branch
from
MarijnS95:winadapter-export-helper-functions
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[RFC] WinAdapter: Export helper functions to interact with shimmed types #3265
MarijnS95
wants to merge
3
commits into
microsoft:main
from
MarijnS95:winadapter-export-helper-functions
Conversation
This file contains 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
55ffd35
to
74f1588
Compare
❌ Build DirectXShaderCompiler 1.0.3888 failed (commit 94e7cdcc99 by @MarijnS95) |
74f1588
to
40e6cee
Compare
❌ Build DirectXShaderCompiler 1.0.3889 failed (commit 91a1745251 by @MarijnS95) |
40e6cee
to
76e5193
Compare
38 tasks
The implementation of these support types completely depends on DXC. As such applications using libdxcompiler.so have to guess and/or look at the source code to understand how they are implemented (eg prefix size for BSTR), and assume this is not going to change. Applications using these newly exported symbols can do it "the right way" as if they are on Windows.
Some functions return lists allocated with CoTaskMemAlloc. Applications using libdxcompiler.so currently have to look into the code to understand that these should be deallocated with free() instead of delete[]. Export the CoTaskMemFree function so that there is no guesswork involved anymore: the application can now call this function and always free it in the right way.
76e5193
to
3c42468
Compare
Still an RFC as per #3250 (comment), not sure if we actually want this - probably not worth the hassle as we're following the implementation of |
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.
For #3250 (comment)
WinAdapter shims some types and constructs that returned to applications interacting with
libdxcompiler.so
. Currently these applications have to "guess" or look into the code to understand how to work with these without provoking incorrect or unexpected behaviour. Even though they are unlikely to change, exporting these functions allow applications to work with Windows APIs "as normal" on Linux, without having to define fallback paths with heavily implementation dependent code.For example, my usecase of DXC currently has to define these monstrosities:
https://github.com/Traverse-Research/hassle-rs/blob/5cfd0f545e27c54f592e54f73214d129ebfab1a8/src/os.rs#L26-L54