Filament Game Engine Open Sourced (Apache 2.0)

Subject: General Tech | August 8, 2018 - 07:15 PM |
Tagged: pc gaming, macos, Android, windows, linux, vulkan

Yet another video game engine has entered the market – this time by Google. Filament is written in C++, supports OpenGL 4.1-and-up, OpenGL ES 3.0-and-up, and Vulkan 1.0 on Android, Linux, macOS, and Windows.

It is also licensed under Apache 2.0, so it is completely open-source (with no copyleft).

google-2018-filament-anisotropy.png

On the plus side, it supports a lot of rendering features. The materials, like basically everyone else, use a PBR system, which abstracts lighting from material properties, allowing models to be shaded correctly in any lighting environment. Filament goes beyond that implementation, however, and claims to include things like anisotropic metals (think brushed steel) and clear coat effects. They even have a BRDF (the program that defines the outputs of your shader, where all your textures plug in to) for cloth rendering, including backward scattering.

On the negative side? Pages upon pages of documentation and I haven’t seen one screenshot of their editor, which doesn't telegraph the best message for their tools. I don’t have the toolchain set up on my computer to try it for myself, but I’m guessing that developer UX is lacking compared to the other engines. I do like that they chose to limit external dependencies, however. It just requires the standard library and a header-only library called “Robin-Map” for fast hash maps.

Google also tags a disclaimer at the bottom of their GitHub page: “This is not an officially supported Google product”. It’s free, though, so it might be worth checking out.

Podcast #490 - Seasonic Fanless power supply, HyperX cordless headset, and more!

Subject: General Tech | March 8, 2018 - 01:37 AM |
Tagged: vulkan, video, stealth, seasonic, razer, Project ReSX, prime, podcast, Khronos Group, hyperx, gamdias, far cry 5, corsair, Carbide 275R, amd, achilles p1-l, 600w

PC Perspective Podcast #490 - 03/07/18

Join us this week for discussion on the Seasonic Fanless power supply, HyperX cordless headset, and more!

You can subscribe to us through iTunes and you can still access it directly through the RSS page HERE.

The URL for the podcast is: http://pcper.com/podcast - Share with your friends!

Hosts: Ryan Shrout, Jeremy Hellstrom, Josh Walrath, Sebastion Peak, Allyn Malventano

Peanut Gallery: Alex Lustenberg, Ken Addison

Program length: 1:26:57

Podcast topics of discussion:
  1. Week in Review:
  2. Thanks to Casper for supporting our channel. Save $50 on select mattresses at http://www.casper.com/pcper code: pcper
  3. News items of interest:
  4. Picks of the Week:
    1. 1:15:05 Allyn: Keep an eye on Steam Specials
    2. 1:18:15 Jeremy: An office move is a chance to get 4K over Cat6? Nope.
    3. 1:23:15 Sebastian: Consider a refurb if you need a PSU
  5. Closing/outro
 
Subject: General Tech
Manufacturer: The Khronos Group

Don't Call It SPIR of the Moment

Vulkan 1.0 released a little over two years ago. The announcement, with conformant drivers, conformance tests, tools, and patch for The Talos Principle, made a successful launch for the Khronos Group. Of course, games weren’t magically three times faster or anything like that, but it got the API out there; it also redrew the line between game and graphics driver.

The Khronos Group repeats this “hard launch” with Vulkan 1.1.

khronos-2018-vulkan-logo.png

First, the specifications for both Vulkan 1.1 and SPIR-V 1.3 have been published. We will get into the details of those two standards later. Second, a suite of conformance tests has also been included with this release, which helps prevent an implementation bug from being an implied API that software relies upon ad-infinitum. Third, several developer tools have been released, mostly by LunarG, into the open-source ecosystem.

Fourth – conformant drivers. The following companies have Vulkan 1.1-certified drivers:

khronos-2018-vulkan-drivers.png

There are two new additions to the API:

The first is Protected Content. This allows developers to restrict access to rendering resources (DRM). Moving on!

