DirectX 12 API Preview

This reminds me about the rant of vendor A, B and C OpenGL driver quality: http://richg42.blogspot.fi/2014/05/the-truth-on-opengl-driver-quality.html :)

OpenGL has never been a truly cross vendor API. You can never be sure that your code runs flawlessly on all the different GPUs.
You should be. What's the point of common API otherwise? This is why I prefer working on DX drivers. Sure, WHCK tests are PITA but for a good reason. In OGL world you cover your ears and shout "LA LA LA LA LA! I can't hear the screams of users complaining about drivers". OGL validation tests are a joke. For something like $15k you get conformance tests that barely scratch the surface. But! You get a one-in-a-lifetime-opportunity to submit your own tests, free of charge! In business world it'd be called Ponzi scheme. ;)

With OGL next I'd expect extensive, brutal set of conformance tests. But it won't happen, I bet a fine single malt on that. :p
 
I found it really funny when I read the first GTX 980 reviews and the reviewers were touting voxel rendering as a new GPU hardware feature. Some reviewers even seemed to believe that there was custom hardware inside Maxwell that made this "feature" much faster.

Wait i'm totally confused... are you suggesting that in the case of AnanandTech and Ryan Smith that he's wrong when he suggest that

NVIDIA has pulled together the D3D 11.3 feature set, along with additional hardware features, to greatly accelerate the process of creating the voxel grid in order to speed up the overall algorithm. ....
A big part of MPA is a sub-feature called viewport multicast. In viewport multicast Maxwell 2 can replay the necessary geometry to all of the viewports in a single pass. At the hardware level this involves giving the hardware the ability to automatically determine when it needs to engage in viewport multicast, based on its understanding of the workload it's receiving. This is once again a case where something is being done in a fixed-function like fashion for performance reasons, rather than being shuffled off to slower shader hardware
ref: The NVIDIA GeForce GTX 980 Review: Maxwell Mark 2 (Page 4 DirectX 11.3/12)

Ryan has always seemed like he knew what he was talking about ... hmmm
 
Last edited by a moderator:
Wait i'm totally confused... are you suggesting that in the case of AnanandTech and Ryan Smith that he's wrong when he suggest that
No, what I am saying is that these two DirectX 11.3 features (conservative rasterization and sparse volume textures) are not Maxwell specific at all. Existing Intel and AMD GPUs should support these two DirectX 11.3 features just fine (when they have DirectX 11.3 compatible drivers available). Any DirectX 11.3 compatible GPU will support these two hardware features, and would thus be able to run any voxel rendering software built on top of these features.

NVIDIA actually does have one new GPU feature that nobody else had yet talked about: Viewport multicast. Geometry shaders already support sending triangles to multiple viewports, so it's hard to see the advantage without them exposing more technical details. I would guess that viewport multicast allows you to directly send the triangles from the vertex shader to multiple viewports. AMD GCN actually has a similar OpenGL extension (https://www.opengl.org/registry/specs/AMD/vertex_shader_viewport_index.txt) to send triangles directly from the vertex shader to a viewport (skipping the slow geometry shader).
 
I found some technical details about viewport multicast. NVIDIA is using it to boost cascaded shadow map performance in this sample:
http://docs.nvidia.com/gameworks/co...ples/opengl_samples/cascadedshadowmapping.htm

Just like I anticipated, the vertex shader outputs a bitmask and the triangle is copied to all the viewports marked in the bitmask. This is a fast path for geometry shader. It doesn't bring any new features, but it sidesteps the geometry shader slowness. According to our benchmarks, NVIDIA GPUs take around 1.5x hit when a geometry shader is enabled and AMD GPUs take around 2.7x hit (with pass through geometry shader that does nothing). Fast paths around the geometry shader slowness are very much welcome. This new NVIDIA extension (viewport multicast) seems to be a slightly improved version of the AMD vertex shader viewport index extension (for GCN 1.0). I am glad to see improvements in this area.

Hopefully sending triangles directly to viewports eventually becomes an official DirectX 12 feature (feature level 12_1?), since Maxwell and GCN at least support it. It has many more use cases than just voxel rendering.
 
Get your facts straight guys. nVidia never claimed that VXGI was something only their hardware could do. In fact they were very explicit in the 980 whitepaper that it can run on other architectures. They also didn't claim that conservative rasterization or any other DX11.3 feature was proprietary.

They did claim however that Maxwell has certain hardware features that make voxel based rendering faster.

http://international.download.nvidi...nal/pdfs/GeForce_GTX_980_Whitepaper_FINAL.PDF

One exciting property of VXGI is that it is very scalable - by changing the density of the voxel grid, and the amount of tracing of that voxel grid that is performed per pixel, it is possible for VXGI to run across a wide range of hardware, include Kepler GPUs, console hardware, etc.
 
