Radeon RX Vega primitive shaders will need API support

Some controversy has arisen today regarding the state of primitive-shader support on Radeon RX Vega graphics cards, stemming from a post on the 3DCenter forums. That poster (who the AMD subreddit identifies as Marc Sauter, an editor at German site Golem.de) asserts AMD has dropped its efforts to include an alternate driver path for primitive shaders on those cards. Some have questioned the validity of this single source, so I wanted to back up this statement with my own breakout-session experience during the company's pre-CES tech day. At least in the session I was present for, AMD gave us a surprise update regarding the status of various Vega architectural features after I asked about the ongoing confusion regarding the status of primitive shader support in the latest Radeon drivers. The company may have offered that same briefing to other members of the press in other sessions, as well.

Source: AMD

Here's what we learned during that brief presentation. First, AMD re-asserted that the Draw Stream Binning Rasterizer (DSBR), an essentially tile-based approach to rendering that lets the GPU more efficiently shade pixels by only shading those triangles that are visible in the final image, has been enabled and functioning in the Radeon RX Vega drivers since those cards' launch. The DSBR "just happens," and developers don't need to do anything to take advantage of its performance benefits. The High Bandwidth Cache Controller, or HBCC, has also been available for users to toy with from (or near) the start of RX Vega's tenure on the desktop. AMD notes that most applications simply don't need more than the 8 GB of VRAM on board RX Vega cards, so this feature has a limited impact on performance in today's titles. Finally, games are taking advantage of the lower-precision arithmetic available through Vega cards' Rapid Packed Math support today, and future titles like Far Cry 5 will also support this feature.

The issue sparking the most controversy today is the status of the Next-Generation Geometry Engine, better known as "primitive shaders" in enthusiast shorthand. AMD emphasized that the Next-Generation Geometry path has several components, not just the more flexible programming model exposed through primitive shaders. One of those is the Intelligent Workgroup Distributor, a feature that ensures the GPU avoids performance-harming operations like context rolls (or context switches) and enjoys maximum occupancy of its execution units. AMD confirmed that the IWD is enabled, and that any performance benefits from that feature are already being demonstrated by Vega cards today.

Primitive shaders have remained a point of interest for Vega GPUs because of the potential performance increases that AMD's own materials have promised. The Vega architectural whitepaper notes that Vega's next-generation geometry path can process more than 17 primitives per clock, compared to the four primitives per clock that the Vega 10 GPU can process using the traditional Direct3D rendering path. That whitepaper figure came from internal AMD tests with a pre-release driver, and justifiably or not, the common expectation among enthusiasts has been that primitive shader support is a driver feature waiting to be enabled.

In the "justifiably" column, other GPU reviewers have confirmed in conversations with AMD that a manual primitive shader API was in the works, and that the graphics driver could have had a method to invoke the next-generation geometry path automatically. AMD employees have also confirmed that the graphics driver would handle invocation of the Next-Generation Geometry path automatically on Twitter.

At its pre-CES tech day, AMD turned this expectation on its ear a bit. The company explained that instead of being an "it just works" affair, full support for primitive shaders will require explicit inclusion in future versions of APIs like Direct3D 12 and Vulkan. Unlike some Vega features, AMD says that "primitive shader support isn't something we can just turn on overnight and it happens," noting instead that it'll need to work with the development community to bring this feature to future API versions. Game developers would then presumably need to take advantage of the feature when programming new games in order to enjoy the full performance benefits of the Next-Generation Geometry path. 

The company notes that it can work with developers to help them employ rendering techniques similar to primitive shaders today, however, and it cited Wolfenstein II: The New Colossus' GPU culling graphics setting as an operation similar in principle to that of primitive shaders. When this feature is enabled on AMD graphics cards, the game uses the copious Vega shader array to accelerate geometry processing. We didn't perform any directed testing of this feature when we last benchmarked Wolfenstein II, but ComputerBase has done so, and the site saw negligible performance differences when the setting was enabled versus when it was disabled. We may need to revisit this feature in the near future.

Ultimately, it seems as though Radeon RX Vega performance will continue to improve gradually over time instead of undergoing a step-function improvement from architectural features still waiting to be enabled. The greater challenge facing would-be RX Vega owners is getting hands on those cards in the first place. Stock of those products continues to be thin or nonexistent at major e-tailers thanks at least in part to cryptocurrency demand, and until the industry-wide shortages of graphics cards ease, the status of one architectural feature would seem to be more of a curiosity than a make-or-break line item for RX Vega cards.

Comments closed
    • ronch
    • 2 years ago

    Yeah I know, I know. Everytime a new AMD chip arrives the devs and entire industry just needs to optimize for it and take advantage of the architecture. Same with FX, same with Ryzen, same with Vega. Yeah were all kinda used to it, AMD. 😉

    • Mat3
    • 2 years ago

    So glad Raja is gone. Maybe it’s not fair to blame him, we don’t know for sure what’s gone on behind the scenes but what a gong show RTG has been lately. They hyped up primitive shaders in their marketing material, whitepapers, interviews and various forum postings and they couldn’t get it to work they way they intended in a single game? How could they talk about it like that without it being 100% proven internally? Or maybe they thought it was working but further testing showed it to be buggy? So now it requires new APIs AND dev work … seriously!? So there’s no future for this at all. If the Wolfenstein team can already implement the same thing themselves in software now (and I’m sure console devs also) then it’s utterly pointless.

    Aside from primitive shaders, how does all new Vega stuff that doesn’t require any specific dev work (DSBR, larger caches, intelligent workload distributor) not provide any performance benefits? I’ve seen comparisons of RX 470 vs 380X, same core and memory clocks, and the performance increase at a glance was maybe around 8%. Not spectacular but respectable. But same clock speed comparisons of Vega vs Fury X was around that same, maybe less. How does the Vega architecture not perform better than Polaris except for what the higher clock speeds do for it?

      • DoomGuy64
      • 2 years ago

      [quote<]performance benefits?[/quote<] Probably because there is a bottleneck in the drivers that is the same across the platform, considering how AMD had a pretty consequential performance leap from w7 to w10, and even bigger from dx11 to dx12. AMD squeezed all the free OS/API performance it could out of Microsoft, and what's left is the inefficiencies and bugs left in the core driver, which hasn't been changed since Fury, or even earlier. As far as primitive shaders goes, AMD is full of crap that they "can't" optimize for it. If a damn game developer can do it in software, then AMD should be able to use the same workaround in their driver. They're just not putting in the effort. This is the key difference between AMD and Nvidia. Nvidia's driver team makes use of EVERY feature, and more, because they optimize and recompile shaders to run more efficiently on their hardware, as well as take advantage of any OS/API function that will speed up rendering. AMD does fairly little of this, and instead tries to get Microsoft and game Devs to do it for them. Just look at Nvidia's dx11-12 performance. Pretty similar. Why? Because Nvidia is using their hardware efficiency gains in dx11 too, while AMD doesn't have any of it ported until years later. edit: Another example of this is Fermi vs GCN 1.0. Just look at all the updates and features Fermi got in comparison to GCN 1.0. Does GCN 1.0 support dx12 yet? I don't know, because the last I heard it would only support 11.X, which makes no sense considering consoles based on it were already using low level apis. I also question whether or not GCN 1.0 got access to VSR and other things like enhanced sync, which are clearly software based features that Fermi got access to much earlier. Fast sync might not have been ported, but Fermi is too old to care about, while GCN 1.0 is still relevant. AMD has been playing software feature games with it's customers forever, one notable example going back to the 290/390, in which the 390 got access to a better performing tessellation driver on release, which was completely driven by software enhancements, while 290 users had to wait months or use modded drivers to get it. Meanwhile, internet trolls justified this by saying the 390 was a different chip, when the only real difference was increased ram and better power states. (which no longer work, and nobody has called them out for this either) You know what AMD? If you aren't going to fix your drivers, give Microsoft and game devs access to your source code and let the community fix it, because you guys sure as hell aren't doing it. I feel bad for the engineers who make these features, since the driver team is too incompetent to make use of them. Not to say that it doesn't get fixed eventually, but two years down the road is too little, too late. Fine Wine is just a term describing how long it takes AMD's driver team to optimize for their hardware, while Nvidia has those optimizations working on release.

        • Spunjji
        • 2 years ago

        Really not sure what you’re on about re: GCN 1.0 and DX12. Tahiti and Pitcairn both support DX12 with feature level 11_1. Fermi, Kepler and Maxwell 1.0 are all limited to “partial” feature level 11_1 support (i.e. they are 11_0 cards with some software ticks).

        I only just found that information out because it literally doesn’t matter. From my perspective I have been running DX12 games on systems based on the 7970 and 7870 cards without fault. Fermi and Kepler are functionally irrelevant in modern games and anything based on the 285/290 series is still doing just fine.

        Please continue with your odd fact-picking and massive oversimplification of the problems facing AMD’s underfunded and overloaded driver team, though. The truth is that AMD have been a longtime pioneer of new features and paid the first mover price, while Nvidia tend to launch highly optimized architectures that sacrifice “future proofing” for outright speed on release. I continue to use and enjoy products by both.

    • Mat3
    • 2 years ago

    Shady marketing!

    • DragonDaddyBear
    • 2 years ago

    Is this a concept that Nvidia or Intel could pickup for wider adoption?

    • Krogoth
    • 2 years ago

    I honestly don’t expect Vega 10 to outright beat Pascal let alone Volta. At best, it should be able to distance itself from GP104 and get into shooting distance of the GP102/*GV104*.

    Nvidia will also run into the same harnessing issues with its micro-architecture with Volta as it is designed more towards general compute rather than gaming performance. It has bigger under hood changes then Maxwell.

    • NTMBK
    • 2 years ago

    Sooo… This was a feature mainly added for the next generation consoles, then?

    • Chrispy_
    • 2 years ago

    I got slammed for saying that Vega was just going to be GCN and slightly higher clocks, but it seems that even the hope that primitive shaders will improve things is a long way off.

    AMD gave up on making their own API (Mantle) and just handed it over to Khronos.
    Microsoft have no interest in a new API because their only concern is keeping XBone sales high. Let’s face it, Microsoft are so dirty that they previously used DirectX as a dirty sales tactic by denying DX10 to XP users, despite three different groups providing aftermarket DX10 – so Microsoft simply cannot be trusted to do anything that isn’t entirely their own agenda in this regard.

      • shank15217
      • 2 years ago

      No one said anything about a “long way off”. There is no timeline given, you are making assumptions. Considering vulcan is a low level api, it might be a lot faster than anybody thinks.

        • Chrispy_
        • 2 years ago

        Do you know something about a new Vulkan API or DX13 that the rest of us don’t?

        These things don’t just sneak up and surprise people, they’re publicly in development for months and even years before release. The fact that there’s no news of either makes me think that the current generation of RX Vega is going to outlive its usefulness before an API with primitive shader support exists, and there will be an equally long time once the API goes live before software developers use it frequently enough for it to gain traction in the market.

        I’m only speculating, but I think I’m prepared to bet money that primitive shaders won’t be a thing this generation.

          • Spunjji
          • 2 years ago

          There’s still the potential for additional feature levels rather than an entirely new API, and some of these things do indeed sneak up a little – but broadly I’d be in agreement here.

    • Jtaylor1986
    • 2 years ago

    What a joke and waste of transistors that will do nothing but add to production costs and leak energy. Even if this was currently exposed in the API it would be hit or miss to actually ever be implemented given how few Vega cards are actually in the wild in gaming scenarios. AMD should be ashamed of themselves for hyping and marketing a feature that is in all likelihood never going to be utilized given the slow uptake of API’s.

      • DPete27
      • 2 years ago

      Hard to get mass adoption for a feature that isn’t also present in your competitor’s products (without paying devs or doing it for them). That goes for both AMD and Nvidia. They’ve both come up with good ideas that never really saw the light of day because lack of adoption. But if you don’t try, the industry doesn’t advance.

        • DancinJack
        • 2 years ago

        Yeah I don’t think you’re necessarily wrong, but I think the issue is that AMD ends up in this spot far more often than the others. Which sucks for them.

          • DPete27
          • 2 years ago

          Not hard to explain. Nvidia has more $ and manpower to push their pet projects on devs and into the wild. It’s still a money pit, but it affords Nvidia greater chances of hitting a winner. Same goes for Intel vs AMD.

            • DancinJack
            • 2 years ago

            That doesn’t necessarily mean AMD should keep, in some cases, throwing away the resources though, does it? They could be better spent elsewhere in a lot of cases likely.

            • Jtaylor1986
            • 2 years ago

            This is my point exactly. Radeon continually wastes resources (transistor budget) on features that are so forward looking that by the time they are used the card is out of date. Primitive shaders are the new async compute.

            • DPete27
            • 2 years ago

            AMD is certainly more adventurous with their transistor budget than Intel/Nvidia. But it’s hard to deny that Intel/Nvidia have the more polished solutions in their respective market. I’m sure there’s a fair amount of patented tech preventing AMD producing a direct copy of an Intel/Nvidia chip, so they’re continually working to find their own winning recipe. Unfortunately, it’s hard to overcome the kind of R&D budget disadvantages that AMD is working under.

        • Jtaylor1986
        • 2 years ago

        Given that most games are still not even using the ‘new’ API’s that were released 2.5 years ago you really think it’s a smart idea to spend your transistor budget on features that require a newer API than the one devs are already ignoring?

      • Mat3
      • 2 years ago

      When AMD has talked about this before (can’t find it now), it was implied that primitive shaders was something that was entirely in the driver and not the hardware, so no wasted transistors. Of course, if so that means it wouldn’t have to be restricted to just Vega.

    • tipoo
    • 2 years ago

    Yeah, it sounds a lot like Vega is going to be some classic AMD FineWine over time, but continuing to do that doesn’t really help them when launch day reviews are what most people buy on. Gotta get that performance out the door on day one.

      • chuckula
      • 2 years ago

      The whole “fine wine” thing becomes pretty irrelevant when the magical performance improvements only show up long after the card has been superseded.

      Nice downthumbs from the usual suspects. I’d love to see one of the usual hypocrites login and post how [b<]INTEL[/b<] parts have "fine wine" since they actually do things like properly support AVX & AVX-512 that will be "fine wine" features as software gets updated over time. Note how unlike the hypocritical fanboy crowd around here you won't catch me saying that you should be required to wait years for your hardware to finally be supported to make the hardware worth the purchase. It's patently stupid and ignores the reality of how hardware and depreciation works.

        • Vaughn
        • 2 years ago

        I c your point but as someone that was gaming on a 7970Ghz card for 5 years granted at (1200p) if that ain’t aging like fine wine then I don’t know what is.

          • Redocbew
          • 2 years ago

          Yeah it’s not that uncommon to skip one or more generations inbetween upgrades. My objection to the “fine wine” thing is that the degree to which performance will improve is just completely unknown, and it’s not something that’s specific to a single vendor. You might wait 5 years and only see 5% improvement while the competition has 10 or 12 on similar hardware. There’s just no way to tell.

          • Jtaylor1986
          • 2 years ago

          The finewine of your 7970 has everything to do with the fact that GPU’s were stuck on 28nm for 4 years combined with the fact that AMD gutted their graphics teams. Your card would have been deprecated in 2 years like every other had they not changed the name to a 280 and then a 380 and kept selling it for 4 years.

            • DrDominodog51
            • 2 years ago

            The 380, 285, and 380x are entirely different GPUs than the 7970/280/280x.

            • stefem
            • 2 years ago

            Well, I wouldn’t describe them as “entirely different GPUs”, really

            • Spunjji
            • 2 years ago

            Seems a bit like nitpicking there, they are more than just driver tweaks with quite a few architectural alterations and thus in no way the same GPU either. But then I get that they were hardly “new” either.

          • cynan
          • 2 years ago

          Me too. Picked up my first 7970 in March 2012 and a second in 2013. Just upgraded 4 months ago. When everything worked right (which admittedly was rare enough) crossfired 7970s remained pretty competitive at 1600p – the most recent example was admirable performance in Nier:Automata (a recent game that game many recent cards some difficulties).

          I feel a bit sleazy as I just sold one of them on ebay for about $60 less then I bought it new for in $2013.

        • BobbinThreadbare
        • 2 years ago

        This would be true but you can easily game on GCN 1.2 if not 1.1 generation cards at 1080p these days. Performance has plateaued over the past 4 years or so.

          • Voldenuit
          • 2 years ago

          Maybe performance at 1080p60. But high refresh monitors are very common these days, and high density and ultrawide displays are gaining traction.

          I’m gaming at 3440×1440 @ 120 Hz on a 1080Ti, and while a 5 year old card may be able to do 1080p60 reliably on modern games (especially if you turn down some settings), I’ve found that my expectations have gone up. It’d be hard to go back.

            • BobbinThreadbare
            • 2 years ago

            If you bought an R9 290 for $400 and 4 years later it’s doing 1080p60 I think you have to be satisfied with that value.

            • DoomGuy64
            • 2 years ago

            My 390 is doing 1440p with freesync, and has no problems pushing decent framerates in the games I play.

            • moose17145
            • 2 years ago

            Yea I was going to say, I have a R9 290 and it is currently hooked up to a Nixeus EDG27 and seems to be handling things just fine….

        • shank15217
        • 2 years ago

        So the people who have the card don’t matter?

          • chuckula
          • 2 years ago

          Well… according to AMD people who have the card really [b<]don't[/b<] matter. They are throwing in features that AMD literally doesn't support beyond saying: Hey API developers, write new interfaces that third-parties can use to actually take advantage of our hardware... someday maybe. Oh, and by the time this software exists there will be brand new hardware with different low-level interfaces that won't really work in exactly the same way as Vega does so by then all these low-level optimizations won't help all that much anyway. Put another way, for all the preening about how AMD "heroically supports" old hardware, I haven't seen any factual support for the notion that Nvidia doesn't also support older hardware about as well.

            • shank15217
            • 2 years ago

            Those APIs can be used in console SoCs as well or do you think they should have a completely separate line for those?

            • chuckula
            • 2 years ago

            The fact that AMD is trying to leverage it monopoly in console hardware to cut out competitors in the desktop space is fun but irrelevant to AMD failing to do its job by documenting and supporting these features BEFORE the hardware launched.

            • cynan
            • 2 years ago

            So you’re saying their perfecting the primitive shader implementation in APIs/drivers for the next gen consoles that will be Vega based? At which point support will follow for discrete GPUs? Sounds like a logical business strategy to me.

            Why bother directing limited resources at something that 99% won’t be interested in using (due to lack of developer support momentum) for another couple of years?

        • Concupiscence
        • 2 years ago

        [url=https://memegenerator.net/img/instances/500x/81161705/if-you-dont-want-downvotes-maybe-you-shouldnt-start-fights-about-amd-every-single-day-but-thats-none.jpg<]Really, man?[/url<]

      • shank15217
      • 2 years ago

      New features require software support, that’s a given. AMD has always pushed APIs and features, they just haven’t been able to optimize as well as Nvidia for what’s out there.

        • chuckula
        • 2 years ago

        You say “new features require software support.”

        OK, good, then you just admitted that AMD has failed here because the “software support” should have been out in 2015-2016 or so for a GPU that was quite clearly delayed late into 2017.

        Imagine if Intel had launched Skylake-X with AVX-512 support, advertised the hell out of it, and then said several months [b<]AFTER[/b<] it was on sale: Oh yeah, some third party guys are going to have to go out and patch GCC to make that AVX-512 stuff work. We have no intention of actually doing it ourselves BTW. BUT IT'S AWESOME! See, Intel didn't do that. Instead they had support baked in for AVX-512 for well over a year before it launched, and that even includes open-source GCC support, not just their own compiler. They've had full documentation for AVX-512 publicly availalble even longer than that. Do you think you'd be on here talking about how awesome Intel is for dumping Skylake X on the market with literally no way to use its whiz-bang AVX-512 instructions other than a buck-passing statement that it's somebody else's responsibility to rewrite the APIs and code the software to support it?

        • Waco
        • 2 years ago

        AMD has a pretty bad track record for following through with support for their new features, though.

      • Klimax
      • 2 years ago

      FineWine as long as your expectations are going lower over time…
      (Hint: Just because it improves a bit over time doesn’t mean it is sufficient for any newer game or application)

        • tipoo
        • 2 years ago

        Sure newer games will need newer cards, but aging gracefully is a thing too. To me it seems there’s a lot in Vega architecturally that needs time for support to come, and so long as future generations also have those features support should increase over time, so of course it won’t perform like a new GPU, but drivers and game support should hopefully let it cancel out a part of higher requirements, not all of them.

        Not that I’d ever recommend buying a GPU on a speculative future rather than performance today, quite the opposite, I think AMD should focus on the performance of today like Nvidia and Intel tend more to.

    • chuckula
    • 2 years ago

    Your features that require API support are very pretty.
    But can they mine?

      • EndlessWaves
      • 2 years ago

      It’ll never run crysis.

Pin It on Pinterest

Share This