DigitalFoundry Dissects Quantum Break (and I rant)

Subject: Graphics Cards | April 14, 2016 - 10:17 PM |
Tagged: microsoft, windows 10, uwp, DirectX 12, dx12

At the PC Gaming Conference from last year's E3 Expo, Microsoft announced that they were looking to bring more first-party titles to Windows. They used to be one of the better PC gaming publishers, back in the Mechwarrior 4 and earlier Flight Simulator days, but they got distracted as Xbox 360 rose and Windows Vista fell.

microsoft-2016-quantumbreak-logo.jpg

Again, part of that is because they attempted to push users to Windows Vista and Games for Windows Live, holding back troubled titles like Halo 2: Vista and technologies like DirectX 10 from Windows XP, which drove users to Valve's then-small Steam platform. Epic Games was also a canary in the coalmine at that time, warning users that Microsoft was considering certification for Games for Windows Live, which threatened mod support “because Microsoft's afraid of what you might put into it”.

It's sometimes easy to conform history to fit a specific viewpoint, but it does sound... familiar.

Anyway, we're glad that Microsoft is bringing first-party content to the PC, and they are perfectly within their rights to structure it however they please. We are also within our rights to point out its flaws and ask for them to be corrected. Turns out that Quantum Break, like Gears of War before it, has some severe performance issues. Let's be clear, these will likely be fixed, and I'm glad that Microsoft didn't artificially delay the PC version to give the console an exclusive window. Also, had they delayed the PC version until it was fixed, we wouldn't have known whether it needed the time.

Still, the game apparently has issues with a 50 FPS top-end cap, on top of pacing-based stutters. One concern that I have is, because DigitalFoundry is a European publication, perhaps the 50Hz issue might be caused by their port being based on a PAL version of the game??? Despite suggesting it, I would be shocked if that were the case, but I'm just trying to figure out why anyone would create a ceiling at that specific interval. They are also seeing NVIDIA's graphics drivers frequently crash, which probably means that some areas of their DirectX 12 support are not quite what the game expects. Again, that is solvable by drivers.

It's been a shaky start for both DirectX 12 and the Windows 10 UWP platform. We'll need to keep waiting and see what happens going forward. I hope this doesn't discourage Microsoft too much, but also that they robustly fix the problems we're discussing.

AMD Radeon Software Crimson Edition 16.3 Released

Subject: Graphics Cards | March 10, 2016 - 12:42 AM |
Tagged: amd, radeon, graphics drivers, vulkan, dx12, DirectX 12

New graphics drivers from AMD have just been published, and it's a fairly big release. First, Catalyst 16.3 adds Vulkan support to main-branch drivers, which they claim is conformant to the 1.0 specification. The Khronos Group website still doesn't list AMD as conforming, but I assume that they will be added shortly (rather than some semantic “conformant” “fully conformant” thing going on). This is great for the platform, as we are still in the launch window of DirectX 12.

amd-2015-crimson-logo.png

Performance has apparently increased as well, significantly. This is especially true in the DirectX 12 title, Gears of War Ultimate Edition. AMD claims that FuryX will see up to a 60% increase in that title, and the R9 380 will gain up to 44%. It's unclear how much that is in real world performance, especially in terms of stutter and jank, which apparently plagues that game.

The driver also has a few other interesting features. One that I don't quite understand is “Power Efficiency Toggle”. This supposedly “allows the user to disable some power efficiency optimizations”. I would assume that means keeping you GPU up-clocked under certain conditions, but I don't believe that was much of an issue for the last few generations. That said, the resolved issues section claims that some games were choppy because of core clock fluctuation, and lists this option as the solution, so maybe it was. It is only available on “select” Radeon 300 GPUs and Fury X. That is, Fury X specifically, not the regular Fury or the Nano. I expect Ryan will be playing around with it in the next little while.

Last of the main features, the driver adds support for XConnect, which is AMD's new external graphics standard. It requires a BIOS that support external GPUs, which AMD lists the Razer Blade Stealth as. Also noteworthy, Eyefinity can now be enabled with just two displays, and Display Scaling can be set per-game. I avoid manually controlling drivers, even my Wacom tablet, to target specific applications, but that's probably great for those who do.

As a final note: the Ashes of the Singularity 2.0 benchmark now supports DirectFlip.

If you have a recent AMD GPU, grab the drivers from AMD's website.

Source: AMD

Ashes of the Singularity Goes Live on March 31st

