Thursday, April 12, 2012

Lucid's new DynamiX software: Striking a balance on the fly?


LucidLogix may not be one of those household names in the industry, but for those among us with a keen interest in computer graphics and gaming, it certainly has earned a reputation of being an innovative and improvising entity. It's not like that there is any shortage in the numbers of companies or outfits providing graphics solutions, on the contrary - it's a very competitive market. There is a good number of graphics chip designers and manufacturers, AIB partners, OEMs and system builders competing for market share; Lucid, however, doesn't fit to any of these categories and yet delivers novel and elegant (at least theoretically) solutions for practical problems. So, when I read about Lucid laying its Hydra engine to an untimely rest - it felt kind of disappointing and anticlimactic since the concept behind Hydra was quite revolutionary. But it seems like Lucid is back once again with another impressive concept, which, just like Hydra, has the potential to shake things up quite a bit. Lucid calls it DynamiX!

Now before we get into details about this new technology, let me help you recall some important facts about LucidLogix and some of its previous ventures in the gaming graphics scene. The company came under the scanner back in 2008 - when it announced Hydra, a tantalizing technology based on the concept of a scalable and vendor agnostic multi-GPU environment. Generally when it comes to traditional multi-GPU set-ups like SLI or CrossFire, we rely solely on the support from the likes of NVIDIA or ATI. The support comes at the driver level, utilizing specific profiles,  for example - CAP (Catalyst Application Profiles) in case of ATI GPUs. But due to the proprietary nature of both SLI and CF, they can not be intermixed and also in most cases it would take an identical pair of graphics cards to enable them. Hydra was different in that it relied on intercepting the API (Direct-X/Open-GL) calls and redistributing the workload accordingly to enable multi-GPU rendering in games. In other words, one could achieve scalable performance by combining two different cards - regardless of their classes, generations, architectures and even vendors! At a higher level, this was a more open and elegant solution and threatened to disrupt the conventional arrangement and exclusiveness of the platforms. The implementation of the Hydra engine came in form of Hydra 100 and Hydra 200 chips and was used in a few high-end motherboards, but the end result was rather disappointing as performance scaling proved to be unpredictable and in most cases was far from being linear. Interestingly though, Hydra also worked in some cases, attesting the fact that the underlying concept was a sound one. Unfortunately, that wasn't enough to challenge the native technologies like SLI or CF and Hydra engine ended up being one of those "good on paper" things. Finally, as I said earlier, it was put to rest due to minimal industry adoption and patronage. One could argue that since both SLI and CFX are supported now by Intel and AMD in their high-end platforms, the necessity of having a way around has faded away. We don't agree with that as there was more to the Hydra technology than just enabling multi GPU rendering in a non supported platform; it's the unique ability to mix and match different GPUs which fascinated us enthusiasts the most!

The idea behind Hydra, however, evolved and found its way into Virtu - Lucid's next offering. The name comes from the concept of GPU virtualization as Lucid wants to call it. Technically Virtu is very similar to hydra with two important exceptions - Virtu is a complete software implementation unlike Hydra which was based on separate chip and instead of balancing the workload between two discrete GPUs, Virtu does quite a similar job of handling the processor graphics (iGPU) and discrete graphics (dGPU). It's a well known fact that almost all the mainstream CPUs (except only AMD FX and Intel SandyBridge-E) nowadays come equipped with integrated graphics of some kind and these modern iGPUs are good enough for every type of workloads bar serious gaming. To enable high resolution mainstream gaming we need to resort to a discrete graphics card and this is where things go out of the sync! By going discrete we loose the both the thermal and power efficiency that the IGP provides; a graphics card consumes more power, generates more heat and noise even when you're not playing a game. Sometimes, you loose more than just efficiency - like with Intel SandyBridge CPUs, where one can not use features like "QuickSync" when using a discrete solution. Virtu tries to address this issue by enabling both the iGPU and dGPU simultaneously and switching between them according to nature of the workload. That is, when the computer is sitting idly or just doing tasks that doesn't include heavy graphics processing - it resorts to the iGPU and the discrete card goes into idle/standby mode, but in case you run a 3D game - Virtu intercepts the DirectX API call and sends the request to the dGPU which is better suited for the purpose. The software does it all for you and does so by creating an abstraction layer between the Windows and the graphics drivers, where it intercepts calls, evaluate their nature and assigns them to a GPU of its choosing. Virtu has been successfully implemented into a lot of motherboards based on Intel Z68 chipset and enabled users to use QuickSync for trance-coding while playing demanding games on a separate graphics card - all without the need to enter the BIOS every time to change primary video/graphics source. Virtu is not a full proof plan as there are certain issues of performance overhead and incompatibility with drivers/games related to it, but it is a functional solution to a practical problem. Going forward, we expect to see more optimized implementation of this technology as Virtu will also feature in Intel's upcoming Z77 chipset based motherboards.