Get your facts straight guys. nVidia never claimed that VXGI was something only their hardware could do. In fact they were very explicit in the 980 whitepaper that it can run on other architectures. They also didn't claim that conservative rasterization or any other DX11.3 feature was proprietary.

They did claim however that Maxwell has certain hardware features that make voxel based rendering faster.

http://international.download.nvidi...nal/pdfs/GeForce_GTX_980_Whitepaper_FINAL.PDF

Transscription from the Moon-Video:
"[GI ...] Unfortunately it has been too hard to do in realtime. Now with Maxwell however we have enough horsepower to do global illumination in realtime. So we get that same kind of suttle lighting effect in games and all these realtime applications, eh, because of the power of Maxwell."
There's more of it in regard how Maxwell made VXGI possible in the video.

I understand it is hype. Still it feels, too much ...
And it's OT in this thread, over and out. :)
 
Get your facts straight guys. nVidia never claimed that VXGI was something only their hardware could do. In fact they were very explicit in the 980 whitepaper that it can run on other architectures. They also didn't claim that conservative rasterization or any other DX11.3 feature was proprietary.[/url]
Nobody claimed that NVIDIA was claiming this. The whole discussion was about journalists and masses not understanding highly technical hardware details (and I am not talking about Anandtech here, they understand what they are writing). It has become much harder to write articles abot new graphics API features, as all the new features are highly technical. In the past new DirectX versions always had some new features that also non-techical people understood. Bump mapping, pixel shaders, geometry shaders, tessellation, etc.
 
Nobody claimed that NVIDIA was claiming this. The whole discussion was about journalists and masses not understanding highly technical hardware details (and I am not talking about Anandtech here, they understand what they are writing). It has become much harder to write articles abot new graphics API features, as all the new features are highly technical. In the past new DirectX versions always had some new features that also non-techical people understood. Bump mapping, pixel shaders, geometry shaders, tessellation, etc.


Ah, yeah sorry misunderstood your initial comment. Things like OIT and VXGI are a bit more complex but not that complex where reviewers can't get their heads around them. If they give it a cursory treatment it's because they just can't be bothered with the details.

The paper mentioned above is pretty explicit in stating that VXGI is an algorithm that doesn't require dedicated hardware. It also made it clear which DirectX features were helpful in increasing performance.
 
I see that NVIDIA's VXGI algorithm is good for 1 bounce. Is that enough to completely replace baked lightmaps? Seems like it wouldn't be.
 
Ah, yeah sorry misunderstood your initial comment. Things like OIT and VXGI are a bit more complex but not that complex where reviewers can't get their heads around them. If they give it a cursory treatment it's because they just can't be bothered with the details.
Order independent transparency and (voxel) global illumination are not new DirectX features. These are just examples of algorithms that could be implemented faster with the new DirectX 12 features. Most reviewers confuse these examples to be the actual new features of the API. DirectX 12 API doesn't include any direct support for OIT or global illumination.

The actual new DirectX features are highly technical: conservative rasterization, tiled (sparse/virtual) volumetric textures and rasterizer ordered views. With these new features a programmer could implement some OIT and voxel rendering algorithms more efficiently than before. But these features can be used to implement more efficient lighting and particle rendering as well.
 
Order independent transparency and (voxel) global illumination are not new DirectX features.

And I didn't claim they were.

These are just examples of algorithms that could be implemented faster with the new DirectX 12 features. Most performance confuse these examples to be the actual new features of the API. DirectX 12 API doesn't include any direct support for OIT or global illumination.

Reviews have historically not gone into great detail on individual DirectX features unless the impact is plainly obvious (like tessellation). And even then there wasn't a lot of discourse about specific details like hull/domain shaders etc. The focus has always been on what new features deliver and that's arguably the right approach for a video card review. But I agree there's no reason for them to misrepresent these algorithms as explicit DirectX features.



The actual new DirectX features are highly technical: conservative rasterization, tiled (sparse/virtual) volumetric textures and rasterizer ordered views. With these new features a programmer could implement some OIT and voxel rendering algorithms more efficiently than before. But these features can be used to implement more efficient lighting and particle rendering as well.


Yes, they're technical but reviewers should spend more time describing tangible consumer benefits introduced by things like OIT and VXGI and not implementation details. They have to consider the target audience after all.
 
I see that NVIDIA's VXGI algorithm is good for 1 bounce. Is that enough to completely replace baked lightmaps? Seems like it wouldn't be.


Nope. You can even see it in their VXGI demo video. It definitely leaves areas in shadow that would have received light in a more robust GI implementation.
 