Subject: General Tech | March 9, 2016 - 10:40 PM |
Tagged: Oxide Games, ashes of the singularity, Star Swarm, dx12, DirectX 12

Ashes of the Singularity, by Oxide Games and Stardock, the RTS that spawned from the Star Swarm demo, will be released on March 31st. Unless something sneaks in before then, this will pretty much be our first look at DirectX 12 in a full, released game, and pretty much the only one to take advantage of its ability to draw many simple objects.

stardock-2016-ashes-logo.png

Again, I'm excluding released games based on engines Unreal Engine 4, because you don't have full DirectX 12 support if your engine provider doesn't claim full DirectX 12 support. I'm pretty sure they just enabled Epic's experimental feature, rather than beat them to overhauling their hardware interfaces. I'm also ignoring Gears of War Ultimate Edition because of the state it launched in.

It seems like the only source for this news is PC Gamer. Stardock hasn't officially said what will change in this launch from the previous beta release (Beta 2). The game currently supports mixed multi-GPU on DirectX 12, and a variety of other features, which will be interesting to see in official software. Unless we get a surprise in the official announcement, it looks like Vulkan might be a “patch after launch” thing, though.

Source: PC Gamer

Microsoft Cancels Fable Legends

Subject: General Tech | March 7, 2016 - 11:44 PM |
Tagged: microsoft, lionhead, fable legends, dx12, DirectX 12

Officially, Microsoft has not yet shut down Lionhead Studios, but they have canceled Fable Legends. They “are in discussions with employees about the proposed closure of Lionhead Studios in the UK.” Press Play, another developer at Microsoft Studios in Europe, will be shut down as a result of this same announcement, but that studio only developed Xbox One titles, and so I'll defer to other gaming outlets to cover that part of the story.

fable-legends-gi.jpg

It's always unfortunate when jobs are cut, which seem certain given the closing paragraph of the Xbox announcement thanking them for their service. The weird part about this whole issue is how late plug was pulled in its development cycle. A closed beta has been operating for months, and a demo was shared with press as a DirectX 12 benchmark. The business model was supposed to be free-to-play, which means that it could potentially continue to bleed money after launch, but you would expect that concerns would have boiled over much earlier than now.

For our audience, this also means the cancellation of one of the expected, early implementations of DirectX 12. Lionhead Studios have also contributed to Unreal Engine 4 during the development of Fable Legends, particularly with shadow map optimization. I think their Global Illumination features, the main topic of the same article that was linked in this paragraph, were contributed upstream too, but I can't find an explicit source of that.

Microsoft Comments on UWP Games and Full Screen Capability

Subject: Graphics Cards | March 3, 2016 - 04:54 PM |
Tagged: uwp, uwa, universal windows platform, microsoft, full screen, dx12, DirectX 12

With all of the debate and discussion that followed the second release of Ashes of the Singularity's DX12 benchmark mode, questions about full screen capabilities on AMD hardware and a debate of the impact the Microsoft Store and Universal Windows Platform would have on PC gaming, we went to the source of the debate to try and get some feedback. Microsoft was willing to talk about the issues that arose from this most recent storm though honestly what it is willing to say on the record today is limited.

When asked specifically about the UWP and PC games made available on the Windows 10 Store, Microsoft reiterated its desire to work with gamers and the community to find what works.

“UWP (Universal Windows Platform) allows developers to create experiences that are easily deployed across all Windows 10 devices, from PCs to tablets to phones to Xbox One. When it comes to a UWP game on Windows 10 PCs, we’re early in our journey. We’re listening to the feedback from the community – multiple GPUs, SLI, crossfire, v-sync, etc. We’re embracing the feedback and working to ensure gamers on Windows 10 have a great experience. We’ll have more to discuss in the coming months.” – a Microsoft spokesperson

It's good to know that Microsoft is listening to the media and gamers and seems willing to make changes based on feedback. It will have to be seen though what of this feedback gets implemented and in what time frame.

ed1.jpg

Universal Windows Platform

One particular fear for some gamers is that Microsoft would attempt to move to the WDDM compositing model not just for games sold in the Windows Store, but for all games that run on the OS. I asked Microsoft directly:

To answer your question, can we assume that those full screen features that work today with DX12 will work in the future as well – yes.

This should ease the worries of people thinking the very worst for Windows and DX12 gaming going forward. As long as DX12 allows for games to enter into an exclusive full screen mode, like the FlipEx option we discussed in a previous story, games sold through Steam, Origin and anywhere else will have the ability to behave with DX12 as they do today with DX11.