The second is Subgroup Operations. We mentioned that they were added to SPIR-V back in 2016 when Microsoft announced HLSL Shader Model 6.0, and some of the instructions were available as OpenGL extensions. They are now a part of the core Vulkan 1.1 specification. This allows the individual threads of a GPU in a warp or wavefront to work together on specific instructions.

khronos-2018-vulkan-subgroup.png

Shader compilers can use these intrinsics to speed up operations such as:

  • Finding the min/max of a series of numbers
  • Shuffle and/or copy values between lanes of a group
  • Adding several numbers together
  • Multiply several numbers together
  • Evaluate whether any, all, or which lanes of a group evaluate true

In other words, shader compilers can do more optimizations, which boosts the speed of several algorithms and should translate to higher performance when shader-limited. It also means that DirectX titles using Shader Model 6.0 should be able to compile into their Vulkan equivalents when using the latter API.

khronos-2018-vulkan-spirv.png

This leads us to SPIR-V 1.3. (We’ll circle back to Vulkan later.) SPIR-V is the shading language that Vulkan relies upon, which is based on a subset of LLVM. SPIR-V is the code that is actually run on the GPU hardware – Vulkan just deals with how to get this code onto the silicon as efficiently as possible. In a video game, this would be whatever code the developer chose to represent lighting, animation, particle physics, and almost anything else done on the GPU.

The Khronos Group is promoting that the SPIR-V ecosystem can be written in either GLSL, OpenCL C, or even HLSL. In other words, the developer will not need to rewrite their DirectX shaders to operate on Vulkan. This isn’t particularly new – Unity did this sort-of HLSL to SPIR-V conversion ever since they added Vulkan – but it’s good to mention that it’s a promoted workflow. OpenCL C will also be useful for developers who want to move existing OpenCL code into Vulkan on platforms where the latter is available but the former rarely is, such as Android.

khronos-2018-vulkan-opencl.png

Speaking of which, that’s exactly what Google, Codeplay, and Adobe are doing. Adobe wrote a lot of OpenCL C code for their Creative Cloud applications, and they want to move it elsewhere. This ended up being a case study for an OpenCL to Vulkan run-time API translation layer and the Clspv OpenCL C to SPIR-V compiler. The latter is open source, and the former might become open source in the future.

Now back to Vulkan.

khronos-2018-vulkan-extensions.png

The other major change with this new version is the absorption of several extensions into the core, 1.1 specification.

The first is Multiview, which allows multiple projections to be rendered at the same time, as seen in the GTX 1080 launch. This can be used for rendering VR, stereoscopic 3D, cube maps, and curved displays without extra draw calls.

The second is device groups, which allows multiple GPUs to work together.

The third allows data to be shared between APIs and even whole applications. The Khronos Group specifically mentions that Steam VR SDK uses this.

The fourth is 16-bit data types. While most GPUs operate on 32-bit values, it might be beneficial to pack data into 16-bit values in memory for algorithms that are limited by bandwidth. It also helps Vulkan be used in non-graphics workloads.

We already discussed HLSL support, but that’s an extension that’s now core.

The sixth extension is YCbCr support, which is required by several video codecs.

The last thing that I would like to mention is the Public Vulkan Ecosystem Forum. The Khronos Group has regularly mentioned that they want to get the open-source community more involved in reporting issues and collaborating on solutions. In this case, they are working on a forum where both members and non-members will collaborate, as well as the usual GitHub issues tab and so forth.

You can check out the details here.

The Wolfensteins of Vulkan in the spotlight

Subject: General Tech | November 15, 2017 - 02:12 PM |
Tagged: gaming, Wolfenstein 2, vulkan, amd, nvidia

[H]ard|OCP took a close look at the new Wolfenstein game, covering the new graphics options which appear in the menus as well as the bugs that could be caused by then, not to mention the benchmarking.  For this Vulkan game they chose three AMD cards and four NVIDIA cards to test with a variety of thsoe options enabled as well as looking at the effect resolution has on your performance.  As we have seen in other recent games, AMD's Vega 64 is a strong contender at 4K resolutions, surpassing the GTX 1080 but not quite matching its 1080 Ti brother.  It is also worth noting this game loves VRAM, in fact 8GB is not enough for Uber settings.  Read through the full review for performance numbers as well as insight into the best graphics settings to chose.

