Tessellation: Because The GS Isn't Fast Enough

Microsoft and AMD tend to get the most excited about tessellation whenever the topic of DX11 comes up. AMD jumped on the tessellation bandwagon long ago, and perhaps it does make sense for consoles like the XBox 360. Adding fixed function hardware to quickly and efficiently handle a task that improves memory footprint has major advantages in the living room. We still aren't sold on the need for a tessellator on the desktop, but who's to argue with progress?

Or is it really progressive? The tessellator itself is fixed function rather than programmable. Sure, the input to and output of the tessellator can be manipulated a bit through the Hull Shader and Domain Shader, but the heart of the beast is just not that flexible. The Geometry Shader is the programmable block in the pipeline that is capable of tessellation as well as much more, but it just doesn't have the power to do tessellation on any useful scale. So while most everything has been moving towards programmability in the rendering pipe, we have sort of a step backward here. But why?

The argument between fixed function and programmable hardware is always one of performance versus flexibility and usefulness. In the beginning, fixed function was necessary to get the desired performance. As time went on, it became clear that adding in more fixed function hardware to graphics chips just wasn't feasible. The transistors put into specialized hardware just go unused if developers don't program to take advantage of it. This made a shift toward architectures where expanding the pool of compute resources that could be shared and used for many different tasks became a much more attractive way to go. In the general case anyway. But that doesn't mean that fixed function hardware doesn't have it's place.

We do still have the problem that all the transistors put into the tessellator are worthless unless developers take advantage of the hardware. But the reason it makes sense is that the ROI (return on investment: what you get for what you put in) on those transistors is huge if developers do take advantage of the hardware: it's much easier to get huge tessellation performance out of a fixed function tessellator than to put the necessary resources into the Geometry Shader to allow it to be capable of the same tessellation performance programmatically. This doesn't mean we'll start to see a renaissance of fixed function blocks in our graphics hardware; just that significantly advanced features going forward may still require the sacrifice of programability in favor of early adoption of a feature. The majority of tasks will continue to be enabled in a flexible programmable way, and in the future we may see more flexibility introduced into the tessellator until it becomes fully programmable as well (or ends up just being merged into some future version of the Geometry Shader).

Now don't let this technical assessment of fixed function tessellation make you think we aren't interested in reaping the benefits of the tessellator. Currently, artists need to create different versions of their objects for different LODs (Level of Detail -- reducing or increasing complexity as the object moves further or nearer the viewer), and geometry simulation through texturing at each LOD needs to be done by pixel shaders. This requires extra work from both artists and programmers and costs a good bit in terms of performance. There are also some effects than can only be done with more geometry.

Tessellation is a great way to get that geometry in there for more detail, shadowing, and smooth edges. High geometry also allows really cool displacement mapping effects. Currently, much geometry is simulated through textures and techniques like bump mapping or parallax occlusion mapping or some other technique. Even with high geometry, we will want to have large normal maps for our lighting algorithms to use, but we won't need to do so much work to make things like cracks, bumps, ridges, and small detail geometry appear to be there when it isn't because we can just tessellate and displace in a single pass through the pipeline. This is fast, efficient, and can produce very detailed effects while freeing up pixel shader resources for other uses. With tessellation, artists can create one sub division surface that can have a dynamic LOD free of charge; a simple hull shader and a displacement map applied in the domain shader will save a lot of work, increase quality, and improve performance quite a bit.

If developers adopt tessellation, we could see cool things, and with the move to DX11 class hardware both NVIDIA and AMD will be making parts with tessellation capability. But we may not see developers just start using tessellation (or the compute shader for that matter) right away. Because DirectX 11 will run on down level hardware and at the release of DX11 we will already have a huge number cards on the market capable of running a subset of DX11 bringing with it a better, more refined, programming language in the new version of HLSL and seamless parallelization optimizations, we will very likely see the first DX11 games only implementing features that can run completely on DX10 hardware.

Of course, at that point developers can be fully confident of exploiting all the aspects of DX10 hardware, which they still aren't completely taking advantage of. Many people still want and need a DX9 path because of Vista's failure, which means DX10 code tends to be more or less an enhanced DX9 path rather than something fundamentally different. So when DirectX 11 finally debuts, we will start to see what developers could really do with DX10.

Certainly there will be developers experimenting with tessellation, but these will probably just be simple amplification to get rid of those jagged edges around curved surfaces at first. It will take time for the real advanced tessellation techniques everyone is excited about to come to fruition.

So What's a Tessellator? One Last Thing and Closing Thoughts
Comments Locked

109 Comments

