ATI's "Toy Shop" Demo is jaw-dropping

R300King! said:
Thanks Tim, and wireframe.
This meaning the 7800GTX will run it slower (about 30-50%) than X1800XT, or at 30-50% of the X1800XT speed?

Unfortunately this demo will not run on the G70 (or any nvidia part that I am aware of). The demo uses some texture and shadow buffer formats that are not available on nvidia's parts.

We did try running the brick shader on a G70 a couple of months ago, we removed everything except for the brick surface of the toy store building (no rain, no water, no shadows, no streets, no car, etc, etc) and the frame rate was around 12.5 FPS. This particular shader makes heavy use of dynamic branching.

--Chris
 
rwolf said:
What's your take Chalnoth? Would the 7800GTX run the Toy Shop demo well?
Since I really have no idea how the demo was architected, I can't say. I can say that nVidia could possibly make a very similar demo that would run very well on the 7800 GTX. But you'd probably have to, for example, be more careful about the use of dynamic branching.
 
chrisATI said:
Unfortunately this demo will not run on the G70 (or any nvidia part that I am aware of). The demo uses some texture and shadow buffer formats that are not available on nvidia's parts.

We did try running the brick shader on a G70 a couple of months ago, we removed everything except for the brick surface of the toy store building (no rain, no water, no shadows, no streets, no car, etc, etc) and the frame rate was around 12.5 FPS. This particular shader makes heavy use of dynamic branching.

--Chris


Thanks for your response. ..um, who is "we"? :D Do you work for ATI?

If YES:

Why will this demo not run on Nvidia HW?

Is it because of the special formats you speak of?

Shouldn't Nvidia's part be able to at least run this demo in its entirety(even if it might crawl) being that both cards are using SM 3.0?

Will using these special "formats" make it difficult for game programmers?

Did you design this demo so the G70 would have a hard time running it? (not that I blame you on this one ;))

What is the frame rate of the X1800XT while running this demo? (min to max)

What's the lowest xRxxx card that could run this demo? (ex: X1600XT?, X1800XL?)




If NO:

How do you know all this? :D


Thanks. :)
 
Given that the demo will not run on nVidia hardware, there would be no reason for ATI to write it to not run well on that hardware.

It is rather more likely that the developers of the demo were given one task: push ATI's next generation hardware to its limits in every way you can. This would mean make use of dynamic branching and FP16 rendertargets.

Similarly, nVidia could produce a demo that wouldn't run on ATI hardware at all, or could only be emulated by reducing performance. For example, nVidia could produce a demo that makes use of vertex textures and FP16 source art (and thus FP16 texture filtering). It could not be directly run on ATI hardware, but it would be possible to emulate this functionality at a significant performance hit (particularly the vertex texturing could take a significant amount of additional work to emulate).

