Not following the industry standard is pretty bad.
Basically everyone is behind Vulkan from AMD to NVIDIA, Intel, ARM, Cryengine, Valve, EPIC etc.... except Apple
Mantle's base went into Vulkan API now, it's meant to be successor to OpenGL as an open, cross-platform API. It will be the main competitor to DirectX12. Bright times for Linux users, and exactly what SteamOS needed. Now we only need the hardware guys to stop sucking at Linux support :D
EDIT: It just didn't make sense for ATI to keep making Mantle, since Nvidia refused to support it.
Blizzard already uses Open GL for their Mac versions, of course they'd want in on the Vulkan action. They're even on the Vulkan development group listed as a partner.
https://www.khronos.org/vulkan
>“Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms. Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games.”
Gabe Newell - Valve
It's weird seeing Blizzard and EA listed in Working Group Participants at the end of page.
Edit: I could have sworn that the link was https://www.khronos.org/vulkan. Any way, at the end of that page.
When people do ports to Linux for Ubuntu, they usually go for Ubuntu LTS (Long Term Support) version (latest version obviously). The reason is simple, it's supported the longest by the creators/community. Unless you want to come back every 3rd month to update yourself on the news (I am assuming you are a very busy person and have a life of your own).
That is the question on Ubuntu itself.
This might be too late for the party but you should check out the Vulkan API (to replace the DirectX API for Windows). I lead you to this API because it gives you an ease for support for several Operative Systems. Of course many free Engines support Vulkan API already but it's good to be informed on it personally (in my opinion) which can lead to cool projects/information.
Sources:
The creators - https://www.khronos.org/vulkan/
Valve sponsored Group, LunarG - https://www.lunarg.com/vulkan-sdk/
LunarG VulkanSDK - https://vulkan.lunarg.com/
Sorry for not answering all your bulletpoints/questions, since you used google translator my guess is that English is not your first language. This is totally okey and let me be first of many, Welcome back to the Linux community. Hope you have a wonderful time and deliver entertaining products for us users.
Perhaps not, but a few other companies are also putting their weight behind Vulkan: Apple, Blizzard, EA, Epic, AMD, Unity, Intel, AMD, Nvidia, ARM, Samsung, Sony, Qualcom, Oculus, and a then some.
> unless open gl becomes better
I'd highly recommend keep your eye on Vulkan. Formerly known as GLNext, Vulkan will be replacing both Desktop OpenGL and OpenGL ES this year and will provide many improvements to the OpenGL ecosystem along with adding the low-level stuff that Mantle/Metal/DX12 have promoted. If anything can overthrow DirectX's tyrannical reign, it will be this.
Khronos Vulkan Registry ←includes links to the vulkan spec
> There likely will not ever be one either ... because new hardware usually has Vulkan
You're discounting artificial constraints like, Microsoft only allowing content onto the store if it uses D3D12 for 3D rendering, or only supporting D3D12 on devices like Hololens.
Yes, on desktops, aside from Mac (already covered by MoltenVK), Vulkan is pretty much going to be everywhere, but there are lots of target platforms other than desktops where companies with a vested interest in pushing their own API will have the ability to do so.
This is the driving force behind the Vulkan Portability Initiative. Hopefully as we see more back-ends for the VPI, the Vulkan ecosystem will continue to grow exponentially and become dominant, regardless of the underlying API exposed by a given target platform.
“We are extremely pleased at the industry’s rapid execution on the Vulkan API initiative. Due to Vulkan’s cross platform availability, high performance and healthy open source ecosystem, we expect to see rapid uptake by software developers, far exceeding the adoption of similar APIs which are limited to specific operating systems.”
Gabe Newell
Co-founder and managing director, Valve
Vulkan from the Khronos group:
https://www.khronos.org/vulkan
Looks set to be released quite soon, any plans on implementing this instead of OpenGL for Linux? Or do you see the latest OpenGL releases being up to the task?
I've installed the Vulkan SDK, which is needed by a lot of the demos, and then downloaded and compiled the demos. Some are from Nvidia, which demonstrate how to use Vulkan inside of OpenGL, other show single features of Vulkan, native.
You will find some demo links here: https://www.khronos.org/vulkan/#Vulkan_Drivers
Link to the Vulkan overview page. As you say, lots of Apple products pictured and the apple logo at the bottom with the rest. There is no reason to assume they will not support it.
> inb4 *nix freaks, it's not ready for prime-time, and we all know it.
I sorta disagree. Like /u/duane534 said, web browsing + document/spreadsheet editing is just about the most many users need, and that is beyond solid. There are Linux versions of apps out there to do absolutely anything I've seen someone do on a Windows machine (including writing and running .NET apps, thanks to .NET Core), and they're almost always free to boot. The only thing lacking is gaming, and with SteamOS and Valve's push to get popular titles running on Linux, and now Vulkan's official release, it's very nearly there on that front too. I play the shit out of CS:GO and a couple other FPS, and they're running just fine on my Debian Mint machine.
they said on Blizzcon that theres no Mac support (yet).
Probably something to do with the engine not performing well on OpenGL, you may have some chances if Vulkan ever releases - but youre probably better off buying a real PC. /r/PCMasterRace got some nice (even cheap) Builds listed in their Builds list.
Heard about Mantle or DirectX 12? The goal is similar - low level API for more control over GPU, however Vulkan is not only open source and cross platform (Linux, Windows, Android), but developed by all big players from the industry:
The only reasonable explanation for this everlasting delay between updates is the port to Source 2.
Why it's taking so long is probably because they literally have to rewrite all and any code related to graphics and rendering since they're moving away from D3D. Also, a new physics engine.
The thing with the new engine is an all-new graphics API which is fresh out the oven, and it could very well be that GO would be one of the first games to utilize it. There's an actual powerpoint describing Source 2 and Vulkan.
Gabe, if you're out there, we need a sign. Or two.
> It's already too late
How so? There is the Vulkan API, which should help. Windows, from what I can tell, has done much more to level the playing field compared to Apple.
From my understanding, just like Windows has DirectX, Apple has its proprietary "Metal", which it doubled down on by deprecating OpenGL/OpenCL:
> Deprecation of OpenGL and OpenCL
Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders.
You are on the good path: learning about the basics on algebra, geometry and also introductory knowledge about computer programming. Geometry and trigonometry is very important for a high level programming gig later down the line. That is why I recommend that you learn also trigonometry and by practicing exercises for algebra, trigonometry. You can consider also an introduction in graph theory. Check your local library for books on this subjects and lear by doing. The same goes for programming. Make a simple program that draws lines between two points, then three. There are a lot of tools out there for this:
Microsoft XNA is a good place to start https://www.microsoft.com/en-us/download/details.aspx?id=20914 then go to Vulkan API https://www.khronos.org/vulkan/
Remember this is a long journey, you will encounter difficulties, practice, read a lot, dont be afraid to ask questions, and dont give up.
Minimum requirements: - Windows 7/8/10 64-bit: NVIDIA 600-series+ (365.19+ driver), AMD 7700+ (Crimson 16.5.2.1+ driver) - Linux 64-bit: NVIDIA 600-series+ (364.16+ driver), AMD GCN 1.2 (16.20.3 driver) - 2GB of GPU memory required - may experience crashes with < 2GB of GPU memory.
> Vulkan™ Support(1): Vulkan™ is the successor to OpenGL and a descendant of AMD's Mantle. Vulkan™ is a powerful "low-overhead" graphics API that gives software developers deep control over the performance, efficiency, and capabilities of Radeon™ GPUs and multi-core CPUs. More information on Vulkan™ can be found at https://www.khronos.org/vulkan/.
> (1)Product is conformant with Vulkan 1.0 Specification. Vulkan™ and the Vulkan™ logo are trademarks of the Khronos Group Inc.
Why do you need a temporary Reddit account? Scared to lose Internet Points oO?
Besides Vulkan is the next version of Open GL and such.
https://www.khronos.org/vulkan/ Just take a look they got a ton of Manufactors and Developers that support them, also Valve is with them.
EDIT: You were downvoting me first why are you crying now lol
>Though some sources say that the only thing left for the spec to be released is for the lawyers to give their approval, so the technical side of things might have been finalized already.
The official announcement says:
>We have some good news and some bad news. The year-end target release date for Vulkan will not be met. However, we are in the home stretch and the release of Vulkan 1.0 is imminent!
>Here is a more detailed update...
>The Vulkan specification is complete and undergoing legal review and final polishing. The Vulkan conformance tests are being finalized and multiple member companies are preparing drivers for release. Implementation feedback is the vital final stage of making any Khronos specification ready for primetime, and the Vulkan 1.0 specification will be published when the first conformant implementations are confirmed.
>...
>and so Khronos is taking the time needed to do this right
While we are at it. Status of Vulkan support in Star Citizen?
Seriously, though, they are working on it. CIG was supporting Mantle early on. AMD's Chief Gaming Scientist even credited a CIG dev for pushing the envelope and thinking outside the box (re: dedicating a GPU core for each character's eye).
EDIT: fixed typo, added links and added Gabe Newell quote
> “Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms. Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games.” -- Gabe Newell, Valve
> To create a new graphic library? That wouldn't change anything.
Actually… this might change everything. Don't get me wrong, I love modern OpenGL, but it'll be good to finally move on and get rid of all the legacy crap.
They can be working together on Vulkan implantation that supports ray tracing.
So I'm going to go ahead and call this speculative statement, somewhat true. Though they will both be coming out with their own hardware, regardless of patents inside.
That's your "directx" right there, and hardly unique (there's other equivalent libraries that can do the same) this is just a list of ones that valve directly contributed too or promoted in some way recently. Also popular engines like Unity and Unreal4 have Linux support out of the box.
But even then it doesn't mean you'll magically get a linux version for "free", work still needs to be put in debugging and fixing platform specific issues and making sure the game runs properly, providing costumer support when issues arise, etc.
Not every developer is willing to invest that amount of time and effort when linux is still a tiny portion of the market, it's the old chicken and egg problem.
Mobile has been a big point of Vulkan from the beginning. Even the headline on their website points that out
> Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
https://www.khronos.org/vulkan/
The reason you don't see games for it yet is because it's pretty much brand new and game engines have yet to fully implement it to a production state. Valve is working on it with Source 2, Unreal Engine is working on it, Unity is working on it. It's also incredibly complicated, and even veteran OpenGL developers are struggling with it.. it just needs time for the community to adapt to it and develop.
Only a few games support it so far, and all are still experimental. https://en.wikipedia.org/wiki/List_of_games_with_Vulkan_support
Once the big engines get support, we'll be seeing lots of games built on it.
Yupp, their latest news (18.12.2015) from their website:
>We have some good news and some bad news. The year-end target release date for Vulkan will not be met. However, we are in the home stretch and the release of Vulkan 1.0 is imminent!
>Here is a more detailed update...
>The Vulkan specification is complete and undergoing legal review and final polishing. The Vulkan conformance tests are being finalized and multiple member companies are preparing drivers for release. Implementation feedback is the vital final stage of making any Khronos specification ready for primetime, and the Vulkan 1.0 specification will be published when the first conformant implementations are confirmed.
>Work is also progressing to complete Vulkan SDKs for Windows, Android and Linux. Google has upgraded to Promoter membership and is now on the Khronos Board to help steer Vulkan strategy for Android and the wider industry.
>There is considerable energy driving the work to bring you Vulkan. We are planning Vulkan sessions and demos at key industry events throughout the year. We are excited about the emerging Vulkan ecosystem that will create new business opportunities for the graphics and compute industry.
>Vulkan will set the foundation for graphics and compute APIs for years to come and so Khronos is taking the time needed to do this right – and the Vulkan 1.0 release is near!
So, somewhen first half 2016 seems realistic, unless they left some crucial stuff out there.
Upvote if you want Linux version of Need For Speed. Do not downvote without thinking about Steam Machines and mostly Steam controller http://www.neogaf.com/forum/showthread.php?t=1109900 and Vulkan api https://www.khronos.org/vulkan, which is even supported from Windows XP to Windows 10(Even Win XP) and even DICE is involved in the development of Vulkan api as of course the tweet is of Johan Anderson, from DICE.
Compared to other free projects, Vulkan has an insane amount of industy backing. OpenGL didn't, what made it become to what it is today. Just scoll to the bottom of this page. They seem to have gotten every big fish in the industry on board (excluding Microsoft of course).
~~Now you just need to write vulkan.~~ Just read the thread below.
Now Khronos needs to release Vulkan so you can work on a vulkan Haskell module.
Vulkan is a graphics API, similar to DirectX 12. The key difference is that is an open source standard.
From their website: Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
Vulkan (spelled with a 'k') is a newer graphics API based on OpenGL. Currently, Star Citizen uses DirectX 11, which is not only nearly 10 years old, but limited to Windows. Vulkan is more efficient, allows lower-level access to hardware resources, supports newer technologies, and is platform-independent. It will not only vastly decrease the cost of drawcalls, it's also likely the largest hurdle toward making Star Citizen available on Linux.
Worth noting that times have changed. See https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561
I have been gaming only on Linux (using just wine) for at least the past 5 years. For the past couple of weeks I’ve been playing STALKER, a Windows only game, through steam Linux client. It is apparently only going to get more seamless.
Worth noting that STALKER already worked on vanilla WINE. But Proton (steam fork of WINE) also plays it with no setup necessary on steam for Linux. It’s pretty neat.
Not all games work but Valve is actively working on upstream projects WINE and dxvk. dxvk is a Windows library which translates DirectX to Vulkan API on WINE.
Speaking of Linux ports, I hope more games take advantage of the new Vulkan API that is to replace DirectX. It'll make ports no longer necessary and will be released across all platforms at the same time.
Since it's multi-platform, it most likely has a shared codebase, so it might not be that much effort to port. For example, the dev for uoYabause showed that he works on a PC version then creates an Android version from it once done with testing.
And like you said, I think there's more interest in the Android version since it's unique on that platform. Hopefully the new Vulkan API will help move things along even faster!
Next generation, high performance, cross platform graphics API made in cooperation between lots of companies:
https://www.khronos.org/vulkan/
This is running on Intel HD Haswell card at 60 fps a year ago:
https://www.youtube.com/watch?v=0Hth4u65zfc
Imagine the performance gains in Dota 2 now :)
Yeah there are still issues, I just use Google Docs for my office needs. But if you are set on using MS office, have you tried running it with wine instead of a VM? And yeah it will be a cold day in hell before EA/Ubi/etc bring their big hits of linux sadly. =( I am hoping that https://www.khronos.org/vulkan will bring a lot of the bigger game companies around to linux once its released officially.
Yeah not sure about Abode suite and wine. I have grown accustom to gimp over the last few months. There are great tools for image editing but yeah, not quite as nice or easy to use as the window's ones.
I been messing around with linux for years, server side. But ever since Win 10 was released I have been using Fedora full time on my laptop to the hang of it and still using Win 7 on the desktop for gaming.
Yes. It's slowly becoming a thing. Everyone has had enough of microsoft, especially gamers who are only tied to their OS because of DirectX
I'm with you on this one but here's the thing, Microsoft will never allow DirectX 12 to run on previous versions of Windows.
If someone finds a way to run DirectX 12 on Windows 7/8.1, that would be great! Other than that, you can always use Vulkan API instead which is pretty much the same, only open source.
Seems that Vulkan is actually ground up and based on OpenGL, OpenCL, and SPIR.
https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf
Page 12 and 14
It also will work on any platform that supports OpenGL 4.x
https://www.khronos.org/vulkan
Their website describes it as "previously referred to as the Next Generation OpenGL Initiative"
Here's the official press release for more information:
Mantel is actually not mentioned once in any of the resources from Kronos Group's website. Concepts from Mantel are used in Vulkan, but Vulkan clearly is it's own ground up API based on OpenGL.
I went to check the Vulkan site to see if Apple wasn't under the Vulkan partners as I remembered and came across this ironic image.
Edit: Also the Apple logo does show up under Vulkan's "Working Group Participants"
> especially if what we are hearing about dx12 is true).
DX12 is based on AMD's Mantle. Coincidentally, the new low-level cross-platform graphics API, Vulkan, is also based on Mantle. I'm not sure why you think DX12 would hurt Linux. While Microsoft has industry support, it will end up being stupid to support DX12 and not Vulkan when virtually every platform other than Windows will probably end up supporting Vulkan.
Even Apple (scroll to the bottom, they don't allow hotlinking the image) is on the list of companies supporting Vulkan.
DirectX 12 will allow VRAM stacking in multi-GPU situations. However, due to how video game rendering works a lot of data will be inevitably duplicated anyways. That being said, we don't have anything currently that currently does so, let alone does so in an actual big-budget game, so we don't know what it will actually result in.
There's also the point of Vulkan being on the horizon which is actively aiming to replace DirectX, which (in the name of multiplatform) will be good and will also nullify VRAM stacking as it doesn't support it in any way that we know of.
In short, Qt 3D is not dead. Tuukka even says in a comment on the post that Qt 3D “continues to be a fully supported module.”
As for the blog, it is important to understand that Qt 3D and Qt 3D Studio are quite different things with a very similar name.
Qt 3D is a toolkit that lets you build what ever you want, from simple scenes to complex and custom 3D engines, and it lets you do that in a declarative manner too. It is aimed at software developers.
Qt 3D Studio is a WYSIWYG 3D editor aimed at designers. It is a compositing tool where you import 3D models, images and other assets to create interactive presentations, UIs and applications (source).
The Qt 3D Studio runtime used to use Qt 3D, but as the blog post you linked to explains, The Qt Company were able to make their run time faster by using OpenGL directly. As with all programming, the lower you go through the levels of abstraction, the faster you can make things. That doesn’t mean it is simple to write those things well, or fast. That is why we have high level abstractions like Qt 3D, or Qt 3D Studio.
If you give your self a limited set of functionality of course you can make it run faster by using OpenGL directly.
You can do no harm by learning to use Qt 3D. If you want to get building awesome, complex 3D stuff it would be a great way to get going.
If you want to spend time learning a lower abstraction you can also build awesome, complex 3D stuff, but it’s going to take more time. I suggest you choose Vulkan at this point, not OpenGL.
They can certainly afford to buy a few exclusive or advanced-release titles, but I've got high hopes in Vulkan ruining their stranglehold on modern game development... and not just from an idealistic, anti-MS/goddamnit-when-is-Linux-ever-gonna-be-a-viable-OS standpoint, either. It just plain makes too mich economic sense not to develop your multi-million dollar game on a high-performance API that runs on basically everything, instead of locking yourself into just Windows... or worse yet, just Windows *10*, if you want the equivalent features & performance from the current defacto-standard API. <_<
DirectX 12. It drastically reduces CPU overhead and increases frames (in theory) in 3d graphics/games. Granted, Microsoft COULD include it on 7 they just won't. Also Vulkan does the same thing and is cross platform.
But yeah, if you're not a gamer, don't even bother with windows 10. Even gamers now don't benefit from it until DirectX12 titles become popular. I really REALLY hope that Vulkan gets significant marketshare. (https://www.khronos.org/vulkan/)
So yeah, I gave you a reason but I ended up just mostly praising Vulkan...
In what way does Microsoft "support" Vulkan? They're not one of the 14 companies listed on the Vulkan webpage. They don't ship any Vulkan drivers. You can't run Vulkan programs on your Xbox at all. In fact, third-party developers are claiming that Vulkan will be their competitive advantage against Microsoft. I can't imagine how Microsoft could be any more apathetic about Vulkan.
And Linux is a kernel, not an operating system, so it doesn't "support" Vulkan (or need to). I checked Debian's latest release (8, "Jessie"), and it doesn't have any Vulkan support, so while it may eventually be supported on Linux, it's sure not universal yet.
Finally, no, Apple is not trying to "push their metal as new standard" [sic]. Try reading the article and not just the headline.
I think he is pointing to the fact that the RX 480 currently does better in Vulkan games and DX 12. I believe Battlefield will eventually support the Vulkan API, but I am not sure, perhaps someone else can confirm that.
What he said, but you also need to make sure your GFX card is compatible and install the Vulkan driver I'm pretty sure. Here is the link to the main vulkan page. You can scroll down and click your type of GFX card to download the driver and see if you're compatible or not. Most modern cards are compatible.
Dungeons of Everchange
I got doing this week doing pleasurable things, new things. I tried some new concepts, but mostly I was working on doing random geometry for the walls. Walls are generated from several chunks with variable parameters, different widths, height and depths. At the end planar UV mapping is applied to complete geometry. t was not a big deal to create one box type of the wall, greatest challenge was to make those damn t-junctions, x-junctions, corners to be correctly attached on each other. Still need some work to do, so actual screenshots will be available next week.
Beside geometry I moved all rendering into shaders, did some post-processing effects just for testing, looking neat. I am targeting OpenGL 2.1 so all developing is a bit harder, because of awkward OpenGL that exist before 3.3 version (Did you know that successor of OpenGL is out, graphical API named Vulkan ?).
Still I'm still struggling with lighting engine and light effects, and I need to implement Omnidirectional Shadow Mapping. It isn't so hard to implement, but it's a bit costy to render.
Actors are moving around, walking and dying, but as I said screenshots will be posted next week.
AMD is found in the two major consoles. Their APU's are actually a compelling offer, and are getting better - especially with the Launch of Zen later this year. Both DX12 and Vulcan are lower level API's that change the name of the game. Multi-GPU support is really compelling. Polaris as a platform is very positive - and I have yet to see comparable information from nVidia.
AMD has more or less always been smaller then nVidia and Intel - but have always been, in one way or another, on the bleeding edge of things. So what happens when everything pays off?
Is there value in locking into DX12 with AMD GPUopen and project Vulcan gaining momentum? After all both DX12 and Vulcan are heavily based on Mantel.
And then we can look at developers being incorporated into the decission making process, instead of being given a finished project. They can edit, recompile and adjust to suit their needs - and that is powerful. It means that a tool that works "well enough" can be made to work exactly how the developer needs - no being told how it will work, only how it works be default.
And the above: That is powerful incentive.
So Polaris, Zen, Vulcan, GPUopen? It will definitely gather attention. But the biggest part is: It isn't a black box.
This reminded me of Vulkan. I've not messed with .ini files, but I've heard Vulkan may make low level patches easy. Which you may be interested in, when it comes out.
See https://www.reddit.com/r/vulkan/comments/3snrdv/vulkan_or_opencl/
And they mention it explicitly here: https://www.khronos.org/vulkan/
> Vulkan will set the foundation for graphics and compute APIs for years to come and so Khronos is taking the time needed to do this right – and the Vulkan 1.0 release is near!
You can also take a look at how Mantle approaches it. I'd assume Vulkan will be similar: https://www.amd.com/Documents/Mantle-Programming-Guide-and-API-Reference.pdf
> OpenCL OTOH is specifically designed for compute (and it runs on a wider range of hardware than OpenGL or Vulkan ever will).
I wouldn't worry about that. Vulkan will be supported on all modern hardware. A case of OpenCL and no Vulkan would be really some legacy GPU only.
Don't think they'll delay it that long.
https://www.khronos.org/vulkan
This doesn't sound like they slipped the release by 6 months. Back at SIGGRAPH last year in August they said that they're in a soft freeze and are still looking for a launch later in 2015 "not super early but we should make it".
https://www.khronos.org/vulkan
It's the 'new' OpenGL. Comparable to DirectX 12, but cross-platform (Windows, linux, mobile platforms, you name it). It is based on AMD mantle api.
Valve already has said their upcoming game engine (source2) will support this, and they are also very involved in development.
Legacy games will not support Vulkan, no, unless developers rewrite their games. In a few years this will not be an issue for most people.
The relevance of the study materials depends on what is your final goal in regards to the graphics programming. Judging by the topics in the syllabus on Coursera website, it covers all important topics regarding the OpenGL standard that will form a solid basis should you choose to implement more advanced rendering techniques or a rendering engine in the future. For general game programming this knowledge should be sufficient to render a basic/intermediate game in the WebGL from scratch. I think watching "An Introduction to OpenGL Programming" is also a good idea, if you want to get the full overview faster.
WebGL is a subset of the OpenGL standard based on OpenGL ES 2.0, so it is more restricted in its functionality and some advanced rendering techniques (e.g. tessellation, geometry instancing, a guarantee for floating point or depth texture support, etc.) might not be achievable at this time. It is closer to what the mobile hardware provides than what is possible on a modern desktop.
I think that after you follow this course you won't have a problem to extend your knowledge in regards to the desktop version of OpenGL. The very latest development in graphics rendering on desktop is the access to more granular and low-level API. Khronos's new Vulkan API allows you to reduce the overhead of the OpenGL state-machine and greatly improves performance. It is also a brand new design that will obsolete the current OpenGL standard.
If you are interested in entering the game industry, please have a look at this thread where I've written some more details.
Source 2 will be using Vulkan API which is essentially the next gen OpenGL (a product that will go against DirectX12 and AMD Mantle), he made a funny because Vulcun (esports betting site) and Vulkan.
Vulkan API: https://www.khronos.org/vulkan/
Vulcun: https://www.vulcun.com/
Drivers are alot more simple to make for Vulkan. LunarG's driver was 27k + 8k for the SPIR-V compiler. That's insanely small. There was an ex nvidia engineer who wrote on the gamedev.net forums that every API consists of 1 million lines of code. That is the old API's consist of that.
Nvidia had a WIP driver at GDC where they showed off some of the benefits they'd achieved so far. AMD already has the Mantle driver and they've probably modified it so it'll be ready day 1. As for game support, Unity and Unreal will have support. Dice already have mantle support changing it to Vulkan is going to be easy. At the bottom of this page you can see that alot of big companies are in the workgroup who decide what Vulkan will consist of.
Didn't you follow latest developments? See https://www.khronos.org/vulkan
If you mean other non graphics components (audio and etc.) - I never liked when all of it is lumped into one pile. There can be different libraries for it. SDL is an analog for the rest of DX besides 3D graphics.
Correct, but you must be patient. While Vulkan is essentially Mantle "plus", the statement Valve made was "Steam Machine will ship with Vulkan." So, one can surmise that Vulkan will be "ready," in a sense, November. But, this also means games must take advantage of Vulkan, as well as the GPU drivers. Valve has already shown off their intel driver for Dota 2 running at 4K resolutions during GDC 2015. They were able to do this quickly and efficiently due to access to the driver, api, and game source code (their own game).
Speed of, and choice to use, the Vulkan API use depends on several factors, a large factor being the GPU vendors, and how they will handle implementation, as well as the games themselves. It will not be an "instant on, get + 50 FPS on all games" situation. I do not know if there will be some kind of conversion process for "upgrading", so to speak, games developed on OpenGL. Vulkan will support GPU's compliant with OpenGL ES 3.1 and up.
OpenGL will still be around. There will be the choice of using OpenGL (still supported) for typical graphics work, and Vulkan (for those desiring "to the metal"/ low-level). Source 2 will support Vulkan.
I could go on a bit, but there are folks like directhex, shartkwouter, and more around here and the SteamOS community forums that can better explain a lot of this.
Vulkan will be a game changer.
if you see this image from its website you can see intel, amd, nvidia and more hardware manufacturers are in the wagon, also sony, ea, epic, oculus, valve and more are in the wagon!!! so vulkan will be everywhere and supported by everyone because all everyone wants is the best utilization of their products so the consumer will get better games, so more time spent playing and buying gaming hardware! and not code them twice because M$ wants to lock into its last OS some APIs!
Someone didn't follow what happened at the GDC last week...
As I said, it's only going to get better.
Actually, truth is the Graphics API is only part of the problem. But it's still a huge step, leap in the right direction.
And there's a testimony from Gabe Newell right on its head page:
>“Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms. Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games.” Gabe Newell - Valve
(Source: https://www.khronos.org/vulkan)
As somebody with an interest in computer graphics programming, this looks pretty exciting!
According to https://www.khronos.org/vulkan > Initial specs and implementations expected this year
> Will work on any platform that supports OpenGL ES 3.1 and up
It doesn't say anything about regular OpenGL, but I think it will not screw users from 4.3 upwards. But ES 3.1 is also backwards compatible with previous ES versions.
the Vulkan standard API ( https://www.khronos.org/vulkan/ ) is written in C . That SDK offers several examples and demos and you can write your code in C and/or C++ while using it .
Since all stems from C there are a number of projects in Python offering bindings for Vulkan too, you can easily find any number of tutorials and packages for Python .
>Isn't it using DX 12 ultimate just like Series X?
Direct X only runs on Windows which XBox's OS is based on. PS5 OS runs most probably again on Orbis OS which is a BSD unix, and games will most probably be using Vulkan or directly addressing the hardware through their respective SDK's.
>RT performance = Not as good as Series X
That has to be seen first. The TFlop performance difference is around 10%. Which doesn't say much because DirectX 12 adds API overhead and PS5 might have custom APU instructions doing specific ray tracing functionality which could easly make up for the TFlop difference.
https://www.khronos.org/vulkan/
from what I understand of Vulkan, it is a library from the OpenGL creators that allows for more fine-tuned access to GPU elements than the other APIs. the increased control can result in significant performance gains.
I have been thinking of it as more like assembly language for the GPU.
this is a non-smart-ass answer by an idiot who knows jack about graphics cards. I also hope for someone in the know to provide clearer details.
Steam is supporting more and more games each day thanks to the Vulkan https://www.khronos.org/vulkan/ project , there are some games that already run better on linux than windows
Thanks for the info, I looked into it a little more and saw on Wiki the supported games. However, apparently you can download Vulkan from here https://www.khronos.org/vulkan/ But even then, it would ONLY work on supported games, is that correct?
Sorry, not super pc savvy yet! So if i want to, i can install Vulkan here and it’ll show up as an option to choose under settings in a game that lists DirectX 11/12 or OpenGL & supports it? do i have to uninstall nvidia experience in order for it to work better?
? When will Vulkan 1.2 be released in the NVidia Geforce WHQL drivers ?
442.19 only supports Vulkan 1.1 in the release notes, and Vulkan 1.2 was released January 15th ..
https://www.khronos.org/vulkan/
I guess it takes a while for NVidia to include it, but I am pretty sure I saw Vulkan 1.2 mentioned as being included in NVidia Beta drivers 441.99 ..
https://developer.nvidia.com/vulkan-driver
.. Which we are now passed in the WHQL drivers, currently at v442.19
Sure, but that does not change that even Khronos themselves describe Vulkan as a "new generation graphics and compute API", in addition to that it very much can be used for compute.
Your wish is granted, however they decide to start from scratch with Vulcan and it takes 3 extra years while (unintentionally) merging the beta communities of Star Citizen and PoE. Entropy allows nihilism to trap both in stagnation.
This could be helped with a trademark policy allowing the trademark use only in compliant implementations (having a certification process using a conformance test suite) , it's not a bullet proof solution, but it seems to have worked out fairly well in Microsoft vs Sun . basically iirc microsoft tried to make java run better on windows, but that was against Java policy of having Java run well on all platforms.
They are contributor members of Khronos and not of Vulkan. If you look at Vulkan page on Khronos's website, you won't see Microsoft being a key partner/contributor of Vulkan. And if you've followed Vulkan development, you'd know that Microsoft's contributions is non existant if at all. So no, your statement is false as they have not embraced Vulkan. They have and are continuing to promote DX12 over Vulkan.
>Vulkan is an AMD API
Vulkan is developed by Khronos; the same team that made OpenGL: https://www.khronos.org/vulkan/. Both AMD and NVIDIA have implemented a Vulkan API. AMD's involvement comes from their donation of the project "Mantle" to Khronos, which is the foundation upon which Vulkan is derived.
>Yeah you are gonna have severe issues using that engine on an nVidia card...
iirc, it is using the Unity engine, which is very popular for games that feature Linux support and I have enjoyed many titles without this issue.
>Stick with DirectX and OpenGL
DirectX is not available on all supported platforms. OpenGL is not available at all in Rust to my knowledge. If you know how to force it to run in OpenGL mode, I'd be interested in further details.
For the record, I have played a great number of games which use Vulkan on this hardware without problem, including VR titles (ie. Serious Sam VR) and games using a DirectX to Vulkan compatibility layer (DXVK). I doubt Vulkan or NVIDIA are the problem here. It's probably just a shader bug that Facepunch needs to fix.
Depending on what your goals are, you might be interested in Vulkan and more specifically the portability initiative. They are looking at the shared functionality of Metal, DX12 and Vulkan and creating a subset of the Vulkan specification that can be translated to each of those. There is a library that sits on top of either DX12 or Metal and provides a subset of Vulkan. It works well enough to run things like Dota 2's Vulkan backend on OS X via Metal. I haven't personally tried the DX12 implementation but it is on my roadmap. Certainly looks like there is a lot of potential there.
If you're familiar with OpenGL, Vulkan is essentially OpenGL 5, but it is not backwards compatible and has a different architecture. It is somewhat similar to DirectX 12.
Valve is one of the companies behind it. https://www.khronos.org/vulkan/
Various thoughts from a person who doesn't know much about these things:
I have the impression that there are certain things that OpenCL and CUDA can do that GLSL compute shaders cannot. Like, some way to have a kernel dynamically launch another kernel, or something? And (on NVIDIA hardware) some way to take advantage of special super-fast inter-thread communication within a warp (32 threads running in lockstep) that works like shared memory sort of but is even faster?? And also there are some, like, specific math functions and stuff that are in OpenCL but not in GLSL, I think. Although that only matters for performance if they're directly supported in hardware I suppose. But maybe some of them are.
I've only barely used OpenCL, and I haven't tried CUDA at all, so I'm vague on all that stuff. But I think maybe if you want the very best performance then you need to use the latest version of OpenCL or CUDA, and not a GLSL compute shader running on Vulkan (or a GLSL compute shader running on OpenGL)? (And also, that seems to mean that you're stuck with either OpenCL on AMD or CUDA on NVIDIA, because NVIDIA doesn't seem to support the latest OpenCL, and obviously AMD does not support CUDA.)
That said, one can do lots with GLSL compute shaders in Vulkan. They are fast and good. Just not fastEST maybe? Or I could be wrong. Anyway I'm using them in a project and they are working fine for me.
There's also the question of whether one wants to use mainly floats or mainly doubles. That seems to be something that influences hardware choice more than it influences software platform choice, maybe? Or maybe it's both. I dunno I just use floats, because I'm more on the gaming side than on the scientific simulation side and gamers have GPU hardware that much prefers 32-bit values at present. I kinda wish I could use doubles though.
There may be Vulkan-OpenCL integration someday: https://www.khronos.org/vulkan/faq#khronos-apis-opencl
>on their rumored direct x competitor
It's not rumoured, it's already released and used by Dota 2 and The Talos Principle. It's called Vulkan.
https://www.khronos.org/vulkan/
https://en.wikipedia.org/wiki/Vulkan_(API)
Also, Vulkan is really only equivalent to the D3D component of the DirectX stack, just like OpenGL. Valve uses SDL2 on non-DX platforms (so macOS + Linux) to get the rest of the functionality in the DirectX stack.
Also, what games do you play? I'm running Ubuntu 16.04 since September, haven't booted to Windows 10 since then. Dota 2, CSGO, Trine 1 & 2, the rest of Valve's games and so on run just fine on my system. I have a total of 28 Linux-compatible games on my Steam account.
I ran the in game benchmark with the preset graphics options of High and Very High at 1080p. On average fps numbers went up from dx11 to dx12, a small amount.
In game I first did a quick test run with of the dlc desperate measures, with dx12. It seemed fine, didn't feel any different, nothing gained nothing lost.
However when i tried the actual game things went downhill very quickly. I have the game installed on an SSD, the loading screen used to pass by quickly, with dx12 i got to see a lot more of it, a lot more.
Walking around felt like a slide show. Outdoors, indoors, crap. Quit after 1 minute.
Turned the graphics settings down to either off or low, went back in game, still no good.
Back to dx11, and the dx12 experience has given me a new appreciation for the goodness of dx11, and I'm enjoying it even more now. So that is 1 positive feature dx12 provided.
Looking forward to testing any future updates with dx12.
(but there is always the vulkan api if the development of dx12 doesn't work out)
i3-6100 CPU @ 4.50GHz
8GB DDR4-2666
AMD 7970
It is true, you may not use those features. But as a game designer it would be stupid not to. Why would you not want your game to perform better than it can? It's like having an electric kettle but you still decide to boil water in a pan.
Also I'm not saying AMD is better, it's just been shown in benchmarks that it has higher performance gains when using those features in comparison to nVidia. the 1080 still has more raw power than any AMD card currently released.
Also Vulkan is spelled with a k not a c. https://www.khronos.org/vulkan/
WhyWine? Vulkan is a native grapics API which is supported by the Nvidia, Intel and AMD proprietary Linux drivers today. There is no need for Windows and DirectX anymore. Great times for serious gaming on Linux (and Android). https://www.khronos.org/vulkan/ Btw, I know a lot of people who don't switch to Linux because of gaming and would use Linux if AAA games would perform even as good or beter than on a Windows PC.
Have beta access and Linux, doesn't work sadly. I'll keep trying though as updates come out for wine and overwatch. The Bnet client works fine if not some odd behaviour with menus (click button then move mouse to where menu would appear and it will).
Edit: Wish they'd just convert to Vulkan https://www.khronos.org/vulkan/
About half way down this page: https://www.khronos.org/vulkan/
There's a couple of links, one for Windows/Linux development, and one for Android. You need to create an account to actually download by the looks of it, though as far as I know, it's free.
OpenGL is dead.
Long live Khronos Vulkan.
https://www.khronos.org/vulkan/
You can expect DX12 SC on Windows and Vulkan on Linux.
This means you will need a proper GPU with nice Linux driver support etc.
If your system is more than 3 years old, you may need to share some man tears and reach for a wallet.
And do not go crying to CR about the lack of OpenGL support for older systems.
He said they will support Linux, not OpenGL outright.
The only API that is capable of optimally running SC is Vulkan.
It is probably going to run better than even DirectX 12 on Windows.
No new announcement since December 18th where they said the release was imminent.
People think that it will be announced at GDC in march. However seeing the schedule of khronos meetings and their policies about releases, it can be before.
> As in the ecosystem.
Ah, I see what you mean, like the general OSS community. Yeah, you're right there, I'm for example very excited about Vulkan.
>The Amiga truly paved the ground for the PC as it looks today.
This is what I have problem with. Apple takes phones and makes them better - it's ripping off. Amiga takes PCs, makes them better - it's innovation.
>It's true that MS does a lot of research, but it doesn't become a product until other's have done it first.
In fact who makes it first will most probably do it wrong and someone else will come in and make it better. The thing is even going down dead ends and "failing" helps innovation on the global scale since other companies see that that's not the way to go.
>The only major actor I consider truly innovative is Google, and even Google is beginning to get "dinosauric".
I'd say it already is. I'm working as an android developer and I'm starting to think about a career change cause I just can't deal with Google's shit anymore.
The i7 is up to you.. but honestly, it isn't going to benefit you a whole lot. I was running nearly a 6 year old 2nd gen i5-2500k before upgrading to the 6th gen i7-6700k and the performance increase was completely unnoticeable under typical use. CPU technology has been seeing very slow performance improvements over the last several years. And most software and games out there do not really make full use of all of your cores. Where you would notice a big performance increase is in things like video editing and 3D rendering, where every ounce of performance is milked out of all your cores. For Photoshop and games.. you won't see much of a benefit at all.
I've been gaming and building systems since the mid 90s, and I'm a software developer by profession. I've got a pretty solid handle on what kind of hardware is needed for what kinds of tasks. Will an i7 future-proof you? Maybe a little.. but not much. By the time game and software companies start ramping up their reliance on multi-core CPUs, it's going to be time for another upgrade anyway. Right now (and for the foreseeable future), most typical software tasks can be completed just fine on a single core.. so software companies don't have much incentive to increase the complexity of their software for the sake of negligible performance improvements. Maybe when Vulkan comes out, it might start benefiting games.. but again, it's going to take quite a while for Vulkan adoption to pick up.
If you don't mind spending the extra money.. by all means go with an i7. Just don't do it expecting to see a noticeable improvement.
4 cores are not needed in any currently released game.
They still barely make use of 2 cores.
Higher single-core GHz remains the dominating factor in almost all tasks.
Until Valcun is finalized and games are made using it they won't effectively use 4 cores.
It would only matter today if you are trying to run the server and client on the same machine.
GL drivers have a high per-draw-call overhead, particularly when you're changing state. (That's one of the biggest motivations for Vulkan [https://www.khronos.org/vulkan])
I just heard yesterday from an engineer that's seeing 0.1ms overhead per draw call on some particular hardware; with 4k draws that would limit you to 2.5fps. You're probably seeing 4x that performance or better for typical draws on a typical consumer desktop computer.
(Draw count was something we optimized for like crazy in the game industry in the '00s; I'd heard it was less of a problem in the '10s, but apparently not for us hobbyists - more because high-end game engines are really clever about batching many things up as a single draw than making individual draws faster.)
Creating textures is usually one of the most expensive things you can do in GL; you're uploading data to the GPU (although presumably for the roguelike they're small). Why aren't you keeping a cache of the textures on the GPU (as many as you have different tiles), and just drawing/instancing them as appropriate? (I don't know SDL so don't know what terminology or API you're used to.)
It's a bummer that Apple most likely won't add support for the Vulkan API to OS X since they are using their own low level 3D API on OS X and iOS (Metal). Vulkan will be supported on Windows 10/8.1/8/7/Vista/XP, Linux, Valve's Steam OS, and Google announced it will be added to Android. So if it was on the Mac as well ZOS would be tempted even more to utilize it since the large majority of PC/Mac players would be able to utilize it.
Vulkan is from the Khronos group, the people who maintain the OpenGL specifications. It applies to all cards.
Metal is only for OSX and also applies to all cards.
https://www.khronos.org/vulkan
What you are probably thinking of is Mantle, which only applied to AMD cards.
The 3D Engine is going to go through some major changes in the coming years. Currently, the main dev is waiting for a thing called "vulkan" to come out. Which is apparently the successor to OpenGL. https://www.khronos.org/vulkan
Bingo!
I'm not too familiar with the DX11 hardware, but from what I was able to dig up, the minimum requirement seems to be OpenGL ES 3.1 as stated on Vulkan's official page
I figure a significant proportion of users may use hardware older than those. So you're probably right, Vulkan won't be default since it seems to be aimed at more modern devices.