windowsstore.jpg

Windows 10 Store

I have some meetings setup with various viewpoints on this debate for GDC in a couple weeks, so expect more then!

Quantum Break Will Require Windows 10 (and DirectX 12)

Subject: General Tech | February 17, 2016 - 11:47 PM |
Tagged: microsoft, windows 10, pc gaming, DirectX 12

Last week, Microsoft announced that Quantum Break would arrive on the PC. At the same time, they listed the system requirements, which included the requirement of Windows 10. It will only be available on Windows 10 (outside of Xbox One). They also mentioned that the game would require DirectX 12, which made the issue more interesting. It wasn't that Microsoft was pushing their OS with first-party software, they were using an API that is only available in Windows 10, and it had the potential to make a better video game.

microsoft-2016-quantumbreak-logo.jpg

Then they announced that it would only be available on Windows Store, which swings the pendulum back in the other direction. Oh well, it was nice while it lasted.

In all seriousness, we'll probably see games begin to deprecate DirectX 11 once DirectX 12 (or Vulkan) becomes ubiquitous. These new APIs significantly change how content is designed and submit to GPU(s), and do so in ways that seem difficult to scale back. Granted, I've talked to game developers and I've yet to have my suspicions validated, but it seems like the real benefit of the APIs will be when art and content can be created differently -- more objects, simpler objects, potentially splitting materials that are modified into separate instances, and so forth.

Quantum Break will come out on April 5th, along with a few other DX12-based titles.

Source: PC Gamer
Manufacturer: PC Perspective

Caught Up to DirectX 12 in a Single Day

The wait for Vulkan is over.

I'm not just talking about the specification. Members of the Khronos Group have also released compatible drivers, SDKs and tools to support them, conformance tests, and a proof-of-concept patch for Croteam's The Talos Principle. To reiterate, this is not a soft launch. The API, and its entire ecosystem, is out and ready for the public on Windows (at least 7+ at launch but a surprise Vista or XP announcement is technically possible) and several distributions of Linux. Google will provide an Android SDK in the near future.

khronos-2016-vulkan-why.png

I'm going to editorialize for the next two paragraphs. There was a concern that Vulkan would be too late. The thing is, as of today, Vulkan is now just as mature as DirectX 12. Of course, that could change at a moment's notice; we still don't know how the two APIs are being adopted behind the scenes. A few DirectX 12 titles are planned to launch in a few months, but no full, non-experimental, non-early access game currently exists. Each time I say this, someone links the Wikipedia list of DirectX 12 games. If you look at each entry, though, you'll see that all of them are either: early access, awaiting an unreleased DirectX 12 patch, or using a third-party engine (like Unreal Engine 4) that only list DirectX 12 as an experimental preview. No full, released, non-experimental DirectX 12 game exists today. Besides, if the latter counts, then you'll need to accept The Talos Principle's proof-of-concept patch, too.

But again, that could change. While today's launch speaks well to the Khronos Group and the API itself, it still needs to be adopted by third party engines, middleware, and software. These partners could, like the Khronos Group before today, be privately supporting Vulkan with the intent to flood out announcements; we won't know until they do... or don't. With the support of popular engines and frameworks, dependent software really just needs to enable it. This has not happened for DirectX 12 yet, and, now, there doesn't seem to be anything keeping it from happening for Vulkan at any moment. With the Game Developers Conference just a month away, we should soon find out.

khronos-2016-vulkan-drivers.png

But back to the announcement.

Vulkan-compatible drivers are launching today across multiple vendors and platforms, but I do not have a complete list. On Windows, I was told to expect drivers from NVIDIA for Windows 7, 8.x, 10 on Kepler and Maxwell GPUs. The standard is compatible with Fermi GPUs, but NVIDIA does not plan on supporting the API for those users due to its low market share. That said, they are paying attention to user feedback and they are not ruling it out, which probably means that they are keeping an open mind in case some piece of software gets popular and depends upon Vulkan. I have not heard from AMD or Intel about Vulkan drivers as of this writing, one way or the other. They could even arrive day one.

On Linux, NVIDIA, Intel, and Imagination Technologies have submitted conformant drivers.

