Jump to content

Modern OpenGL vs Mantle? (from NVIDIA's talk at Steam Dev Days)

I don't see Mantle & OpenGL as competing APIs, AMD cleverly avoids comparing Mantle to OpenGL & only focuses on D3D, primarily because D3D commands the most established games library but perhaps because Mantle is actually supposed to be the next OpenGL.

I can really see the next major iteration of OpenGL being entirely or partly based on Mantle.

You have to remember that AMD is a member of the Khronos group, I can't imagine why AMD would go through all the trouble of making an entirely new API if they could simply achieve the same results with OpenGL extensions, I don't buy it because it doesn't make sense.

 

 

http://www.dsogaming.com/news/john-carmack-nvidias-opengl-extensions-rival-mantle-8gb-on-consoles-not-a-significant-change/

 

Also AMD has basically said they could care less which API wins. They said they if Mantle fails, it hopefully inspires "something like Mantle".

 

Mantle was made to fix low FPU on the AMD CPU's. It was cheaper then R & D and they simply can't keep up with Intel. When AMD cpu's are used better by games they aren't WAY behind an I5 (let alone an I7). That is all AMD cares about.

 

All mantle is, is basically DirectX with extensions at this point. It is like the Direct X running on an Xbox. The API running on PS4 is like an OpenGL mantle. Both consoles have GCN AMD 7000 series GPU's.

CPU:24/7-4770k @ 4.5ghz/4.0 cache @ 1.22V override, 1.776 VCCIN. MB: Z87-G41 PC Mate. Cooling: Hyper 212 evo push/pull. Ram: Gskill Ares 1600 CL9 @ 2133 1.56v 10-12-10-31-T1 150 TRFC. Case: HAF 912 stock fans (no LED crap). HD: Seagate Barracuda 1 TB. Display: Dell S2340M IPS. GPU: Sapphire Tri-x R9 290. PSU:CX600M OS: Win 7 64 bit/Mac OS X Mavericks, dual boot Hackintosh.

Link to comment
Share on other sites

Link to post
Share on other sites

I couldn't care what horse we ride in on but the draw call issue needs to be resolved without compromise in graphics fidelity or platform. Mantle is kind of cool, and shines a bright light on the future - but its far from there, and something else could easily take its place and honestly I hope it does so that we can see it on both Nvidia and AMD cards instead of just AMD cards

Link to comment
Share on other sites

Link to post
Share on other sites

The only issue here is that these efficient OpenGL extensions would still have to go through the garbage code remnants of piles upon piles of legacy OpenGL code.

It's like putting beautiful cake dressing on dog food. It looks better but it's still crap underneath.

Have you even once seen the code of a OpenGL driver? What makes you think an extension needs to go through other legacy code? The extension is written by the hardware manufacturer, they can use DMA.

For the industry to go forward we need a new API from the ground-up, one that contains absolutely no unnecessary or otherwise pointless legacy code.

Mantle is just that, it's no longer a question of whether we need or in fact can have a very efficient very advanced and very performant API, because the answer is yes to all three.

You sound like you've seen internal Mantle API specifications. How else would you know all that? Do you have a link to the API specs?

By the way, Mantle contains legacy code. It uses the same shader language as DirectX! O_O

Also the Mantle driver has to use the 14 years old Windows API! :)

The actual question now is how to transform Mantle into an industry standard, this is obviously AMD's goal and Nvidia is resisting it.

I can't see a future where Nvidia welcomes their competitor's API with open arms, such a future does not exist.

What I see however is a future where an equivalently promising API, perhaps a direct or indirect derivative of Mantle is developed to become the next OpenGL.

In which case Nvidia and other GPU vendors for that matter have no choice but to support it because it is an industry standard.

The first thing they should do is publish some API documentation, libraries, example code, anything that helps Mantle to get some market share. They have Nvidia and Microsoft against them so they need as much support from game developers as possible. Yet they just don't publish anything usable. Don't call it "open" when it's not open yet. We just have to believe the hype.

I'm not against Mantle per se but I find it difficult to believe all that PR and marketing stuff without actual code and API specs to look at. Please AMD, do something!

Link to comment
Share on other sites