1510594718h4wgx13fur_1_4_l.png

"Wolfenstein II: The New Colossus is out; this new game uses the id Tech 6 game engine and Vulkan API to give you a great gaming experience on the PC with today’s latest GPUs. We will compare performance features, see what settings work best, find what is playable in the game and compare performance among several video cards."

Here is some more Tech News from around the web:

Gaming

Source: [H]ard|OCP

What is the best GPU to beat Nazis with?

Subject: General Tech | November 8, 2017 - 03:26 PM |
Tagged: gaming, Wolfenstein 2, the new colossus, nvidia, amd, vulkan

Wolfenstein II The New Colossus uses the Vulkan API which could favour AMD's offerings however NVIDIA have vastly improved their support so a win is not guaranteed.  The Guru of 3D tested the three resolutions which most people are interested in, 1080p, 1440p and 4K on 20 different GPUs in total.  They also took a look at the impact of 4-core versus 8-core CPUs, testing the i7-4790K, i7-5960K as well as the Ryzen 7 1800X and even explored the amount of VRAM the game uses.  Drop by to see all their results as well as hints on dealing with the current bugs.

newcolossus_x64vk_2017_11_04_09_39_58_587.jpg

"We'll have a peek at the PC release of Wolfenstein II The New Colossus for Windows relative towards graphics card performance. The game is 100% driven by the Vulkan API. in this test twenty graphics cards are being tested and benchmarked."

Here is some more Tech News from around the web:

Gaming

Source: Guru of 3D

Podcast #464 - Vega Redux, Intel 8th Gen Core, and more!

Subject: General Tech | August 24, 2017 - 11:24 AM |
Tagged: vulkan, vlan, video, samsung galaxy note 8, rx vega, podcast, Linksys WRT32x, kaby lake, Intel, ice lake, htc vive, ECS, Core, asus zenphone 4, acer predator z271t

PC Perspective Podcast #464 - 08/17/17

Join us for continued discussion on RX Vega, Intel 8th Gen Core, and more!

You can subscribe to us through iTunes and you can still access it directly through the RSS page HERE.

The URL for the podcast is: http://pcper.com/podcast - Share with your friends!

Hosts: Ryan Shrout, Jeremy Hellstrom, Josh Walrath, Allyn Malventano

Peanut Gallery: Ken Addison, Alex Lustenberg

Program length: 1:34:56

Podcast topics of discussion:
  1. Week in Review:
    1. 0:07:54 Let’s talk about RX Vega!
      1. My Review
      2. Pricing concerns
      3. Availability
      4. Different die packages
      5. Locked BIOS
  2. News items of interest:
  3. Hardware/Software Picks of the Week
    1. 1:26:45 Allyn: Razer Blade
  4. Closing/outro
 

Source:

Ashes of the Singularity: Escalation Vulkan Support Soon

Subject: General Tech | August 19, 2017 - 10:00 PM |
Tagged: pc gaming, oxide, Oxide Games, vulkan

Oxide Games has been mentioned all throughout the development of the next-generation graphics APIs, DirectX 12, Mantle, and Vulkan. Their Star Swarm “stress test” was one of the first practical examples of a game that desperately needs to make a lot of draw calls. Also, their rendering algorithm is very different from the other popular game engines, where lighting is performed on the object rather than the screen, which the new APIs help out with.

stardock-2016-ashes-logo.png

Currently, Ashes of the Singularity supports DirectX 11 and DirectX 12, but Vulkan will be added soon. Oxide will be pushing the new graphics api in the 2.4 update, bringing increased CPU performance to all OSes but especially Windows 7 and 8 (neither of which support DirectX 12), and a free DLC pack that contains nine co-op maps. They also plan to continue optimizing Ashes of the Singularity for Vulkan in the future.