Drivers alone do not make a hard launch, though. SDKs and tools have also arrived, including the LunarG SDK for Windows and Linux. LunarG is a company co-founded by Lens Owen, who had a previous graphics software company that was purchased by VMware. LunarG is backed by Valve, who also backed Vulkan in several other ways. The LunarG SDK helps developers validate their code, inspect what the API is doing, and otherwise debug. Even better, it is also open source, which means that the community can rapidly enhance it, even though it's in a releasable state as it is. RenderDoc, the open-source graphics debugger by Crytek, will also add Vulkan support. ((Update (Feb 16 @ 12:39pm EST): Baldur Karlsson has just emailed me to let me know that it was a personal project at Crytek, not a Crytek project in general, and their GitHub page is much more up-to-date than the linked site.))

vulkan_gltransition_maintenance1.png

The major downside is that Vulkan (like Mantle and DX12) isn't simple.
These APIs are verbose and very different from previous ones, which requires more effort.

Image Credit: NVIDIA

There really isn't much to say about the Vulkan launch beyond this. What graphics APIs really try to accomplish is standardizing signals that enter and leave video cards, such that the GPUs know what to do with them. For the last two decades, we've settled on an arbitrary, single, global object that you attach buffers of data to, in specific formats, and call one of a half-dozen functions to send it.

Compute APIs, like CUDA and OpenCL, decided it was more efficient to handle queues, allowing the application to write commands and send them wherever they need to go. Multiple threads can write commands, and multiple accelerators (GPUs in our case) can be targeted individually. Vulkan, like Mantle and DirectX 12, takes this metaphor and adds graphics-specific instructions to it. Moreover, GPUs can schedule memory, compute, and graphics instructions at the same time, as long as the graphics task has leftover compute and memory resources, and / or the compute task has leftover memory resources.

This is not necessarily a “better” way to do graphics programming... it's different. That said, it has the potential to be much more efficient when dealing with lots of simple tasks that are sent from multiple CPU threads, especially to multiple GPUs (which currently require the driver to figure out how to convert draw calls into separate workloads -- leading to simplifications like mirrored memory and splitting workload by neighboring frames). Lots of tasks aligns well with video games, especially ones with lots of simple objects, like strategy games, shooters with lots of debris, or any game with large crowds of people. As it becomes ubiquitous, we'll see this bottleneck disappear and games will not need to be designed around these limitations. It might even be used for drawing with cross-platform 2D APIs, like Qt or even webpages, although those two examples (especially the Web) each have other, higher-priority bottlenecks. There are also other benefits to Vulkan.

khronos-2016-vulkan-middleware.png

The WebGL comparison is probably not as common knowledge as Khronos Group believes.
Still, Khronos Group was criticized when WebGL launched as "it was too tough for Web developers".
It didn't need to be easy. Frameworks arrived and simplified everything. It's now ubiquitous.
In fact, Adobe Animate CC (the successor to Flash Pro) is now a WebGL editor (experimentally).

Open platforms are required for this to become commonplace. Engines will probably target several APIs from their internal management APIs, but you can't target users who don't fit in any bucket. Vulkan brings this capability to basically any platform, as long as it has a compute-capable GPU and a driver developer who cares.

Thankfully, it arrived before any competitor established market share.

GDC 2016 Sessions Are Up and DirectX 12 / Vulkan Are There

Subject: General Tech | January 21, 2016 - 12:06 AM |
Tagged: vulkan, ue4, nvidia, Intel, gdc 2016, GDC, epic games, DirectX 12, Codemasters, arm, amd

The 30th Game Developers Conference (GDC) will take place on March 14th through March 18th, with the expo itself starting on March 16th. The sessions have been published at some point, with DX12 and Vulkan prominently featured. While the technologies have not been adopted as quickly as advertised, the direction is definitely forward. In fact, NVIDIA, Khronos Group, and Valve have just finished hosting a developer day for Vulkan. It is coming.

gdc-2016-logo.png

One interesting session will be hosted by Codemasters and Intel, which discusses bringing the F1 2015 engine to DirectX 12. It will highlight a few features they implemented, such as voxel based raytracing using conservative rasterization, which overestimates the size of individual triangles so you don't get edge effects on pixels that are partially influenced by an edge that cuts through a tiny, but not negligible, portion of them. Sites like Game Debate (Update: Whoops, forgot the link) wonder if these features will be patched in to older titles, like F1 2015, or if they're just R&D for future games.

Another keynote will discuss bringing Vulkan to mobile through Unreal Engine 4. This one will be hosted by ARM and Epic Games. Mobile processors have quite a few cores, albeit ones that are slower at single-threaded tasks, and decent GPUs. Being able to keep them loaded will bring their gaming potential up closer to the GPU's theoretical performance, which has surpassed both the Xbox 360 and PlayStation 3, sometimes by a factor of 2 or more.

