Skip to content

Conversation

@colincornaby
Copy link
Contributor

This is a commit that adds the Metal 3 check directly into the device enumerator. This allows a user or developer to ask specifically for the Metal 2 renderer on a Metal 3 system.

Not hooked up to anything yet - but needs to be hooked up to the Argument Buffer PR which has Metal 2/3 specific behaviors. This is being done as a direct result of a Metal 2 bug getting past testing because all my dev systems have Metal 3 GPUs.

@colincornaby colincornaby force-pushed the Metal-3-as-discrete-API-type branch from 72d2706 to 5123ad2 Compare January 11, 2026 20:01
devSel.RemoveUnusableDevModes(true);

if (!devSel.GetDefault(&dmr))
if (!devSel.GetRequested(&dmr, devmode))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dpogue - Detecting audio/video settings was using default device instead of the requested device. Not sure if that's intentional. I might at least need to add a backup case of checking the default device for display modes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dpogue - Just checking in on this question again in since you had another comment on this PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Passing devmode as a bool here is definitely not right (since the second argument to GetRequested is a DeviceType enum value).

I think it is expected/correct that this case uses the default device, since this is the fallback if the requested device can't be in plClient::InitPipeline.

FYI this code was slightly modified in #1744 to enumerate based on the default display handle.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh jees, why did the compiler let me get away with that?

But I'm also not sure if should be the default device when the user specifies a renderer as an argument.

I'll look at the other PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I've reverted this change. I wanted to fix it, but this is all run too early, so maybe some other time...

It's not technically a huge problem. As long as all the renderers agree on possible display modes.

@colincornaby colincornaby force-pushed the Metal-3-as-discrete-API-type branch from aa764f5 to f5dea00 Compare January 14, 2026 04:45
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.

3 participants