Link to post
Share on other sites

I couldn't care what horse we ride in on but the draw call issue needs to be resolved without compromise in graphics fidelity or platform. Mantle is kind of cool, and shines a bright light on the future - but its far from there, and something else could easily take its place and honestly I hope it does so that we can see it on both Nvidia and AMD cards instead of just AMD cards

 

^ Yup. And the beauty of it? AMD won't care. All they wanted was better optimization for their CPU. If they get it on another API? That is a victory for them. 

 

OpenGL is the future. It is faster then DirectX before extensions. Carmack says extensions on OpenGL will do the same thing as Mantle. Native OpenGL ports will grow computer gaming like crazy due to Steam OS. Many people just want a gaming machine with a simple console like OS and Windows adds 100 dollars every few years to that price with DirectX. 

CPU:24/7-4770k @ 4.5ghz/4.0 cache @ 1.22V override, 1.776 VCCIN. MB: Z87-G41 PC Mate. Cooling: Hyper 212 evo push/pull. Ram: Gskill Ares 1600 CL9 @ 2133 1.56v 10-12-10-31-T1 150 TRFC. Case: HAF 912 stock fans (no LED crap). HD: Seagate Barracuda 1 TB. Display: Dell S2340M IPS. GPU: Sapphire Tri-x R9 290. PSU:CX600M OS: Win 7 64 bit/Mac OS X Mavericks, dual boot Hackintosh.

Link to comment
Share on other sites

Link to post
Share on other sites

I heard OpenGL was more difficult to develop on than Direct3D, although faster. GabeN agrees OpenGL is superior.

Mobo: Z97 MSI Gaming 7 / CPU: i5-4690k@4.5GHz 1.23v / GPU: EVGA GTX 1070 / RAM: 8GB DDR3 1600MHz@CL9 1.5v / PSU: Corsair CX500M / Case: NZXT 410 / Monitor: 1080p IPS Acer R240HY bidx

Link to comment
Share on other sites

Link to post
Share on other sites

http://www.dsogaming.com/news/john-carmack-nvidias-opengl-extensions-rival-mantle-8gb-on-consoles-not-a-significant-change/

 

Also AMD has basically said they could care less which API wins. They said they if Mantle fails, it hopefully inspires "something like Mantle".

 

Mantle was made to fix low FPU on the AMD CPU's. It was cheaper then R & D and they simply can't keep up with Intel. When AMD cpu's are used better by games they aren't WAY behind an I5 (let alone an I7). That is all AMD cares about.

 

All mantle is, is basically DirectX with extensions at this point. It is like the Direct X running on an Xbox. The API running on PS4 is like an OpenGL mantle. Both consoles have GCN AMD 7000 series GPU's.

AMD intentds to drive floating point performance with HSA not Mantle.

AFDS_Kaveri_APU.jpg

http://linustechtips.com/main/topic/48571-intel-amd-architectural-discussion-how-far-ahead-is-intel/

Link to comment
Share on other sites

Link to post
Share on other sites

The first thing they should do is publish some API documentation, libraries, example code, anything that helps Mantle to get some market share. They have Nvidia and Microsoft against them so they need as much support from game developers as possible. Yet they just don't publish anything usable. Don't call it "open" when it's not open yet. We just have to believe the hype.

I'm not against Mantle per se but I find it difficult to believe all that PR and marketing stuff without actual code and API specs to look at. Please AMD, do something!

Mantle is indeed open or at least will be sometime this year.

 

Mantle, or something like it

AMD told TechRadar that it'd be willing to make Mantle, or an API based on it, available across the industry. Even, the company said, if it means Mantle is adopted by competitors like Nvidia.

"Mantle for now is straight up in a closed ecosystem, a closed beta, which you have to do in a complicated project like this to get it off the ground. It's us and a few key game developers," Robert Hallock, technical communications, AMD Graphics & Gaming, told us in a recent interview.

"After that phase is done, we do hope that Mantle becomes an industry standard. We'll be releasing a public SDK later this year, and hope that others adopt it. If they don't adopt it itself, then we hope they adopt APIs similar to it that become an industry standard for PC gaming."

