nVidia's Island DirectX 11 Demo runs slowly on AMD GPUs

Yeah, I've seen triangle rates in the range of 770M also on the rather oldih Xvox-Demo (which btw, seems to scale exceedingly well) and that's of course without tessellation (it's DX8!).
edit: Even with AMDs own terrain tessellation (DX9) from the DirectX SDK, there's a maximum of ~580ish M triangles I've seen.

As to why tessellation on current AMD hardware is slower than expected has been discussed here already, but no one could come up with decisive evidence for either of the proposed theories.
How fat vertices has been used in the testing? Storing a full tangent space matrix to the input vertices, replicating it to all tessellated vertices and transforming/interpolating it in domain shader for each generated vertex could become a perf hit easily. As tangent frame calculation can be moved to the pixel shader (by using gradient instructions) and some games already are using this trick, it should be benefical to test the tessellation speed with as light input vertices as possible (pixel shader tangent frame calculation will be popular with tessellation).

It should, but it's often an inexact science because the HS has to predict whether the DS will make triangles visible even when the patch is off-screen or backfacing.
Yes, it's kind of inexact for culling backface triangles, but very efficient and highly usable for culling offscreen triangles before the tessellation. As you have full control over DS and HS, you know exactly the maximum value that a single vertex can move by your displacement mapping. In our engine for example all displacement maps are 8 bit snorm maps (artists use full range from black to white), and there is a per object (float) scale factor for the displacement. In this case you can just add the displacement scale factor to your viewport culling test, and you get a perfect culling result (and a major performance boost).
 
Yes, it's kind of inexact for culling backface triangles, but very efficient and highly usable for culling offscreen triangles before the tessellation.
Yeah, I know, I was just being lazy in my reply.
 
Last edited by a moderator:
The API being vendor neutral doesn't mean every app treats all HW equally. You can tune your algorithm to run better on one platform or another, just like with CPU code.

YES! I'm still confused why this is such a difficult concept for some people to grasp, unless of course these people aren't developers.
 
About the water shaders in the Island demo, i'v been curious for a long while but never came to ask anyone about, is the cyan/torquoise in the waves crest actual sub-surface scattering being calculated or some clever fake aproach? It makes it look incredibly realistic!(ish, more natural prob a better word)

 
About the water shaders in the Island demo, i'v been curious for a long while but never came to ask anyone about, is the cyan/torquoise in the waves crest actual sub-surface scattering being calculated or some clever fake aproach? It makes it look incredibly realistic!(ish, more natural prob a better word)
Not sure what you mean by "actual sub-surface scattering"... they aren't path tracing subsurface rays if that's what you mean :) It's a specific term in the shader, but a relatively simple one based on the light and viewer directions and wave orientation.
 
Thanks, yes that's what i meant, if there was some form of ray-tracing and radiosity into calculating the "light"&color diffusion.

And for a relatively simple shader it does a good convincing job at resembling subsurface scattering :) wouldn't you say? For me at least it does(edit: well in a screenshot the effect is not as convincing), reminds me of some parts of crysis ice levels.
 
Last edited by a moderator:
Looks like Nvidia Island demo - does NOT run well on ATI hardware (Radeon 6950)

islandd.png
 
And for a relatively simple shader it does a good convincing job at resembling subsurface scattering :) wouldn't you say?
Yeah it looks good for the sort of "tropical" water effect. Not sure how well it would work in other types of water shaders.

Looks like Nvidia Island demo - does NOT run well on ATI hardware (Radeon 6950)
It runs ok if you turn the tessellation level down from "absurd" to something more reasonable. Disabling caustics helps a lot too. Note that the quality drop when you drop the polygon sizes is not really indicative of what it "could" look like with lower triangle density... it looks bad merely because they're using a pile of per-vertex terms with the assumption that the triangles are tiny. Reasonable per-pixel normals, etc. produce convincing water even with low or moderate levels of tessellation.
 
The Catalyst(11.1a) Tesselation Limiter works perfectly in this demo... it works too in 3dmark11 and Unigine Heaven... but dont work in Lost Planet 2 and Endless City Demo...
Why?
Different DX API calls?

???
 
The Catalyst(11.1a) Tesselation Limiter works perfectly in this demo... it works too in 3dmark11 and Unigine Heaven... but dont work in Lost Planet 2 and Endless City Demo...
Why?
Different DX API calls?

???
It shouldn't require an API call so it's strange that it wouldn't work.
 
The Catalyst(11.1a) Tesselation Limiter works perfectly in this demo... it works too in 3dmark11 and Unigine Heaven... but dont work in Lost Planet 2 and Endless City Demo...
Why?
Different DX API calls?

???

Because as stated in the 11.1a release notes, It's not fully functional.
 
Back
Top