Jump to content
linuxmaster9

A brief look at Vulkan.

Recommended Posts

The content of this brief is by Jason Ekstrand who is a i965 Mesa driver dev for Intel.

 

All information is available on Khronos website: https://www.khronos.org/vulkan/

 

 

 

Who is Jason Ekstrand?

 

  • Linux user since around 2000
  • Started playing with 3-D graphics/modeling with Blender in 2004
  • First started experimenting with OpenGL around 2007
  • Got involved in the Wayland project in December 2012
  • Hired by Intel in June of 2014 to work on the i965 driver in Mesa
    • Best known for NIR, the new optimizing middle-layer in Intel's shader compiler

 

Jason will try to answer 3 questions:

 

  • What is the Vulkan API?
  • Why do we need it?
  • What will we (open-source community) do once it gets here?

 

What is the Vulkan API?

 

Vulkan is a new 3-D rendering and compute api from Khronos, the same cross-industry group that maintains OpenGL.

  • Redesigned from the ground-up; It is NOT OpenGL++
  • Designed for modern GPUs and software
  • Will run on currently shipping hardware

 

Why do we need a new 3-D API?

 

  • OpenGL 1.0 was released by SGI in January of 1992
  • It was based on the proprietary IRIS GL API
  • Brian Paul released MESA in August of 1993
  • Computers have advanced a lot in 24 years:
    • GPUs are more powerful and flexible
    • Memory has gotten cheaper
    • Multi-core CPUs are common
  • OpenGL has done amazingly well over the last 24 years!

Not everything in OpenGL has stood the test of time:

  • The OpenGL is API is a state of machine
  • OpenGL state is tied to a single on-screen context
  • OpenGL hides everything the GPU is doing

This all made sense in 1992!

 

Vulkan takes a different approach:

  • Vulkan is an object-based API with no global state
    • All state concepts are localized to a command buffer
  • WSI is an extension of Vulkan, not the other way around.
  • Vulkan is far more explicit about what the GPU is doing
    • Texture formats, memory management, and syncing are client-controlled
    • Enough is hidden to maintain cross-platform compatiblity
  • Vulkan drivers do no error checking!

 

Why should you care about Vulkan?

Because it is Cool!! (JK)

 

Because the industry is finally starting to care about open-source:

  • Many of the tools will be open-source:
    • glslang (a GLSL -> SPIR-V compiler) already lives on github
    • loaders, validation layers and API tracers will be released with the spec
  • An open-source conformance suite!
  • Open-Source drivers:
    • There will be an open-source driver for Intel hardware
    • AMD plans to open-source their Vulkan driver eventually [XDC, 2015]
    • We (the community) can write more!

 

It provides opportunities for open-source

  • It's a great API to target for apps and drivers
  • Easier to integrate into toolkits
    • No more thread-local context to manage
    • Sane object model with better multithreading
  • Easier to package and distribute
  • May bring more apps to open platforms
    • Most games are written for DirectX and only later ported to OpenGL
    • If developers target Vulkan Directly, Linux isnt a hard jump

It brings challenges for open-source

  • How do we mix OpenGL and Vulkan?
    • OpenGL will be around for a while
    • OpenGL and Vulkan will have to live in the same toolkit
  • Developers need to learn about Vulkan
  • Infrastructure needs to be built

It provides opportunities for education

  • Vulkan has a sharper learning curve than OpenGL
  • Vulkan's object model matches hardware better

 

What happens next?

 

  • The spec and initial drivers get released
  • Distros package the loader and drivers
  • Toolkits grow Vulkan support
  • Apps and middleware libraries get written
  • More free-software drivers get written

 

The good news: Work has already begun!

 

 

Khronos Group will be presenting the Vulkan API SDK on February 18th 2016 via Webinar. The Webinar will last approx. 1 hr.

https://www.khronos.org/news/events/vulkan-webinar

 

Share this post


Link to post
Share on other sites

I get why coders like open source (Yay, I can tweak!) but my experience at the user level is that it fractures the larger community in to smaller factions.  In the end, is the result something better or just a mixed bag of mediocre variety?

Share this post


Link to post
Share on other sites

I get why coders like open source (Yay, I can tweak!) but my experience at the user level is that it fractures the larger community in to smaller factions.  In the end, is the result something better or just a mixed bag of mediocre variety?

That is not what I have experienced. I use Linux on a daily basis. Heck, Im typing this on my Lenovo running Ubuntu Gnome. The major camps in OpenSource dont necessarily fragment. Sure, someone might fork a project but that is so they can take it in a different direction for a bit. 9 times out of 10, the new code ends up being folded back into the original project if it is good enough. Forking is good for innovation. Vulkan is Open-Source but, is not so Open-source that it would be broken into tiny pieces. Vulkan is industry standard certified. Meaning, it wont change that much as it is an industry standard API.

 

 

in the case of Linux, there are several major camps that each are geared towards certain user experiences.

 

  • Gentoo/Slack
  • Redhat/Fedora/CentOS
  • Debian/Ubuntu
  • Arch

 

Debian/Ubuntu is for ease of use in general and newbs

Gentoo/slack is for people who build their own OS from the kernel up

RedHat/Fedora/CentOS are for people who are developers in general or run Servers

Arch is for those who like to live dangerously as Arch repos are considered "Bleeding edge"

 

All of these groups work together towards the goal of improving the Linux kernel and the associated software stacks.

Share this post


Link to post
Share on other sites

How is this 'Arma 3 - General'?

Vulkan is an alternative to DX12. BI has been considering DX12. There is a discussion about DX12 vs Vulkan. Hence, this post about Vulkan applies.

  • Like 2

Share this post


Link to post
Share on other sites

Vulkan is an alternative to DX12. BI has been considering DX12. There is a discussion about DX12 vs Vulkan. Hence, this post about Vulkan applies.

I hate to disagree, this thread will be moved to the offtopic section.

  • Like 1

Share this post


Link to post
Share on other sites

First time I was looking at this thread I was like cool, a review of the Star Trek planet, and now I'm like... :16_6_8:

 

 

 

But I'd rather see Frostbite 3 get introduced into ArmA 3 than DX12. ;)

Share this post


Link to post
Share on other sites

 

But I'd rather see Frostbite 3 get introduced into ArmA 3 than DX12.

 

There's like zero chance for that considering FB is owned by EA and they don't license it out to other devs and I'm pretty sure BI wouldn't want to completely rewrite their code just to work on a foreign engine. Besides, why would you want to downgrade to that engine? What does it do better than Real Virtuality? More flashy graphics and scripted destruction? Can it do massive terrains, complex AI and detailed simulation models? Perhaps so, but there sure aren't any games out there demonstrating it. EA doesn't even allow modding of their titles so you'd be relegated to a super limited experience which is the opposite to what ArmA represents. A much more logical alternative to RV engine would be Outerra engine but realistically speaking, it's Enfusion.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×