#Difference between ENGINE and APPLICATION in the VkApplicationInfo struct?

42 messages · Page 1 of 1 (latest)

thorny portal
#

What is the difference between these two? The struct has members specifying the engine name/version and the application name/version.

solemn jetty
#

In a real world application, Engine would be the name of the engine used to make the Application

#

Like, you can have multiple games made on the same engine so a driver might need to fix some things on this specific engine instead of fixing each app individually

thorny portal
#

like engine meaning game engine?

#

something like unity?

solemn jetty
#

Yes

thorny portal
#

oh so this is useful if you are creating a game engine intended to be able to be used for multiple games?

solemn jetty
#

Yes, but especially useful for drivers devs

#

Not really useful if you're not a huge company

thorny portal
#

I still don't 100% get how the engine relates to Vulkan, like is there something like a VkEngine that you point to? Could you give me an example of how this could be used?

solemn jetty
#

No it's just a string to put the name of the engine here

thorny portal
#

Ok but how would I be using an engine like Unity if I was developing using Vulkan? Like does it give me something that Unity has?

solemn jetty
#

No, but Unity would put "Unity" in here

#

You can put the name of your own engine

thorny portal
#

Ok I kind of get an intuition now, thanks.

#

Btw how do you know this? I tried searching on the web but no answers

#

like theres lots of info i want to know but sometimes no documentation

solemn jetty
#

I can't find the link I'm looking for

#

In the open source driver Mesa, there is a place where they read these variables, and can add some changes to how the driver works depending on the name

solemn jetty
thorny portal
thorny portal
#

ok....

solemn jetty
#

They apply minor fixes to specific games/engines

thorny portal
#

Alright, to be clear a driver like a graphics driver is something that connects the software to hardware right?

solemn jetty
#

Yeah

thorny portal
#

alright thank you!

limpid dragon
#

Line #916 onward has vulkan application/engine fixes, versus opengl fixes that work off the window title or binary name

#

For example if you report your engine name as starting with "UnrealEngine4." and engine version as 0-23, mesa will take the minImageCount in vkCreateSwapchain as a strict requirement instead of a minimum.

#

Harming performance but preventing applications using that engine from crashing (due to a bug in the engine)

thorny portal
solemn jetty
#

Unreal has a Vulkan graphics backend

#

So they put "Unreal Engine" in the pEngineName variable

#

So when the driver sees this, they can be like "Hey, I know this "Unreal Engine", they have some Vulkan issues here and there" to fix them

thorny portal
#

OHHHHH i think i finally start to get it now

#

is there a reason why unreal doesnt just fix the issue themselves tho?

#

this is just like the driver taking responsibilty for unreal (or any engine's) mistake

limpid dragon
#

Either they have to spend developer time on fixing it, or the application authors (who are sepatate from unreal) have to spend developer time on it. Developer time for commercial game studios is expensive. Fixing bugs someone else can fix for them is seen as a waste of money.