Most reviewers confuse these examples to be the actual new features of the API. DirectX 12 API doesn't include any direct support for OIT or global illumination.
It's a big issue, but I'm not really sure how to fix it. I think ultimately games will just have to stand on their own, but how we remove the need for IHVs and OSVs to "market" new APIs is not clear. Similarly purely software "features" in drivers like forced MSAA, supersampling, SSAO, etc. are really stupid, but people wouldn't do it if it didn't sell cards.

I see that NVIDIA's VXGI algorithm is good for 1 bounce. Is that enough to completely replace baked lightmaps? Seems like it wouldn't be.
No, but the number of bounces is not even the biggest issue. Beyond all the hype, the thing that's getting swept under the rug is that voxel cone tracing is very approximate - it has huge errors and bias relative to reality and does not converge even if you throw more samples at it. Don't get me wrong, it's a good fit for many game-like applications as it is relatively quick and behaves reasonably in terms of temporal and spatial smoothness, but it is very loosely correlated with "real" light transport.

Thus that video about them "simulating" GI in real time to "test a scientific hypothesis" is pure marketing BS... it's to the level of being insulting. They first legitimize the moon landing conspiracy crazies, and then claim that their incredibly approximate GI that they tweaked to match reference photos (that are the very things that are in question) somehow adds anything scientific to the discussion vs. a good path tracer or - you know - an absolutely basic knowledge of science.

Anyways I'll avoid straying further into the weeds of that particular demo, but there but the topic of new features and how they are "marketed" to consumers is a relevant one. If desired I can split the thread along those lines but we'll see if it can accommodate that tangent for the time being :)
 
Thus that video about them "simulating" GI in real time to "test a scientific hypothesis" is pure marketing BS...

When I saw it a couple of days ago at first I thought it was a spoof on The moon landing conspiracies and then it ended... being completely serious.

On Topic, has the DX12 SDK got an ETA yet?
 
No, but the number of bounces is not even the biggest issue. Beyond all the hype, the thing that's getting swept under the rug is that voxel cone tracing is very approximate - it has huge errors and bias relative to reality and does not converge even if you throw more samples at it. Don't get me wrong, it's a good fit for many game-like applications as it is relatively quick and behaves reasonably in terms of temporal and spatial smoothness, but it is very loosely correlated with "real" light transport.

Yeah, I would say it's pretty much SSDO in 3D, but without the D - except if they store a normal distribution per voxel, then it might be somewhat interesting.
 
It's a big issue, but I'm not really sure how to fix it. I think ultimately games will just have to stand on their own, but how we remove the need for IHVs and OSVs to "market" new APIs is not clear. Similarly purely software "features" in drivers like forced MSAA, supersampling, SSAO, etc. are really stupid, but people wouldn't do it if it didn't sell cards.

Those things wouldn't be necessary if developers took care of business. I'm not sure why it's stupid. Many people have enjoyed those forced options over the years from both IHVs. Just look at the recent post-processing craze with FXAA, SMAA injectors etc.

No, but the number of bounces is not even the biggest issue. Beyond all the hype, the thing that's getting swept under the rug is that voxel cone tracing is very approximate - it has huge errors and bias relative to reality and does not converge even if you throw more samples at it. Don't get me wrong, it's a good fit for many game-like applications as it is relatively quick and behaves reasonably in terms of temporal and spatial smoothness, but it is very loosely correlated with "real" light transport.

Hmmm so is it something we should get excited about for upcoming game engines or is it just snake oil to sell nVidia hardware?
 
Hmmm so is it something we should get excited about for upcoming game engines or is it just snake oil to sell nVidia hardware?
Voxel cone tracing is currently the most promising real time GI algorithm. It beats LPV (by quality) and virtual point light based alternatives (by performance). Epic has been researching voxel cone tracing for years. Unfortunately it seems that they couldn't make it run at real time performance (30 fps) on current gen consoles. I am pretty sure that NVIDIAs solution reaches 30 fps, since the PC high end hardware is faster than consoles and Maxwell feature set is slightly better suited for that algorithm.

Voxel cone tracing is a bad approximation, but so are all the other real time GI algorithms. At least is scales much better compared to LPV (light propagation volume). LVP requires n^3 storage and the propagation pass requires n^3 processing (where N is quality = texels per meter). I don't know if anyone has tried to implement sparse LPV (more density near the surfaces). That should at least solve the light leaking issues.
 
Thus that video about them "simulating" GI in real time to "test a scientific hypothesis" is pure marketing BS... it's to the level of being insulting. They first legitimize the moon landing conspiracy crazies, and then claim that their incredibly approximate GI that they tweaked to match reference photos (that are the very things that are in question) somehow adds anything scientific to the discussion vs. a good path tracer or - you know - an absolutely basic knowledge of science.
Marketing BS, probably, but still a cool demo. ;)
 
Back
Top