AMD Radeon RDNA2 Navi (RX 6500, 6600, 6700, 6800, 6900 XT)

Perhaps the RT performances we're seeing in Cold War and Legion is more representative of what to expect on future multiplatform titles than what we've had with designed-for-RTX titles.
You mean +30% uplift for Ampere over RDNA2? because that's what almost every benchmark out there is showing, Cold War in particular is having Ampere enjoying a 50% lead.
 
According to Toms Hardware, even the 2080Ti is faster than 6900XT in Cold War.

wsc2yTFn482dDSTmbnYqa7-970-80.png.webp


Same for Control:

KggsJ54fA6v6CYRmPDCyqW-970-80.png.webp


Metro is a close match though:

aLREW7XuCP9XE4DRzy2dbY-970-80.png.webp


Same for Watch Dogs Legion

HGjoUwqafwrGU2PnAJDFEL-970-80.png.webp


https://www.tomshardware.com/news/amd-radeon-rx-6900-xt-review
 
Mesh shaders first appeared with Tyring
Yep, I thought about this variant, but probably doing transforms per ray on SIMD is cheaper, have no idea to be honest.
Pretransforming instances at BVH build time would be borderline suicidal for performance (and memory usage) in all but a handful of uninteresting scenarios.

Rays are simply transformed into the reference frame of an instance at traversal time. On Turing and Ampere that ray transformation is done with dedicated HW, on RDNA2 is probably done in SW on the CUs.
 
I don’t know what tessellation shaders are but mesh shaders were introduced in Turing. Can’t really trace it back to AMD.
Hardware tessellation (not shaders) was introduced by the R500 / Xenos in the X360. It was also present in all Terascale 1 chips but AFAIK it was never used in games as it wasn't part of DirectX yet.
Mesh shaders have a precursor in Vega's Primitive Shaders.

The term used was "tracing (the tech) back to", not the first IHV to use the final name.
 
Rays are simply transformed into the reference frame of an instance at traversal time. On Turing and Ampere that ray transformation is done with dedicated HW, on RDNA2 is probably done in SW on the CUs.

Is there really a lot of math involved in transforming a ray? Seems like something that should be relatively cheap to do on CUs.

The real challenge with AMD’s approach seems to be divergence particularly for more stochastic RT use cases like AO and GI. Nvidia’s MIMD black boxes should fare better on those.
 
Hardware tessellation (not shaders) was introduced by the R500 / Xenos in the X360. It was also present in all Terascale 1 chips but AFAIK it was never used in games as it wasn't part of DirectX yet.
Mesh shaders have a precursor in Vega's Primitive Shaders.

The term used was "tracing (the tech) back to", not the first IHV to use the final name.
I think it was ued via n patches? Serious Sam had it I think and maybe a few other games?
 
I think it was ued via n patches? Serious am had it I think and maybe a few other games?

Double post -but Yeah, it is pre Xbox 360 on ATi. Truform/N Patches
https://en.m.wikipedia.org/wiki/ATI_TruForm
Yes, N-Patches aka TruForm was the first "tessellation" in consumer hardware. NVIDIA had their RT-Patches for few drivers back then too, but it got quickly shot down (IIRC it was simply way too slow and only 1-2 games ever implemented it).

Was there ever a statement or link from AMD equating Mesh shaders to Primitive shaders? I don't recall seeing any statement stating the two are interchangeable.
This post details quite well how the two are related: https://www.resetera.com/threads/primitive-shader-amds-patent-deep-dive.186831/
I don't think anyone claimed it's "interchangeable", just that it can be traced back to primitive shaders.
 
Double post -but Yeah, it is pre Xbox 360 on ATi. Truform/N Patches
https://en.m.wikipedia.org/wiki/ATI_TruForm

You're right, I didn't remember TruForm as precursor to tessellators.

I somehow always thought of TruForm/N-patches and "current-day" tessellators as very different approaches, since the former used quads that according to John Carmack presented many limitations.

Still, I do remember playing Serious Sam on a Radeon 8500 with TruForm enabled and noticing how the weapons looked so much better.
 
This post details quite well how the two are related: https://www.resetera.com/threads/primitive-shader-amds-patent-deep-dive.186831/
I don't think anyone claimed it's "interchangeable", just that it can be traced back to primitive shaders.
Nice read from an enthusiast posting his thoughts.

Would have been a great marketing opportunity for AMD to capitalize on. There doesn't seem to be any "official" materials that link the origins of mesh shaders to primitive shaders.
It "might be similar" but even AMD has not been promoting this line of thought.

Edit: Wasn't primitive shaders a broken feature on Vega, and was entirely dropped in 2018.
 
Pretransforming instances at BVH build time would be borderline suicidal for performance (and memory usage) in all but a handful of uninteresting scenarios.
For instancing, probably it will, but this doesn't exclude possibilities of instance transformation optimizations at BVH build time as I noted before.
There are tons of recommendations around geometry topology, how many meshes you should use per TLAS instance (BLAS), etc, etc.
BVH quality highly depends on geometry topology, how well geometry is aligned with BBoxes and other factors, and obviously developers don't optimize everything, so there should be a lot of possibilities to optimize/workaround the stuff during BVH building process.
Fast AABBs transforms would be a requirement for such optimizations. Unfortunately, this is yet another area where we don't know how well RDNA 2 fares against Ampere/Turing.

Hardware tessellation (not shaders) was introduced by the R500 / Xenos in the X360. It was also present in all Terascale 1 chips but AFAIK it was never used in games as it wasn't part of DirectX yet.
Modern alike depth aware adaptive tessellation with displacement mapping was introduced way before that in Matrox Parhelia 512 in 2002.
Also, DX11 style tessellation is quite different to tessellation in R500 / Xenos, it comes after vertex shaders and has the hull and domain shaders.
 
Last edited:
...

Edit: Wasn't primitive shaders a broken feature on Vega, and was entirely dropped in 2018.

It was broken on Vega, but afaik it's working on RDNA.

"The one exception to all of this is the primitive shader. Vega’s most infamous feature is back, and better still it’s enabled this time. The primitive shader is compiler controlled, and thanks to some hardware changes to make it more useful, it now makes sense for AMD to turn it on for gaming"

https://www.anandtech.com/show/14528/amd-announces-radeon-rx-5700-xt-rx-5700-series/2
 
this is yet another area where we don't know how well RDNA 2 fares against Ampere/Turing.
In general, RDNA2 appears to use Level 2 acceleration for ray tracing, while Turing and Ampere are Level 3.

Level 2. Ray-box and ray-triangle testers can be implemented in hardware using standard fused multiply-add operations on GPUs but this repeated operation is expensive (cycles/power/area cost). A Level 2 solution offloads a large part of the ray tracing job to dedicated hardware improving efficiency.

Level 3. Bounding Volume hierarchical (BVH) processing provides a more extensive offloading of data flow management in hardware. BVH helps cut down the amount of ray testing needed through a hierarchical testing system thus making realtime ray tracing possible. Tracing a ray through the acceleration structure is much more complicated than just ray-box and ray-triangle testing. Complex and dynamic data flow is required where each box test step decides what happens next, e.g., more hierarchical box tests and/or triangle tests. There are significant opportunities to streamline this process by moving the full BVH tree structure walking into hardware. It can improve execution efficiency, bandwidth, and caching efficiency, enabling the next level of ray tracing acceleration.

Siliconart’s new MIMD ray tracing hardware design can be thought of as a level three device because its RayCore MC handles static and dynamic BVH structure to find hit points of rays.

Level 4 and 5 take more die area and require even more highly specialized units, this is an area where NVIDIA might venture forward in their upcoming archetictures.

https://gfxspeak.com/2020/09/28/the-levels-tracing/
 
just that it can be traced back to primitive shaders.
It can be traced back to mesh cluster rendering in Assassins Creed Unity.
Mesh Shaders are just compute shaders with direct interface to rasterizer, there are already a lot of games with geometry processing in compute shaders, so mesh shaders can serve as an optimization for such pipelines in certain cases (unless devs went further away and replaced rasterization too like Epic did in UE5).
 
AMD Primitive Shaders are alive and are not the same as Mesh Shader becasue now at AMD Navi 21 all Geometry is now running over primitive shaders. (See twitter Post)
I waiting also of results from @CarstenS about gemoetry output he hintet that he reed strange values and that he had contactet AMD about this behaviour.
Need to sort out irregularities first, waiting for answers from AMD right now.
 
In general, RDNA2 appears to use Level 2 acceleration for ray tracing, while Turing and Ampere are Level 3.





Level 4 and 5 take more die area and require even more highly specialized units, this is an area where NVIDIA might venture forward in their upcoming archetictures.

https://gfxspeak.com/2020/09/28/the-levels-tracing/
I think both AMD and nVidia's implementation are Level 3. The difference is in the traversal, not the BVH.
 
Back
Top