http://www.techradar.com/news/computing/pc/amd-on-mantle-we-want-our-gaming-api-to-become-the-industry-standard-1218560

Link to comment
Share on other sites

Link to post
Share on other sites

Have you even once seen the code of a OpenGL driver? What makes you think an extension needs to go through other legacy code? The extension is written by the hardware manufacturer, they can use DMA.

Again, DMA isn't vendor agnostic we're back where we started.

 

You sound like you've seen internal Mantle API specifications. How else would you know all that? Do you have a link to the API specs?

By the way, Mantle contains legacy code. It uses the same shader language as DirectX! O_O

Also the Mantle driver has to use the 14 years old Windows API! :)

 

It's all public.

Link to comment
Share on other sites

Link to post
Share on other sites

I heard OpenGL was more difficult to develop on than Direct3D, although faster. GabeN agrees OpenGL is superior.

 

See "Microsoft Astroturfing".

 

People got used to DirectX because from 2005-2007 game dev companies were told only older versions of OpenGL would work with Windows Vista, which would leave OpenGL crippled. Many devs jumped the OpenGL ship on game development due to that, and many newer programmers learned DirectX in that timeframe. Xbox also played a part, and articles say that Xbox loses around 2 billion a year and that the Xbox division has never made money for MS. It is just advertising for DirectX (and was money well spent).

 

It is just a devs being used to/familiar with something. The older programmers like Carmack hated DirectX, because all those old games were OpenGL. If it wasn't for deceptive marketing/Xbox, DirectX may have never taken over, and it hasn't been the go to API for all that long. Starting in maybe 2005 with the fear campaign until now. Add to that OpenGL has never went away. It is used on Mac ports, PS4 ports, Nintendo ports and mobile.

 

Of course you are going to have a few people that don't want to learn something they don't know well, and you will also probably have Win 8 DirectX exclusives to try to hinder adoption of OpenGL.

 

http://www.ign.com/articles/2013/12/13/microsoft-bringing-a-beloved-franchise-to-windows-8

 

Windows did the same thing with Vista only games to get people to upgrade from Win XP.

CPU:24/7-4770k @ 4.5ghz/4.0 cache @ 1.22V override, 1.776 VCCIN. MB: Z87-G41 PC Mate. Cooling: Hyper 212 evo push/pull. Ram: Gskill Ares 1600 CL9 @ 2133 1.56v 10-12-10-31-T1 150 TRFC. Case: HAF 912 stock fans (no LED crap). HD: Seagate Barracuda 1 TB. Display: Dell S2340M IPS. GPU: Sapphire Tri-x R9 290. PSU:CX600M OS: Win 7 64 bit/Mac OS X Mavericks, dual boot Hackintosh.

Link to comment
Share on other sites

Link to post
Share on other sites

On the Battle of APIs, it doesn't really matter if an UPDATED OpenGL is the new standard, or Mantle instead. But you are missing the point on what AMD is trying to achieve, and that's complete heterogeneous compute. With uMA, HSA, HSAiL, they still need Mantle to be all what they can be. With a New API, made by the same guys who brought HSA to the table, devs are getting full support into it.

The new way AMD wants the software to be coded, requires the ability to assign workloads properly, now much more directly to the GPU, with several compute cores, both GPU and CPU, a very simple way to do this is with Mantle.

If we want proper optimization we need to assign workloads to the correct hardware, and let it communicate and work together. This seams quite a feat without Mantle.

Link to comment
Share on other sites

Link to post
Share on other sites

I re-read my last post and I think it sounded quite aggressive. I'm sorry for that. I've read so often that Mantle will be this and Mantle will be that without the people actually knowing what they are talking about.

 

Again, DMA isn't vendor agnostic we're back where we started.

I never said DMA was the way for games to interact with the GPU. I said the extension (which is part of the driver) uses DMA. I also didn't say DMA is vendor agnostic.

You wrote: "The only issue here is that these efficient OpenGL extensions would still have to go through the garbage code remnants of piles upon piles of legacy OpenGL code."

I responded: "[...] What makes you think an extension needs to go through other legacy code? The extension is written by the hardware manufacturer, they can use DMA."

Maybe we are talking about different things?

 

[video goes here]

It's all public.

