-
-
Notifications
You must be signed in to change notification settings - Fork 171
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
Add GDK support to sentry-native
#1068
Comments
I am still not sure I understand the distinction here:
Does this mean we can use the |
PGDK is a windows focused SDK for developing with UWP applications. By chance Xbox allows consumers to load UWP apps but this is a minimal sandbox with many restrictions so not useful for most games. GDKX is the Xbox specific version that includes new/extra and modified headers specific to Xbox. The idea is the are at least largely compatible so GDK can give you at least some progress towards goals |
That is also my state of knowledge, but it conflicts with what was written above.
Using By the way, the changes on the private repo have been available for more than a year, and missing ownership, legal questions, and clear goals primarily inhibited progress toward releasing the changes under MIT. The ownership and legal topics are now clarified. Thanks to @bruno-garcia. I am still missing clarity on the goal because, to me, what @bruno-garcia wrote here, https://discord.com/channels/621778831602221064/1299749883254673410/1301610082852933743, doesn't match the use of https://github.com/microsoft/gdk. It is totally possible that I am not getting it. But it sounded like the build (and anything following it) must still happen in a closed environment. If a
|
It's not really by chance. It was an effort from Microsoft to align the APIs to make it easier for developers to use a single API regardless what they are targeting.
Right, this is the idea. Is that feasible?
For changes that relate to GDKX we would indeed need to do on a separate repo.
We can only leverage MIT-licensed GDK code in this repo. And downloading the GDKX on a public GHA runner isn't something we can do at this time. I'm not sure what would be the best route for us here, I'd appreciate suggestions. The goal was to only close the gap between our main branch here, and what a user targeting Xbox will need to have by having any GDK dependency happen against the OSS code base, but if there's not enough value in that please clarify |
Some ideas of GDK based integrations that could be event or breadcrumbs:
Some of these might manifest with a system popup, or a crash(?) or user needs to handle the failure and programatically call Sentry. But what/how could we hook and make this easier to give visibility to developers of what's going wrong? if there are no hooks, can we contribute a hook upstream to the GDK? We could also leverage it get additional context or tags. There's a lot more on the GDK docs, I just pulled a few links to give some ideas. Surely some of these won't help with Unreal when they don't rely on GDK but rather direct OS APIs, but at least for those on GDK directly on PC and Xbox will benefit from it. |
A lot of what it takes to build sentry-native on Xbox is available here: https://github.com/search?q=repo%3Amicrosoft%2FXbox-GDK-Samples%20scarlett&type=code The repo is MIT licensed, and we have an agreement in place that lets us use it. |
Microsoft has open sourced the GDK: https://github.com/microsoft/gdk
Using the MIT-licensed code from that repo, we could have sentry-native support the GDK on PC and make it easier for folks on Xbox to build on top of that to get access to closed-source/NDA protected platforms (i.e: Xbox Series S|X)
Testing must be done only with the Windows GDK. To be clear, only code from the open source GDK (https://github.com/microsoft/gdk) can be used here and CI won't involve devices other than the GHA Windows VM.
General references to the Xbox Extensions is OK btw, we just can't have any code from it here. So if that helps with the CMake files, that's fine.
The text was updated successfully, but these errors were encountered: