Laminar Research Aiming to Release Vulkan Beta in Less than Two Weeks
A sizeable update on the progress of Vulkan has been posted to Laminar Research's development blog.
Starting with the coronavirus pandemic, Laminar Research assured users none of the staff had been affected, and that its staff from "at least six countries" are taking the necessary precautions to protect themselves and others.
"Being sequestered at home has not affected our internal pace of development because our entire team is distributed and works at home; we have no office to close, wrote Ben Supnik, lead developer for X-Plane.
"This work-at-home pattern started almost twenty years ago when Austin had people like me working on part-time contracts to modify specific parts of the sim – it never made sense to relocate people to South Carolina and open up an office. Being remote also lets us hire people anywhere in the world who have the unique blend of skills we’re looking for.
"At this point we haven’t seen any operational issues either; mostly running our business requires that our devs have internet and electricity and that the data centers we use for our cloud servers remain open and operational."
Supnik believes they are very fortunate the crisis is not having an impact on development and said they have several things they are working on at present.
The remainder of the post was dedicated to Vulkan, in which the latest developer preview is hoped to be the last before a public beta.
"We acknowledge we’re reaching public beta much later than we had hoped/wished/anticipated, but we are now aiming for a public Vulkan beta by the end of March," continued Supnik.
"If you are already rolling your eyes at a public beta date that is less than two weeks away, I don’t blame you; having been this late, it’s on us to post the beta to show progress. With that in mind, I am going to describe what we’ve been doing for the last three months and why it has taken so long to get here.
"The Vulkan public beta is several months later than we had anticipated because of “scope growth” – that’s manager nerd speak for “we added more stuff to it than we originally planned.” Scope growth (adding more features/code/tricks than you originally planned) is one of the big ways that projects miss original deadlines, so the big question is: what did you add and why did you add it?"
Supnik said better handling of plugin drawing was one such reason, where a rewritten plugin compatibility layer provides support for non-Vulkan plugins such as weather addons, because of bugs experienced in early developer previews.
"Plugin drawing was definitely a case where we learned how to do a better job from the first version of the feature (plugin compatibility that went into the first private beta); if we had received that second-generation design via time machine we probably could have shipped faster. Adding weather support was pure feature creep–a new thing we didn’t plan on, but something that we thought was worth extra schedule time."
Texture paging is something the team have worked on for a few months, which also required rewrites to ensure a pain-free experience.
Texture paging involves reducing texture size based on the amount of available GPU memory, whereas textures must be fully cached and loaded in current versions of X-Plane which introduces unwanted stutters.
"Our first generation texture paging around the first private developer preview was very simple: most stuff lived in VRAM, with a little bit of code to move unused stuff out of VRAM. It was a minimalist strategy that let us develop the rest of the sim and worked great on high-end cards. It was clear from day one that it wouldn’t be good enough for public beta.
"Our second generation strategy added automatic movement of texture res up and down with VRAM pressure and code to page out textures that weren’t being used. This shipped about half way through the private beta, and was better, but suffered from one fatal flaw: as you turn your head, the stuff behind you isn’t being used. Under heavy memory pressure users would constantly turn their head and see blurry textures that would then “res up”. The results were distracting and unacceptable quality-wise.
"We now have finished our third generation strategy: besides automatic texture res control based on VRAM pressure, we now set the relative resolution of non-orthophoto textures by distance to the aircraft. A background task on another core “crawls” the scenery near your aircraft and reevaluates the texture res of nearby scenery constantly, effectively transferring VRAM to where it is needed most. This process is completely transparent; authors do not need to modify scenery in any way for it to work, and since it runs on another core (as does the paging), it does not affect framerate."
In the following screenshot which shows the texture paging at work, green objects represent fully-loaded textures, with yellow and then magenta representing lower texture resolutions.
"Why is there so much green (full res) near the magenta autogen? Texture reuse. If a texture is used near the user and far from the user, it gets high res because it might be seen up-close.
"In this next picture, I [artificially] lowered my machine from 4 to 1 GB of VRAM using a developer tool. Now you can see [magenta] autogen close to the airport, yellow even closer, and some really dark green (the next level down) where we had magenta. In other words, everything got a little bit lower res because we were tight on VRAM, but again nearby [scenery] is prioritized.
"It looks like this third strategy is a keeper – it combines the careful management of VRAM to use it where it is most needed with a stable heuristic that isn’t constantly changing, which avoids chaos and unreliable behavior.
"So at this point we are just fixing bugs. This is a big step forward for the private beta because past betas were dominated by coding new things, which in turn creates new bugs. At this point we just have to kill bugs off to the point where the build is high enough quality for a public beta."
No precise build number or release date was offered, but Supnik added they are in the final stages of locking down a build.
In closing, he added: "A flight simulator is more than its rendering engine (or at least, people tell me that). While we are pushing as hard as we can to get Vulkan to public beta, we also have several other irons in the fire. This includes new features for mobile, next-gen features for desktop in several feature areas, and even a few extra non-Vulkan features that have snuck into 11.50. We’ll post more about the mobile and 11.50 features as they become available; the rest is still in stealth mode. Often when the dev blog is quiet, it means we’re working on new things and putting features in the bank; this is the case right now."
As always, Threshold will continue to report on the latest development from Laminar Research.
Join the discussion - Share your thoughts in the comments below, or in our Discord server.