All of this will be available on Thursday, August 24th.

Vulkan Renderer for Doom 3 BFG Source Code Published

Subject: General Tech | August 17, 2017 - 09:41 PM |
Tagged: id software, vulkan, doom, Doom 3

Over the last few days, Dustin Land of id Software has been publishing commits to his vkDOOM3 GitHub repository. This project, as the name suggests, adds a Vulkan-based renderer to the game, although it’s not really designed to replace the default OpenGL implementation. Instead, the project is a learning resource, showing how a full application handles the API.

id-logo.jpg

This is quite interesting for me. While code samples can show you how a chunk of code is used in rough isolation, it’s sometimes good to see how it’s used in a broader context. For instance, when I was learning Unreal Engine 4, I occasionally searched into the Unreal Tournament repository for whatever I was learning about. Sometimes, things just don’t “click” until you see the context, especially when your question starts with “why”.

If you’re interested, check out the GitHub repo. You will need to own Doom 3 BFG Edition to actually play it, though.

Source: GitHub

Report: Wolfenstein 2 Optimized for AMD Vega with FP16 Shader Support

Subject: Graphics Cards | August 1, 2017 - 12:05 PM |
Tagged: Wolfenstein 2, vulkan, Vega, id Tech 6, id software, half-precision, game engine, FP16, amd

According to a report from Golem.de (German language), with the upcoming Wolfenstein 2: The New Colossus game AMD Vega owners will have the advantage of FP16 shader support from a new version of the id Tech 6 engine. The game supports both DX12 and the Vulkan API, but the use of half-precision calculations - the scope of which has not been specified - will potentially offer higher frame-rates for AMD Vega users.

vega-26.jpg

AMD provided some technical details about Wolfenstein 2 during their Threadripper/Vega tech day, and this new game includes “special optimizations” in the id Tech 6 game engine for AMD Vega hardware:

“For what exactly id Software (is using) FP16 instead of FP32, AMD did not say. These could post-processing effects, such as bloom. The performance should increase in the double-digit percentage range, (though) id Software did not want to comment on it.” (Translated from German.)

Source: Golem.de

Qt Outlines What Their View on Vulkan Support Is

Subject: General Tech | June 7, 2017 - 09:10 PM |
Tagged: Qt, vulkan

During our recent interview, the Khronos Group mentioned that one reason to merge into Vulkan was because, at first, the OpenCL working group wasn’t sure whether they wanted an explicit, low-level API, or an easy-to-use one that hides the complexity. Vulkan taught them to take a very low-level position, because there can always be another layer above them that hides complexity to everything downstream of it. This is important for them, because the only layers below them are owned by OS and hardware vendors.

QtCompany_logo_1200x630.png

This post is about Qt, though. Qt is a UI middleware, written in C++, that has become very popular as of late. The big revamp of AMD’s control panel with Crimson Edition was a result of switching from .NET to Qt, which greatly sped up launch time. They announced their intent to support the Vulkan API on the very day that it launched.

Yesterday, they wrote a blog post detailing their intentions for Vulkan support in Qt 5.10.

First and foremost, their last bulletpoint claims that these stances can change as the middleware evolves, particularly with Qt Quick, Qt 3D, Qt Canvas 3D, QPainter, and similar classes. This is a discussion of their support for Qt 5.10 specifically. As it stands, though, Qt intends to focus on cross-platform, window management, and “function resolving for the core API”. The application is expected to manage the rest of the Vulkan API itself (or, of course, use another helper for the other parts).

This makes sense for Qt’s position. Their lowest level classes should do as little as possible outside of what their developers expect, allowing higher-level libraries the most leeway to fill in the gaps. Qt does have higher-level classes, though, and I’m curious what others, especially developers, believe Qt should do with those to take advantage of Vulkan. Especially when we start getting into WYSIWYG editors, like Qt 3D Studio, there is room to do more.

Obviously, the first release isn’t the place to do it, but I’m curious none-the-less.

Source: Qt