News for hackers. Stuff that matters.
Re:Star Citizen developers intend to drop DirectX support an... by mtgx on Sunday March 19, 2017 @11:39AM (#13907724)
If Vulkan was "much lower-level" than DX12, then DX12 performance wouldn't even be in the same ballpark as Vulkan performance. Both Vulkan and DX12 were made more "lower-level" to gain that extra CPU and multi-core efficiency. I think Vulkan still beats DX12 in performance, if all else is equal, but I don't think the difference is huge.

DX12 is not DX11+1. It's a clone of AMD's Mantle, which was eventually given to Khronos, so they make it into Vulkan. The main advantage of Vulkan is that it runs almost everywhere. DirectX 12 doesn't.

Re:Star Citizen developers intend to drop DirectX support an... by wolfgke on Sunday March 19, 2017 @11:56AM (#13907828)
> The main advantage of Vulkan is that it runs almost everywhere. DirectX 12 doesn't.

DirectX 12 runs on XBox One, while Vulkan does not:

> http://www.redgamingtech.com/directx-12-for-xbox-one-is-here...

And for OSX/iOS, you have to use OpenGL or Metal.

Re:Star Citizen developers intend to drop DirectX support an... by mixedCase on Sunday March 19, 2017 @12:38PM (#13908085)
> DirectX 12 runs on XBox One, while Vulkan does not:

And the Switch uses Vulkan; while Vulkan on top of Windows (including 7 and 8/8.1) supports Linux and Android. For iOS and macOS there's MoltenVK, but I can't speak for its quality.

Re:Star Citizen developers intend to drop DirectX support an... by pjmlp on Sunday March 19, 2017 @01:44PM (#13908529)
While the Switch supports Vulkan, it isn't the main graphics API, that role belongs to NVN.

https://blogs.nvidia.com/blog/2016/10/20/nintendo-switch/

So it remains to be seen which one gets the love of game developers.

Re:Star Citizen developers intend to drop DirectX support an... by kbenson on Sunday March 19, 2017 @04:41PM (#13909495)
> So it remains to be seen which one gets the love of game developers.

That's actually a fairly interesting question, given the percentage of games that come out for Nintendo platforms which are exclusive to that platform (or at least to the Nintendo family of platforms). There are all the first party titles, and then there are all the esoteric games which don't really fit the control schemes of the other platforms (but the switch is less unique in this aspect). I imagine games targeted purely at Nintendo platforms might use their proprietary API, especially first party games, which might get the API changed based on their needs.

Re:Star Citizen developers intend to drop DirectX support an... by ekianjo on Sunday March 19, 2017 @12:33PM (#13908045)
and Vulkan does not run on windows uwp apps, which MS is strongly pushing forward.
Re:Star Citizen developers intend to drop DirectX support an... by yulaow on Sunday March 19, 2017 @05:09PM (#13909665)
and everyone else ignoring
Re:Star Citizen developers intend to drop DirectX support an... by pjmlp on Sunday March 19, 2017 @12:38PM (#13908080)
> The main advantage of Vulkan is that it runs almost everywhere.

It doesn't run on Sony PS4, Nintendo Wii U, XBox ONE, UWP, OS X, iOS, tvOS.

Even on Android it is going to take a while until most people exchange their handsets for ones having it, because the majority will never get an upgrade for Android 7.

Re:Star Citizen developers intend to drop DirectX support an... by shmerl on Sunday March 19, 2017 @02:08PM (#13908678)
Lock-in freaks will crumble gradually. The times of balkanized graphics will be in the past, same way as happened with the Web. And the slogan of "industry does it that way" is irrelevant. Luckily the industry is now changing for the better. Expect further change.
Re:Star Citizen developers intend to drop DirectX support an... by Asooka on Sunday March 19, 2017 @04:37PM (#13909477)
If you're comfortable coding to something as low-level as Vulkan, it shouldn't be hard to use whatever API the PS4 or XBox has. You'll want to customize for the hardware regardless, since it's a bit underpowered compared to PC, so the only difference will be your API functions don't begin with vk_
Re:Star Citizen developers intend to drop DirectX support an... by shmerl on Sunday March 19, 2017 @04:41PM (#13909494)
Comfortable doesn't mean you always have time and resources to do it for N target APIs which are completely incompatible. Game studios clearly benefit from avoiding reinventing the wheel and duplicating their work. That's the whole point of lock-in proponents. They want to tax developers, to make cross platform development more expensive, forcing at least part of them to limit their release targets. That's a dirty anti-competitive tactic.
Re:Star Citizen developers intend to drop DirectX support an... by vetinari on Sunday March 19, 2017 @06:30PM (#13910076)
Even on Android 7, Vulkan is not mandatory (devices must support Level 0, i.e. have a stub lib and return 0 surfaces, they should support Level 1, i.e. normal implementation).

Only OpenGL ES 3.2 is mandatory.

This was probably made for chipset producers; if Vulkan was made mandatory, you would see exactly 0 updated devices.

Re:Star Citizen developers intend to drop DirectX support an... by pjmlp on Sunday March 19, 2017 @06:58PM (#13910258)
Thanks for the clarification, I wanted to mention it as I got the feeling of having read about it somewhere, but I failed to find the right spot in the documentation.
Re:Star Citizen developers intend to drop DirectX support an... by vetinari on Sunday March 19, 2017 @09:01PM (#13910901)
I remembered it wrong too. Not even OpenGL ES 3.2 is mandatory, only if you claim that the device is capable of high-perfomance VR. Otherwise, OpenGL ES 2.0 is fine (but 3.1 lib and stub symbols must be available).

Source: Android 7.1 Compatibility Definition Document

Chapter 7.1.4:

Device implementations MUST support both OpenGL ES 1.0 and 2.0, as embodied and detailed in the Android SDK documentations. Device implementations SHOULD support OpenGL ES 3.0, 3.1, or 3.2 on devices capable of supporting it.

Chapter 3.3.1:

Note that device implementations MUST include libGLESv3.so and in turn, MUST export all the OpenGL ES 3.1 and Android Extension Pack function symbols as defined in the NDK release android-24. Although all the symbols must be present, only the corresponding functions for OpenGL ES versions and extensions actually supported by the device must be fully implemented.

Chapter 3.3.1.1:

Device implementations, if not including support of the Vulkan APIs:

- MUST report 0 VkPhysicalDevices through the vkEnumeratePhysicalDevices call.

- MUST NOT delare any of the Vulkan feature flags PackageManager#FEATURE_VULKAN_HARDWARE_LEVEL and PackageManager#FEATURE_VULKAN_HARDWARE_VERSION .

Chapter 7.9.2:

Android handheld device implementations MUST identify the support of high performance virtual reality for longer user periods through the android.hardware.vr.high_performance feature flag and meet the following requirements.

...

- Device implementations MUST support OpenGL ES 3.2.

- Device implementations MUST support Vulkan Hardware Level 0 and SHOULD support Vulkan Hardware Level 1.

....

Re:Star Citizen developers intend to drop DirectX support an... by shmerl on Monday March 20, 2017 @12:35AM (#13911724)
Support depends on whether the GPU can handle compute shaders. That's a starting point.
Re:Star Citizen developers intend to drop DirectX support an... by pjmlp on Monday March 20, 2017 @03:07AM (#13912322)
No, the starting point is that Google doesn't require a Vulkan capable GPU on Android 7 devices, thus leaving everyone that cares about the size of customer base to keep using OpenGL ES.

If the engine needs two rendering interfaces, the effort is exactly the same as OpenGL ES + whatever else.

Unless you are suggesting game developers should be happy to sell only to LG V20, Samsung S7 and Google Pixel owners.

Re:Star Citizen developers intend to drop DirectX support an... by shmerl on Monday March 20, 2017 @03:11AM (#13912338)
I'm talking about hardware capabilities. Actual support depends on the drivers. And why would Qualcomm, Imagination, Nvidia and etc. not want to provide them, if they can? Google has nothing to do with it (at least not in the sense of developing them).

Turnaround in the mobile hardware space is even faster than on the desktop (let alone stagnating consoles), so Vulkan availability is much less of an issue there.

Re:Star Citizen developers intend to drop DirectX support an... by pjmlp on Monday March 20, 2017 @04:19AM (#13912532)
The OEMs building those handsets get to choose which SOCs are used on those devices.

It doesn't matter if the drivers are available if those GPUs aren't on the motherboard.

Currently Vulkan is constrained to 2.8% of the Android market.

> Turnaround in the mobile hardware space is even faster than on the desktop (let alone stagnating consoles), so Vulkan availability is much less of an issue there.

Only in US, not everyone around the world, specially in countries where pre-pay is the way to go, changes their mobile every two years.

Re:Star Citizen developers intend to drop DirectX support an... by shmerl on Monday March 20, 2017 @04:24AM (#13912549)
> It doesn't matter if the drivers are available if those GPUs aren't on the motherboard.

My point is, this situation will be shorter than on the desktop. Because as I said, the turnaround of mobile hardware is faster.

> ly in US, not everyone around the world, specially in countries where pre-pay is the way to go, changes their mobile every two years.

In US too, not everyone is going to buy every new model. I'm talking however about manufacturers making them. That happens pretty fast. So Vulkan support on new hardware is probably already a given and this whole thing is a non issue. Any new technology has adoption period.

Re:Star Citizen developers intend to drop DirectX support an... by overcast on Sunday March 19, 2017 @06:27PM (#13910055)
Well, we can scratch off one of those, no one cares about Wii U :)