News for hackers. Stuff that matters.
Re:Vulkan Tutorial by pcwalton on Monday July 18, 2016 @05:47PM (#12118243)
As I suspected, all of the features that I can see described here are in Vulkan. In particular, the first couple of slides pretty much identically resemble Vulkan's "elevator pitch".

The presentation is from 2014, so when they claim "better than DirectX", they're referring to pre-DX12. It certainly doesn't back up your claim that it's "much better" than Vulkan.

Re:Vulkan Tutorial by pjmlp on Tuesday July 19, 2016 @01:39AM (#12119974)
I can only give you what isn't under NDA.

Like another user has commented, the PS4 low level API is like Assembly in terms of hardware control, whereas the higher level, is is similar to Vulkan in API surface, is a bit more like C in terms of control.

Another area where the PS4 APIs are better is infrastructure, meaning graphical debuggers, libraries and OS integration.

Also the amount of production code experience that both Sony and licensed developers have with the whole stack.

So why would Sony throw all this away, just to make some Reddit and HN users happy, that wouldn't anyway make games for the PS4?

Re:Vulkan Tutorial by pcwalton on Tuesday July 19, 2016 @01:01PM (#12122967)
> Like another user has commented, the PS4 low level API is like Assembly in terms of hardware control, whereas the higher level, is is similar to Vulkan in API surface, is a bit more like C in terms of control.

And as I've argued here, that isn't a plus. I don't believe that game developers are producing better GPU assembly than an optimizing backend can.

> Another area where the PS4 APIs are better is infrastructure, meaning graphical debuggers, libraries and OS integration.

That isn't part of the API. That's part of the tooling.

> Also the amount of production code experience that both Sony and licensed developers have with the whole stack.

That isn't part of the API either.

> So why would Sony throw all this away, just to make some Reddit and HN users happy, that wouldn't anyway make games for the PS4?

Er, nobody is talking about "throwing all of this away". I'm simply questioning your claim that Vulkan is worse than what Sony created for the PS4.

Re:Vulkan Tutorial by sangnoir on Tuesday July 19, 2016 @07:11AM (#12121034)
> So why would Sony throw all this away, just to make some Reddit and HN users happy, that wouldn't anyway make games for the PS4?

They won't have to discard their API - they can support Vulkan and their current API and make everyone happy. In this case 'everyone' includes people who would like to port their Vulkan games to PSNext as well as Vulkan-based graphics/game engines.

Re:Vulkan Tutorial by pandaman on Monday July 18, 2016 @09:44PM (#12119030)
What is the SRT equivalent in Vulkan if you don't mind me asking? What about DispatchDraw?
Re:Vulkan Tutorial by Overv on Tuesday July 19, 2016 @07:48AM (#12121152)
Descriptor layouts are the equivalent of SRT in Vulkan. It is unclear to me what exactly DispatchDraw is for, because back-face and offscreen culling are standard features of any graphics pipeline.
Re:Vulkan Tutorial by pandaman on Tuesday July 19, 2016 @10:24AM (#12121942)
>Descriptor layouts are the equivalent of SRT in Vulkan.

I am not sure how. I do not use Vulkan, I use GNM. I asked this because implementing SRT does not seem possible in a platform independent API. So I checked the docs again and the descriptor layout is the same thing I remember - a set of bindings you manage through a bunch of API calls. On the other hand SRT is a plain c-structure. You pass a pointer to structure to a shader as a parameter. Exactly as same as you pass a structure to a function in C/C++. You don't need APIs to create sturctures, you can store them in a file, you can write them from another shader etc. etc.

> It is unclear to me what exactly DispatchDraw is for, because back-face and offscreen culling are standard features of any graphics pipeline.

It's pretty clear what is it for if you actually wrote real-time graphics. JFYI - it's "index shader" essentially. Having control over indices you can implement much faster culling.

Re:Vulkan Tutorial by pcwalton on Tuesday July 19, 2016 @01:26PM (#12123205)
> It's pretty clear what is it for if you actually wrote real-time graphics. JFYI - it's "index shader" essentially. Having control over indices you can implement much faster culling.

This sounds like indirect draw, which has been standard for years and is supported by Vulkan.

Re:Vulkan Tutorial by pandaman on Tuesday July 19, 2016 @01:52PM (#12123438)
Indirect draw is a draw, which instead of direct arguments (number of indices, number of instances, offsets) takes an address of a structure with these parameters. It does not create indices. You could use it for culling but only on the level of a whole draw. DispatchDraw generates indices in a shader and can do a triangle level culling among other things.
Re:Vulkan Tutorial by pcwalton on Tuesday July 19, 2016 @07:47PM (#12125806)
> It does not create indices

You combine it with a Compute Shader to create the indices. Indirect draw is how you make those indices available to the drawing functionality.

Re:Vulkan Tutorial by pandaman on Tuesday July 19, 2016 @08:53PM (#12126113)
Sure, it's possible, but it would be much slower(just for going off chip, not taking synchronization into account) than just letting all triangles through so it has no practical application. Again, even if this had been practical, it does not make DD same as ID. You can draw anything with OpenGl 1.0 but it does not make it the same API as Vulcan, does it?