Many (most?) slide decks and video recordings are available for free after the fact, but we can't really know which ones ahead of time. It should be an interesting year, though.

Source: GDC

Vulkan API Slips to 2016

Subject: Graphics Cards | December 21, 2015 - 12:25 PM |
Tagged: vulkan, Mantle, Khronos, dx12, DirectX 12

The Khronos Group announced on Friday that the Vulkan API will not ship until next year. The standards body was expecting to launch it at some point in 2015. In fact, when I was first briefed on it, they specifically said that 2015 was an “under-promise and over-deliver” estimate. Vulkan is an open graphics and compute standard that was derived from AMD's Mantle. It, like OpenCL 2.1, uses the SPIR-V language for compute and shading though, which can be compiled from subsets of a variety of languages.

khronos-vulkan-logo.png

I know that most people will be quick to blame The Khronos Group for this, because industry bodies moving slowly is a stereotype, but I don't think it applies. When AMD created Mantle, it bore some significant delays at all levels. Its drivers and software were held back, and the public release of its SDK was delayed out of existence. Again, it would be easy to blame AMD for this, but hold on. We now get to Microsoft. DirectX 12, which is maybe even closer to Mantle than Vulkan is due to its shading language, didn't roll out as aggressively as Microsoft expected, either. Software is still pretty much non-existent when they claimed, at GDC 2014, that about 50% of PC games would be DX12-compatible by Holiday 2015. We currently have... ... zero (excluding pre-release).

Say what you like about the three examples individually, but when all three show problems, then there might just be a few issues that took longer than expected to solve. Again, this is a completely different metaphor of translating voltages coming through a PCI Express bus into fancy graphics and GPU compute, and create all of the supporting ecosystems, too.

Speaking of ecosystems, The Khronos Group has also announced that Google has upgraded their membership to “Promoter” to get more involved with Vulkan development. Google has been sort-of hostile towards certain standards from The Khronos Group on Android in the past, such as disabling OpenCL on Nexus devices, and trying to steer developers into using Android Extension Pack and Renderscript. They seem to want to use Vulkan proper this time, which is always healthy for the API.

I guess look forward to Vulkan in 2016... hopefully early.

AMD Releases Catalyst 15.10 Beta Drivers

Subject: Graphics Cards | October 14, 2015 - 03:24 PM |
Tagged: radeon, dx12, DirectX 12, Catalyst 15.10 beta, catalyst, ashes of the singularity, amd

AMD.png

The AMD Catalyst 15.9 beta driver was released just two weeks ago, and already AMD is ready with a new version. 15.10 is available now and offers several bug fixes, though the point of emphasis is DX12 performance improvements to the Ashes of the Singularity benchmark.

From AMD:

Highlights of AMD Catalyst 15.10 Beta Windows Driver

Performance Optimizations:

  • Ashes of the Singularity - DirectX 12 Quality and Performance optimizations

Resolved Issues:

  • Video playback of MPEG2 video fails with a playback error/error code message
  • A TDR error or crash is experienced when running the Unreal Engine 4 DirectX benchmark
  • Star Wars: Battlefront is able to use high performance graphics when launched on mobile devices with switchable graphics
  • Intermittent playback issues with Cyberlink PowerDVD when connecting to a 3D display with an HDMI cable
  • Ashes of the Singularity - A 'Driver has stopped responding' error may be experienced in DirectX 12 mode
  • Driver installation may halt on some configurations
  • A TDR error may be experienced while toggling between minimized and maximized mode while viewing 4K YouTube content

Known Issues:

  • Ashes of the Singularity may crash on some AMD 300 series GPUs
  • Core clock fluctuations may be experienced when FreeSync and FRTC are both enabled on some AMD CrossFire systems
  • Ashes of the Singularity may fail to launch on some GPUs with 2GB Video Memory. AMD continues to work with Stardock to resolve the issue. In the meantime, deleting the game config file helps resolve the issue
  • The secondary display adapter is missing in the Device Manager and the AMD Catalyst Control Center after installing the driver on a Microsoft Windows 8.1 system
  • Elite: Dangerous - poor performance may be experienced in SuperCruise mode
  • A black screen may be encountered on bootup on Windows 10 systems. The system will ultimately continue to the Windows login screen

The driver is available now from AMD's Catalyst beta download page.

Source: AMD