The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.
← Previous page

    DX10 nVidia

    Discussion in 'Hardware Components and Aftermarket Upgrades' started by SavantEdge, Jan 9, 2007.

  1. jak3676

    jak3676 Notebook Consultant NBR Reviewer

    Reputations:
    13
    Messages:
    184
    Likes Received:
    0
    Trophy Points:
    30
    Ahhh, so using unified shader programming (In DX10) is a requirement placed on the developers by ATI and Nvidia because that's how they built their DX10 cards?
     
  2. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    No, unified shaders have nothing to do with the programmers at all (which is also why it's irrelevant for DX9 vs DX10).

    All you care about as a programmer is that you're able to write:
    1: Fragment shaders
    2: Vertex shaders
    3: (Under DX10, at least) Geometry shaders.

    You don't know and don't care exactly how and where it's executed. It doesn't matter if the GPU has 16 of each type of shader units, or if it has 48 unified shaders that are each capable of any of the three types. Only the driver has to care about that, because it has to figure out which units should be assigned which programs to execute.

    The main reason both NVIdia and ATI are going with unified shaders for DX10 in particular is that with geometry shaders added to the mix, and with the more intensive use of shaders in general, it's harder for them to predict how many units of each type will be needed. Obviously, if they're not unified, then the manufacturer has to guess at a good ratio and build the card for that (for example the 7800 has 24 fragment shader units to 8 vertex shaders, because that's roughly how the workload was *usually* distributed in real-world games. If they added more of one type only, they would probably end up sitting idle too much of the time, because overall performance is held back by the other shader types)
    And under DX10, it's just more convenient to just ensure that every shader unit is capable of everything to begin with. You want to use geometry shaders? Fine, we'll grab a handful of general-purpose shader units and assign them to do it. You don't want to use them? Great, then they can do fragment shading instead. But they won't have to sit idle.

    But that only deals with performance, and with how the driver works internally. For developers, it makes no difference. All that matters to developers is that they can ask the card to execute any type of shaders.
     
← Previous page