Thanks for that video. I haven't seen this one. (Can't watch right now though.)

But this is still not what a programmer needs to write code. I need an actual document that lists every entry point, every structure and callback function and describes in detail how to use them.

Do you know of something like this for Mantle?

Also example code would be very valuable. As far as I know nothing like that has surfaced yet.

Link to comment
Share on other sites

Link to post
Share on other sites

The first major thing i noticed from what Nvidia said was, "No need for mantle just do a shit ton of extra work to make OpenGL work "

 

Exactly what they said:

Let's try to minimize the state changes as much as possible. The factory doesn't need to be reconfigured completely for each part that you produce. Many similar parts have almost the same production steps:

  • Use Sparse Bindless Textures to eliminate texture changes between draw calls (Place all your needed materials close to the machine that needs them instead of in a warehouse. Prepare everything you need before starting production.)
  • Pack many objects in an UBO, use persistent mappings, use ARB_shader_storage_buffer_object (Don't feed the machine parts individually. Give it a pile of stuff to work on.)
  • Use ARB_multi_draw_indirect to pack multiple draw calls together (Don't produce one thing and then have a meeting with all your machine operators to tell them what to do next. Plan ahead what the next N products will be and give a detailed list to all of the operators.)"

 

 

 

so instead of looking at mantle as a great and easy way to get a lot more performance they say screw around with the code until it works better.. 

 

Lets just get a new API thats already better instead of adding a shit ton of optimization to a old one, you can put that time if you wish to optimize mantle for your game instead..

Proud Member of the Glorious PC Master Race

Link to comment
Share on other sites

Link to post
Share on other sites

OpenGL has its own issues, but it has a more promising future than Direct3D.

When Direct3D first came out, I wasn't exactly impressed and the same happened with DX11. I'd rather it get dropped than supported because of an OpenGL swap, even if Mantle seems better right this second.

That being said, you have a strong point about OpenGL and it being "vendor-independant, extensible, well tested and optimized and works on most platforms NOW". I'd like to go so far as to say that devs aren't reliable enough to really use it well, however. Really pisses me off when they fail to optimize correctly, quickly, or sometimes at all even. Keeping it out of their hands is better in my opinion.

Link to comment
Share on other sites

Link to post
Share on other sites

The first major thing i noticed from what Nvidia said was, "No need for mantle just do a shit ton of extra work to make OpenGL work "

Mantle is a shit ton of extra work to bring down CPU usage. They are scrapping almost everything they had and built something new.

Compare that to the few extensions it needs for OpenGL to improve the situation.

Also the stuff they mentioned in the video are all replacements for code that already is in your game. You replace the code that was slow with new code that is fast.

 

Exactly what they said:

 [forum removed the quote here]

so instead of looking at mantle as a great and easy way to get a lot more performance they say screw around with the code until it works better..

Screwing around with code until it works better is exactly what programmers do all day.

Also, it's not just NVIDIA that writes these extensions:

Sparse Textures (contributed by AMD, NVIDIA)

Bindless Textures (contributed by AMD)

UBOs (contributed by APPLE, NVIDIA)

Shader Storage Buffer Object (contributed by NVIDIA, AMD)

Persistent Mapping (contributed by NVIDIA)

Multi Draw Indirect (contributed by AMD)

(not all of them required, as they said in the video)

They are working together to get something they all can support in their current and next gen hardware.

Strangely this works for OpenGL but not for Mantle.

 

Lets just get a new API thats already better instead of adding a shit ton of optimization to a old one, you can put that time if you wish to optimize mantle for your game instead..

You first have to invest time to port your game to Mantle and as Gordon Selley from AMD said in his Steam Dev Days talk: (@39:23)

"Mantle is not necessarily for everybody. [...]

All the safety that takes place in current drivers for GL and Windows is pretty much stripped away [...]

It's not for everybody. It's fairly dangerous."

Link to comment
Share on other sites

Link to post
Share on other sites

With all this talk about new API's (regardless of what side/preference you're on)

 

I laugh at how microsoft probably has nothing substantial in the works. "We've lost our way...but we're back." lollllllllllll

 

and of course Jason Holtman recently leaving MS only after six months

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×