Live data from Hacker News

RPCS3 and Dolphin on macOS using gfx-portability

gfx-rs.github.io

21–30 of 35 posts

Re: RPCS3 and Dolphin on macOS using gfx-portability

#21
post #18
post #11

Earlier quoted context omitted.

Some devs are so obsessed complaining about Metal that most aren't aware that UWP and Windows Store are DirectX only. An advantage of all proprietary 3D APIs is the amount of out-of-box infrastructure code, debugging tools and having progressed beyond C, while Khronos APIs are still mostly C, and requiring creating mini-engine from scratch after fishing for libs.

> having progressed beyond C I don't really see the issue with C APIs. IMO C is a fantastic integration point for a library which wants to have the widest reach possible. Interoperability with C is a solved problem in a wide variety of languages, so C APIs tend to be easy to integrate. Also since C is a fairly thin abstraction on top of what a computer actually does, good C APIs tend not to be opinionated about how t…

I see a big one.

https://www.hpe.com/us/en/insights/articles/making-c-less-da...

Plus it is about time to move from 70s style APIs.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#22
post #19
post #9

Earlier quoted context omitted.

Swift and Objective-C API with C++14 shaders vs plain old C API and manually compilation of shaders? Obvious choice, plus all engines that matter already support Metal. Same situation on PS4, XBox and UWP.

> C++14 shaders What's a C++14 shader? Metal uses MSL last time I checked... > manually compilation of shaders The toolchain for this in Vulkan is pretty solid. It's actually nice to be able to write shaders in a high-level language, and then compile them down to SPIR-V which is more likely to be interpreted consistently across drivers than a high-level language.

So apparently you missed the fact that MSL is based on C++14.

https://developer.apple.com/documentation/metal/hello_triang...

Re: RPCS3 and Dolphin on macOS using gfx-portability

#23
post #15
post #12

Earlier quoted context omitted.

The fact that Vulkan is a C API and requires searching for extensions even for a plain 3D Hello World, makes Metal a better option on the Mac.

Erm, not really. I have implemented a reasonably serious PBR renderer in Vulkan on Mac on top of MoltenVK, and the C API is not at all an obstacle. Swift/C interop is fairly straightforward, and Objective C is a superset of C so that is a total non-issue. The ability to easily integrate the wealth of C libraries directly into your high-level code (as opposed to, say, the verbosity of implementing a JNI) is one of the…

C is an obstacle to safe and modern IT stacks.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#24
post #6

Earlier quoted context omitted.

Yes but there's nothing surprising about the Walled Garden Company promoting their own snowflake version of Vulkan and insisting everyone who wants to run software must do things their way. This is the same company who has totally locked down the tooling to create and publish iOS apps to only be possible on their hardware.

And not only do you need a Mac to write iOS apps, you need to pay them $100/yr to run the apps on anything other than your own devices. And even on your own devices, you need to reinstall every few (days? weeks?) because the certificate expired.

That is peanuts compared with games consoles and you don't see game studios crying, on the contrary, they prefer that model to desktop computers.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#25
post #9

Earlier quoted context omitted.

Swift and Objective-C API with C++14 shaders vs plain old C API and manually compilation of shaders? Obvious choice, plus all engines that matter already support Metal. Same situation on PS4, XBox and UWP.

There is nothing wrong with saying something new could be better but is Metal actually so much better than Vulkan to be the only supported API?

Metal isn't new, it's older than Vulkan, and by some metrics I would consider it better.

For one, the learning curve is much smoother: you can get something up on screen quickly, but only later discover the advanced features like argument buffers, manual hazard tracking, etc.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#26
post #23
post #15

Earlier quoted context omitted.

Erm, not really. I have implemented a reasonably serious PBR renderer in Vulkan on Mac on top of MoltenVK, and the C API is not at all an obstacle. Swift/C interop is fairly straightforward, and Objective C is a superset of C so that is a total non-issue. The ability to easily integrate the wealth of C libraries directly into your high-level code (as opposed to, say, the verbosity of implementing a JNI) is one of the…

C is an obstacle to safe and modern IT stacks.

Why are you using graphics engines in your IT stack?

Re: RPCS3 and Dolphin on macOS using gfx-portability

#27
post #25

Earlier quoted context omitted.

There is nothing wrong with saying something new could be better but is Metal actually so much better than Vulkan to be the only supported API?

Metal isn't new, it's older than Vulkan, and by some metrics I would consider it better. For one, the learning curve is much smoother: you can get something up on screen quickly, but only later discover the advanced features like argument buffers, manual hazard tracking, etc.

We are talking 4 years old (3 for desktop) years old vs 2 years old, you're kidding yourself if you think either is established by virtue of being old vs new. That comparison was only fair with OpenGl.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#28

What's funny and sad is that Vulkan may be the one in the long run that helps make macOS (and Linux) relevant longer for games. Imagine if Apple did support Vulkan natively, all Windows games via Steam Play Beta can be run on macOS easily and with support of eGPU, it would help a lot to make them run better. All I can realistically hope for is that Apple continues to close the gap between Metal and Vulkan, so project…

This is exactly what Casey Muratori was ranting about in his "Thirty Million Line Problem" video. My interpretation (or extension) of the point he was making: if the same hardware (CPU + GPU) can boot Mac OSX or Windows, why can't the same game binary run on both? If hardware vendors created a good "ISA" and stuck to it, it should be possible to write one binary that talks to the hardware directly and runs the same anywhere as long as the hardware ISA is compatible.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#29
post #23

Earlier quoted context omitted.

C is an obstacle to safe and modern IT stacks.

Why are you using graphics engines in your IT stack?

I guess because I am not using a VT 100 terminal, rather a desktop computer using a GPU to provide a nice modern user experience.

The biggest theme on Linux Security Summit 2018 was taming security exploits on Linux kernel due to C's lack of security.

I count at least 10 talks about this subject.

https://www.youtube.com/user/TheLinuxFoundation/videos

So apparently the review process, approvals and current static validation is still not enough.

Re: RPCS3 and Dolphin on macOS using gfx-portability

#30
post #20

What's funny and sad is that Vulkan may be the one in the long run that helps make macOS (and Linux) relevant longer for games. Imagine if Apple did support Vulkan natively, all Windows games via Steam Play Beta can be run on macOS easily and with support of eGPU, it would help a lot to make them run better. All I can realistically hope for is that Apple continues to close the gap between Metal and Vulkan, so project…

> projects like Metal on Vulkan (MoltanVK) It's not Metal on Vulkan, it's the other way around. Also, kind of strange to bring this up when the topic is about gfx-portability progress (which is competing with MoltenVK).

That is correct, my morning brain mixed it up because of writing of MoltanVK started me off on Metal on Vulkan.

I bought it up because of the general topic of Vulkan and Metal, not because of gfx-rs itself. MoltanVK deserves a mention due to Khronos Group sponsoring it.

Post reply on HN