But, if you wanted to run a similar-looking demo that would run well on both hardware, you could. You'd rewrite the vertex shader so that the texture is done away with entirely, just perturbing the vertices via the CPU or with render to vertex buffer/texture if need be. You'd pack the source art into another format that would still give good dynamic range but would be in an integer format (similar to Humus' recent HDR demo).

So, as it stands, I'm sure that neither of the demos that ATI has put forth to showcase the X1800 would run well on nVidia hardware if the texture formats were tweaked to formats that nVidia supports. But since the GeForce 7800 GTX really is in the same class as the X1800, one could rewrite both demos to make use of different rendering algorithms that would also work well on the GTX, though I can't guarantee that this could be done while keeping the algorithms mathematically identical.
 
Chalnoth said:
Given that the demo will not run on nVidia hardware, there would be no reason for ATI to write it to not run well on that hardware.

It is rather more likely that the developers of the demo were given one task: push ATI's next generation hardware to its limits in every way you can. This would mean make use of dynamic branching and FP16 rendertargets.

Similarly, nVidia could produce a demo that wouldn't run on ATI hardware at all, or could only be emulated by reducing performance. For example, nVidia could produce a demo that makes use of vertex textures and FP16 source art (and thus FP16 texture filtering). It could not be directly run on ATI hardware, but it would be possible to emulate this functionality at a significant performance hit (particularly the vertex texturing could take a significant amount of additional work to emulate).

But, if you wanted to run a similar-looking demo that would run well on both hardware, you could. You'd rewrite the vertex shader so that the texture is done away with entirely, just perturbing the vertices via the CPU or with render to vertex buffer/texture if need be. You'd pack the source art into another format that would still give good dynamic range but would be in an integer format (similar to Humus' recent HDR demo).

So, as it stands, I'm sure that neither of the demos that ATI has put forth to showcase the X1800 would run well on nVidia hardware if the texture formats were tweaked to formats that nVidia supports. But since the GeForce 7800 GTX really is in the same class as the X1800, one could rewrite both demos to make use of different rendering algorithms that would also work well on the GTX, though I can't guarantee that this could be done while keeping the algorithms mathematically identical.

I understand what you're saying, however, I want to know if Nvidia can put together this same demo (however way they wanted to), however it would work best on their hardware, but I'm talking the exact same look and feel of it. I want it to run as smooth and look just as good. No lower FP16 quality, I'm talking 32FP quality with everything that this ATI demo does. Do you think Nvidia could do this and make it run on their G70, yes or no?
 
Chalnoth said:
Since I really have no idea how the demo was architected, I can't say. I can say that nVidia could possibly make a very similar demo that would run very well on the 7800 GTX. But you'd probably have to, for example, be more careful about the use of dynamic branching.

Your right. Doom3 is a good example of that.
 
rwolf said:
Your right. Doom3 is a good example of that.
I'm just not sure that's the case, not with more recent ATI hardware. Because it seems every OpenGL game, stencil shadows or no, follows the same pattern.
 
chrisATI said:
Unfortunately this demo will not run on the G70 (or any nvidia part that I am aware of). The demo uses some texture and shadow buffer formats that are not available on nvidia's parts.

We did try running the brick shader on a G70 a couple of months ago, we removed everything except for the brick surface of the toy store building (no rain, no water, no shadows, no streets, no car, etc, etc) and the frame rate was around 12.5 FPS. This particular shader makes heavy use of dynamic branching.

--Chris

Here's a juicy question for you, how would this demo run on Xenos?
 
chrisATI said:
Unfortunately this demo will not run on the G70 (or any nvidia part that I am aware of). The demo uses some texture and shadow buffer formats that are not available on nvidia's parts.
I think it will only be in ATI's best interests if you make it work on NV hardware.

Can you just use alternate formats? I assume you're talking about single/double channel FP formats, but I'm not sure. Maybe floating point depth maps to be used as a shadow buffer?
 
jb said:
Why is this any different then NV demos that dont run on ATI hardware???
The only real difference is that NV typically uses OpenGL in conjunction with their own proprietary extensions, so you don't really expect to be able to run it on ATI hardware.
 
I'm sure if it's possible to do, someone will write a 'wrapper' of some description - that's always happened in the past hasn't it?
 
Mariner said:
I'm sure if it's possible to do, someone will write a 'wrapper' of some description - that's always happened in the past hasn't it?
Not always. Once or twice is more like it.
 
Why ATI demos don't work on NV hardware

Mintmaster said:
I think it will only be in ATI's best interests if you make it work on NV hardware.

Can you just use alternate formats? I assume you're talking about single/double channel FP formats, but I'm not sure. Maybe floating point depth maps to be used as a shadow buffer?

Hi. I work on ATI's demo team and I'd like to comment on this. Sometimes I would also like to see how our demos run on Nvidia's hardware, so I understand your interest in this. However, the point of our group is to make great-looking demos that stress ATI hardware and really show people what it is capable of. This means using features like the latest compressed texture formats, 1010102 backbuffers (in the case of The Assassin and Toyshop), certain vertex formats to reduce vertex data size, and so on.

Due to finite resources (manpower, etc.) we'd have to choose between making the demos run on non-ATI hardware or adding more stuff and making them even better on ATI hardware. I think it's not too surprising that we choose the latter.

On an unrelated note, we really love reading the feedback on the demos that is coming from you guys. :) Thanks a lot for sharing your thoughts!

-Thorsten Scheuermann, ATI 3D Application Research Group
 
Hi Thorsten - just wanted to say you guys did a great job on the Toyshop demo - that's the best looking real-time rain I've seen yet. It's also very nice to see POM in action on a non-trivial scene.

This is maybe the wrong thread for this, but I saw a slide on the demo where it was stated that much of the rain was not rendered using particle systems, but was composited into the scene. Would it be possible to elaborate on how this was done? Unfortunately I don't have an r520 to try the demo out on, but judging by the video, it looks like the rain drops are volumetrically lit... is this the case, and if so, could you share how it was done?

I completely understand if you can't provide details, in any event, congratulations on a fantastic job.

Regards,
Serge
 
Why ATI demos don't run on NV hardware, and Rain in ToyShop

Hey guys!

My name is Natasha Tatarchuk, I work on ATI demo team along with Thorsten (and I was the tech lead for the ToyShop demo). Thanks so much you guys for some of the awesome things you've said about our demo. It's sweet to hear these good things about the demo we put so much hard work into. :D

Now let me answer some of your questions:

psurge said:
Hi Thorsten - just wanted to say you guys did a great job on the Toyshop demo - that's the best looking real-time rain I've seen yet. It's also very nice to see POM in action on a non-trivial scene.
Thanks so much, man!

psurge said:
This is maybe the wrong thread for this, but I saw a slide on the demo where it was stated that much of the rain was not rendered using particle systems, but was composited into the scene. Would it be possible to elaborate on how this was done? Unfortunately I don't have an r520 to try the demo out on, but judging by the video, it looks like the rain drops are volumetrically lit... is this the case, and if so, could you share how it was done?
Serge, thanks for the interest in that. I won't go into the exact implementation details, but I have developed a new technique for rendering the rain using post-process compositing for the impression of falling rain. The basic premise of it is to simulate some of the lighting effects from the environment (along with rain responding correctly to the lightning flashes, the subtle refraction of water droplets and the mist that is created from all of the rain drops in the air) in a single shader that's composited on the scene. The rain motion is controlled with velocity / direction vectors and I do some additional tricks to make sure that the raindrop movement isn't repeated visually. While it has its drawbacks, it works quite well for many scenarios. We do also use particles for additional rain effects - for example we have rain drop splashes and rain drops falling off various objects (you can see it from ledges of the toy shop, the neon sign, etc).

We are having developer days next week where we will present the breakdown of many of the ToyShop effects in variety of presentations and we will post the decks afterwards. We will also have additionally some whitepapers that we've written on various algorithms (like POM) for you guys on our website when we post the executables. But let us know if there are any algorithms you are interested in hearing about and we'll try our best to break it down for you. If you want to go to the dev days, email devrel@ati.com for details.

Now on the fun subject of what will happen when we actually release the exes.. :)