Now let's turn our attention to DynamiX which seems to be the newest addition to Lucid's arsenal. According to the company, its new DynamiX software will allow low-end laptops and ultrabooks to run some of the latest and demanding games which were previously thought unplayable. But that's not all as  Lucid also claims to provide maximum possible visual experience through DynamiX while maintaining the playability of a given title. This sounds like a bold claim considering the entry level laptops/ultrabooks usually don't have the luxury of discrete graphics and relies solely on the integrated GPU or IGP as we like to call it, for processing 3D workloads. Now we all know that in a game, the total number of FPS (Frame Per Second) generated is directly proportionate to the graphics hardware used; so how can a software implementation improve the FPS count without additional hardware resources? Well, according to Lucid, DynamiX does this by "dynamically transforming texture resolution mapped on objects in real time, considering object visibility and motion" - while "All game HUDs (heads up displays), menus and maps are unchanged and displayed in full resolution as high as HD on equipped laptops". In simpler terms it does scale the resolution of the game objects on the fly to keep it playable even on relatively weak integrated graphics. If true, this could be a fantastic news for owners of entry level laptops/ultrabooks, But is it possible? To answer that we have to dig a little deeper.

Not every game title tries to make your GPU suffer, but ironically those which do- are often the ones we go crazy about. The recent advancements of graphics hardware have granted the game developers the freedom to work with all shorts of new technologies and algorithms to make a game look as good and life-like as possible. As a result of their efforts we're getting visually stunning games like Crysis, Metro, Skyrim and Battlefield 3 that offer unique gameplaying experience. But visual brilliance comes at the expense of performance, specially on low-end GPUs. While nothing is quite at the level of "unplayable" (except in the cases where there are certain incompatibility/driver issues), efforts to run titles like Metro 2033, on say something like - Intel HD3000, yields only frustration! This is where you need to compromise with certain aspects of the game like image quality and resolution in order to maintain a smooth and playable framerate. Thankfully most modern titles comes with a control panel for setting up the in-game image/video quality manually which provides the user with detailed and granular control over all the important visual aspects like screen resolution, rendering process and distance, lighting method, shader and geomatry processing, texture size, anti-aliasing/anisotropic algorithm and intensity and many more. Veteran gamers can tweak some system/registry files to optimize things even further with some tittles (Bethesda's Elder Scroll and Fallout series are prime examples). However the downside of this approach is that one needs to have a good understanding of how all these intertwined features works and what impact each one has over the others, which certainly isn't the easiest job for the average Joe user. Also, as it is with most trial and errors, this is a time consuming process and may not appeal to everybody except enthusiasts and junkies. With DynamiX, the average users are spared from the hassles and instead the software tries to find out a sweet-spot for you striking a balance between visual quality and performance. What's more? Lucid claims to do all these "on the fly", meaning all the adjustments are done real time! Impressive!

There seems to be another novel concept behind the proposal of DynamiX. We're talking about the very heterogeneous distribution of 3D workloads inside the game environment. In a modern title, the amount of graphics processing involved to render on-screen objects is not consistent across the entire game and vastly varies from scene to scene, game zones to game zone and map to map. Not every scene/zone stresses your GPU equally and depending on the viewing distance, number of on-screen objects, lighting frequency and intensity, some are more difficult to render than the rest. This is the reason why we get inconsistent framerate while playing/exploring different parts of a game. This is also the reason why hardware reviewers tend to choose the most demanding part of game to benchmark a graphics card - so that they can provide you with a worst case scenario. On weaker GPUs, one needs to constantly tinker with the graphics settings as there is no 'one size fits all' solution for this problem. DynamiX, however, can scale down the resolution of target objects under stressful scenarios, i.e. whenever the fps drops into the realms of unplayability (which maybe 20 or 30, depending on the game). Likewise the resolution and image quality will return to normal settings once the fps goes up. Game developers need not to design or arrange these custom profiles in advance as the software does it on its own. Also, things like the HUDs (heads up displays), menus and maps remain unchanged as these hardly impact the overall performance.

it takes considerable graphics processing power to render the beauty that is Skyrim

Lucid is offering a beta version of DynamiX, it's free and for anyone to try out. But currently it supports only one game - The Elder Scrolls V : Skyrim. Skyrim is one of our favourite RPG titles and certainly an ideal one for testing a software like DynamiX due to its high scalability on all shorts of graphics hardware. We hope to see more supporting tittles in future just as we'll see more implementation of the software itself.

Meanwhile, Thomas Ryan of S|A has tried his hands with this beta version on different hardware and has come up with some pretty interesting observations. It seems like DynamiX isn't designed to work with desktops at all and is limited to only notebooks, which is a shame as there are lots of desktops out there driven by weak iGPUs that could've gained from this technology. Also Thomas found it to be incompatible with AMD's Brazos based devices which gives the feeling that DynamiX is exclusive to Intel's mobile platforms (read Ultrabooks)!

In the end, DynamiX from LucidLogix seems to be a very interesting piece of software. Conceptually it does provide an elegant and adaptive solution to some well known problems. But whether it'll be successful or not depends heavily on the implementation and hopefully Lucid has learnt its lessons from Hydra! There will be issues still with things like performance overheads, incompatibility with certain titles; also in some cases using DynamiX would likely result in performance and/or image quality regression. But at the same time, we expect it to work in some games too. May be we'll be able to find out more about this enticing technology once the IvyBridge based Ultrabooks and notebooks start to hit the market, but for now DynamiX is more of a concept than a practical solution.

(resource - Wikipedia, Anandtech, X-bit labs, SemiAcurate, Techpower-up)

No comments: