AMD Details Asynchronous Shaders In DirectX 12, Promises Performance Gains

47

Latest Videos FromTom's Hardware
TOPICS
Niels Broekhuijsen
Contributing Writer

Niels Broekhuijsen is a Contributing Writer for Tom's Hardware US. He reviews cases, water cooling and pc builds.

  • Calculatron
    I love the change in focus for working smarter, not harder.
    Reply
  • Larry Litmanen
    I read about AMD making amazing products for the last 10 years and somehow, someway they are always behind.
    Reply
  • basroil
    Is this a previously unmentioned DX12 api feature or is it just more AMD marketing renaming (like calling their SMT designs "cluster-multithread")? From the looks of it they are just talking about executeIndirect, which was shown on Intel (and later Nvidia) chips at GDC.
    Reply
  • bloc97
    Great, always glad to see free performance improvements.
    Reply
  • Shankovich
    Thanks for this push AMD. If you didn't make Mantle, this probably wouldn't be coming today.
    Reply
  • ykki
    So, AMD when can we get the 300 series (a specific date would be nice)?
    Reply
  • Sony clearly saw the future moving away from traditional raster-based rendering for GPU's as the hardware evolves towards general compute.

    XBOX ONE GPU-

    1.18 TF GPU (12 CUs) for games
    768 Shaders
    48 Texture units
    16 ROPS
    2 ACE/ 16 queues

    PLAYSTATION 4 GPU-

    1.84TF GPU (18 CUs) for games + 56%
    1152 Shaders +50%
    72 Texture units +50%
    32 ROPS + 100%
    8 ACE/64 queues +300%

    Here's how important ACE's are:

    http://www.dualshockers.com/2014/09/03/ps4s-powerful-async-compute-tech-allows-the-tomorrow-childrens-developer-to-save-5-ms-per-frame/?
    Reply
  • PaulBags
    So, why can't it do this anyway? If the shaders compute the data why does it matter what dx version? Why does dx or anything else need to see the process under the shaders and understand it to make use of it?
    Reply
  • basroil
    15584048 said:
    So, why can't it do this anyway? If the shaders compute the data why does it matter what dx version? Why does dx or anything else need to see the process under the shaders and understand it to make use of it?

    You have it backwards, the shader code itself needs to be in a format that can be compiled by the version of DX (or higher usually) it is targeting, and any functions used by that shader have to be valid for the DX version you target. It's no different than trying to run a DX11 game on an XP machine, it just won't work because it has invalid calls.

    If DX can't compile the shader code (shaders are compiled at run time usually), no compute, so DX needs to be able to read the shader code and make sure it's valid (and also compile it, no magical compilation).
    Reply
  • PaulBags
    15584157 said:
    15584048 said:
    So, why can't it do this anyway? If the shaders compute the data why does it matter what dx version? Why does dx or anything else need to see the process under the shaders and understand it to make use of it?

    You have it backwards, the shader code itself needs to be in a format that can be compiled by the version of DX (or higher usually) it is targeting, and any functions used by that shader have to be valid for the DX version you target. It's no different than trying to run a DX11 game on an XP machine, it just won't work because it has invalid calls.

    If DX can't compile the shader code (shaders are compiled at run time usually), no compute, so DX needs to be able to read the shader code and make sure it's valid (and also compile it, no magical compilation).
    Hmm, woosh, straight over my head. Sounds like I need to do some serious reading.
    Reply