Mariner said:
I'm sure if it's possible to do, someone will write a 'wrapper' of some description - that's always happened in the past hasn't it?
Like Thorsten and Chris said (by the way, both Thorsten and Chris work on the demo team, so they've got the 'insider' knowledge too), we use some of the features that aren't supported on NVidia hardware that are extremely useful for our demo (1010102 formats which allow huge memory savings with good HDR quality, the depth texture formats, 3DC compression and vertex data formats without which this demo would simply not be able to fit into the graphics memory, etc).

Also, the parallax occlusion mapping technique really takes advantage of the excellent dynamic branching that X1K cards have.
Whle developing this technique, I ran performance tests on G60 / G70 cards versus the R520 generation and on a typical parallax occlusion mapped scene, performance on G6/70 generation cards is around 30-50% of the R5XX cards depending on the situation.

So if you wanted to make this demo look exactly as it stands right now and run as smoothly as it does (the average frame rate is around 25-28fps) (as R300King! wanted), it simply would not happen on the current latest generation hardware from NVidia. Even fitting this demo into memory wouldn't work without 1010102 and 3Dc and additional vertex data formats that we use (dec3n, for example). The demo uses a huge amount of texture and vertex data.

Of course, one could think up alternative ways to implement some of the algorithms that we have used in this demo. For example, you could use relief mapping instead of parallax occlusion mapping. The relief mapping technique performs well on both ATI and NVIDIA hardware because it doesn't utilize dynamic branching and also makes heavy use of the dependent texture reads. However, in my quality results tests for comparison of these two techniques, the relief mapping technique displayed visual artifacts on our current dataset.

But since we too love comparing things against all possible platforms, we will post some of our demo effects in RenderMonkey workspaces and you can certainly run them on both platforms. :cool:

wireframe said:
Anyone know if Luna and other 7800 demos function on X1000 hardware?
We have tried and they don't.

pjbliverpool said:
Here's a juicy question for you, how would this demo run on Xenos?
The demo could run on Xenos and will run quite well. But we haven't tested this theory.

Again, thanks you guys. It's awesome to read this lively discussion and to see the interest this demo have generated!
 
Thanks for stopping by with the info, Chris, Thorsten, and Natasha! :smile:

It must have been a very, very cool feeling to hear the Big Boss cite Guru3D's reaction to your demo as his very favorite review snippet in the conference call last week. Good on y'all. . .
 
Last edited by a moderator:
Back
Top