View All Comments

  • just4U - Wednesday, February 4, 2009 - link

    While there might be some programs out there that definitely do take advantage of 8G of ram.. I haven't noticed that for Vista. It seems to hit a sweet spot at 4Gigs (or 3.3 for 32bit) I don't think 2Gigs of ram is optimal for Vista at all tho, and always push for 4 with all my builds.
  • dzmcm - Tuesday, February 3, 2009 - link

    Do yourself the biggest favor and Google kat mouse. I used ubuntu for a while and got spoiled by the mouse wheel functionality. This little program will allow your to scroll windows not in focus. And it adds extra functionality to the middle mouse button (which I just dissable). Plus you can set up per application rules.
  • SoCalBoomer - Monday, February 2, 2009 - link

    Fail. Sigh.

    A: 2Gigs works great. 3 Works FINE. 4 works happily with 64.
    B: DECENT video cards work fine. By Decent, I mean anything in the past couple of years - nVidia 7xxx cards, for instance. PCI vid cards? Prolly not. . .
    C: Why not just do it within Windows? UAC is easy to turn off. Windows Defender actually works okay. Readyboost doesn't do anything if you don't turn it on, etc.

    "Nothing like Ubuntu though" - true. I have Ubuntu on my laptop (although it's got Win7 on it and is a TON more functional now) but then Ubuntu doesn't have ANY common use programs written for it - Open Office is about it and . . . much as I like it, it's missing stuff that I use every day on my desktop.

    Games? Well, yes, but there are things other than games - like Office. . . yeah, you know, that behemoth office suite that controls the world? Yeah, not necessarily my fav (except for OneNote - which is awesome) but you gotta do it.


    You can't make your mouse work the way you want and THEREFORE Vista fails? Dude. . . epic fail.
  • stmok - Saturday, January 31, 2009 - link

    Vista IS a marketing failure.

    * It failed to get massive adoption as expected by Microsoft. A good majority of people and businesses are sticking with XP. Go and actually search for world wide statistics, and you'll see for yourself.

    * No matter how much Microsoft spent on marketing (see Seinfield+Gates ads and Mojave), it never caught on...Viral and deceptive marketing don't work.

    * Why do you think the next one is called "Windows 7" (even though you can basically call it Windows Vista Second Edition). Simple. The name "Vista" is a marketing failure. Its kryptonite to the Windows brand name. That's why they dropped it.

    Linux works well when the user has strong motivations to learn and adopt it. When they don't, they are better off using something like Linux Mint (which has all the video codec, and Flash, etc pre-installed) or not even using Linux at all. (Which is better for all involved).

    When a user treats Linux like Windows, it just doesn't work. Hence, all the complaining about how Linux on the desktop won't happen. (Linux was never intended for the desktop. The point was to create a cheap Unix-like solution for the x86 platform).

    Many don't realise that in Linux, the people take responsibility, not a company like Apple or Microsoft. Its about getting your butt off the ground and doing things to make it happen.

    Nothing happens when all you do is sit and complain how Linux isn't this all or that. Its up to you (if you choose to), to do something about it...This is identical to life itself.
  • gochichi - Thursday, February 19, 2009 - link

    If Microsoft wants to go Windows 7 early, they need to reconsider their pricing for Vista upgraders. B/c I have 3 Vista computers and I'm unwilling to spend more than $100.00 to upgrade all 3 of them to Windows 7.

    That's $33.33 per computer as my ceiling. And I'm not going to upgrade one and not all of them. I have more than earned the right to a good price from Microsoft. If they want to charge me full price for Office 2010 (or whatever it'll be called) that's fine, but OS upgrades can't be $100+ a pop, not if Microsoft wants to change OS's every two years.

    I kind of wonder if Vista will pick up traction in the piracy circles once 7 is released. I don't even know if I'll want to upgrade period... I mean, Vista really is fine, and why fix what aint broke.

    I've tried Windows 7 and other than being unusually unstable (which is "alright" technically because it's a beta) it does offer up some decent usability improvements. I'm quite sure that most Vista users will feel like I do... namely, that we should be getting the cosmetic upgrades for free... since we're footing their bills and all. Windows 7 is just warmed over Vista... and frankly if you're excited about Windows 7 yet you "hate" Vista... you're weird b/c they're the same thing.

    Like I said, Windows 7 is UNSTABLE which given the "mission statement" is truly alarming. I mean, I'm running Windows 7 by itself (no apps installed) and yet sometimes Windows Explorer needs to restart (one of my biggest gripes (probably the only legitimate one) with Vista).

    I guess those of us even considering buying OSes separately from PCs are crazy, and now with Windows 7 we'll be even crazier (pricing pending). Hopefully Microsoft will offer us a hand so we can all leave Vista (not because it's horrible, just for uniformity) together. Otherwise, Windows 7 will probably have even worse adoption rates than Vista.

    Microsoft: Don't be greedy! Don't split your user base so much. Let me have computers with the same OS without charging me an arm and a leg. Let Vista users have access to DirectX 11 too... b/c the "gaming" community is just going to backlash and boycott 7 like they did Vista.

    We all "naturally" want the latest version of the OS, coercion isn't necessary at all.
  • x86 64 - Thursday, February 26, 2009 - link

    Nah, Vista is already easier to pirate than XP ever was. All you need is a BIOS with an SLIC table and a VLK (easily done yourself with some research). Then you activate it using Vista's Software License Service (SLsvc.exe the way big OEM's like Dell and HP mass activate PC's) and MS can't tell the difference between a bogus or a legit installation, unless they overhaul their validation methods (not likely).

    With XP you had to deal with trying to remove the WGA nagware. Also there are some WinXP Pro student editions floating around that don't need activation because they don't contain WGA. The thought was that eventually MS would ban these keys but it has yet to happen.

    I imagine Windows 7 will be just as easy as to pirate as Vista, either through a BIOS softmod or foolproof BIOS hardmod.
  • nilepez - Wednesday, February 4, 2009 - link

    WTF are you talking about? Why would MS have expected Vista to get 30 or 40% market share after 2 years?

    For all the BS that XP is God and sold like gangbusters out the door, a little research shows that XP had less than 40% market share in 2005

    You'd have to be a complete idiot to think that Businesses were transition to Vista quicker than they transitioned to XP.


  • swaaye - Monday, February 2, 2009 - link

    I think Vista has "failed" only because there's little reason for the vast majority of users to switch to it. It's very expensive to upgrade to it, and there's just little reason to. The fact of the matter is that for everyone that doesn't care about DX10 gaming, XP can do anything Vista can.

    Personally, I think Vista is ok. If Win 7 improves on it, there's nowhere to go but up. But I also have no dislike of XP, either, and certainly see that it has its place on every PC with <2GB RAM.
  • michaelklachko - Monday, February 2, 2009 - link

    That's a good post. Especially about Linux. Thanks!

Log in

Don't have an account? Sign up now