Announcement

Collapse
No announcement yet.

Rewritten NIR Code For Old Radeon "R600" Linux Driver Improves Performance In 2022

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dukenukemx
    replied
    Originally posted by ms178 View Post

    I know the custom Windows driver and use it with my Vega when on Windows (which is very seldom as my customized Linux provides a better desktop experience) - but these modders cannot make up for hardware deficiencies.
    You know when Vulkan was released, Nvidia added Vulkan support to older cards that also lacked hardware features needed. Everyone knew that asynchronous compute was broken for older Nvidia cards. Intel HD 4000 series has Vulkan on Linux only. RPI has Vulkan support.
    You might have noticed that AMD just released a Windows driver for 7970 (GCN 1.0) - a card which launched in late 2012. That's nearly 10 years of official Windows support. And due to GCN 1.0 supporting these needed features which makes the card still relevent in 2022. Unfortunately that is not the case with their VLIW cards and found the comment by an AMD dev in https://www.phoronix.com/forums/foru...8#post1195638 - it could be done, albeit I doubt that the outcome would be still beneficial (and you need someone willing to work on all of this):
    I'm not demanding it, I'm just saying it should be done. That or Gallium Eleven because a DX11 GPU can't play DX11 games on Linux without a huge loss in performance. Remember those Amernime drivers? They made modded drivers even for Terascale cards as well. The results are pretty amazing. Also, as much as I should be happy that AMD updated their drivers for 7870, I would rather use the modded drivers still. Halo Infinite isn't playable without it. It's not just performance but features that would normally be only for RDA2 cards are now available for all GCN cards.

    On linux on open source this shouldn't be worse for Terascale users. Vulkan is a huge undertaking but so was Vulkan for Intel and RADV. You know what's funny is that I don't use Terascale anymore. All my computers are GCN based. I have a 7850 that is mostly abandoned, R9 Fuy, RX 480, and a Vega 56. I still have Terascale cards but they are entirely abandoned, for this particular reason. Vulkan support doesn't have to bring better performance, just the compatibility alone would enabled these DX11 cards to play DX11 games. If you're a Terascale user, then you're better off still using Windows. As a Linux user I feel dirty for saying that.



    Leave a comment:


  • ms178
    replied
    Originally posted by Dukenukemx View Post
    I don't trust the AMD devs.
    I know the custom Windows driver and use it with my Vega when on Windows (which is very seldom as my customized Linux provides a better desktop experience) - but these modders cannot make up for hardware deficiencies. You might have noticed that AMD just released a Windows driver for 7970 (GCN 1.0) - a card which launched in late 2012. That's nearly 10 years of official Windows support. And due to GCN 1.0 supporting these needed features which makes the card still relevent in 2022. Unfortunately that is not the case with their VLIW cards and found the comment by an AMD dev in https://www.phoronix.com/forums/foru...8#post1195638 - it could be done, albeit I doubt that the outcome would be still beneficial (and you need someone willing to work on all of this):

    There are 3 major challenges to supporting vulkan on pre-GCN hardware:
    1. Lack of virtual memory support
    2. Lack of memory based resource descriptors
    3. Lack of asynchronous compute queues
    Last edited by ms178; 25 June 2022, 11:23 AM.

    Leave a comment:


  • smitty3268
    replied
    Originally posted by Dukenukemx View Post
    I don't trust the AMD devs. Is there soft FP64 support yet for cards like the HD 6850? Why is there a feature that exists in Windows and still doesn't in Linux?
    Yes, there is.

    Gert Wollny added it in the (still non-default) NIR backend he wrote. The rewrite that this article is about re-enables the actual hard-fp64 support for cards that support it directly, while leaving the soft-fp64 support that was previously added.

    Anyway, the AMD devs abandoned r600 years ago. Let's just be thankful it's open source so people like Gert can work on improving it, because that's the only way it's getting touched these days.

    Leave a comment:


  • Dukenukemx
    replied
    Originally posted by ms178 View Post

    In short, the AMD devs said that the hardware isn't capable of some parts that help to make Vulkan more performant.
    I don't trust the AMD devs. Is there soft FP64 support yet for cards like the HD 6850? Why is there a feature that exists in Windows and still doesn't in Linux? It's same situation with AMDGPU supporting GCN1.0 cards. It can and has been done but it was low priority for AMD devs. The problem is that I see the devs supporting newer hardware and letting old hardware to rot. It was a community developer Gert Wollny who ported R600 to NIR. AMD devs are paid by AMD and they will always work in AMD's best interests. If you're a Windows user then you should use Amernime drivers, including GCN1.0 users because AMD has your best interests. https://forums.guru3d.com/threads/3r...leased.436611/
    While it would be theoretically feasible it would not provide any benefits.
    If I could get FP64 support I could finally run newer games without having to trick it into thinking it's OpenGL 4.6. If I could get Vulkan support then I could run DX11 games without a massive performance penalty. Because DXVK is just better than whatever Wine is doing through OpenGL. The way I look at it, if you're an AMD or Intel user of fairly old hardware then you would be better off using Linux than Windows. There are a lot of performance benefits to using Linux, with the exception of Radeon HD 5000 and 6000 users because there's no Vulkan support. Unless there's a Gallium Eleven to allow these cards to play DX11 games then these owners are probably better off using Windows with Legacy drivers. Especially if you're using anything less than a Radeon HD 6900 because mid tier and lower 6000 series cards don't get FP64 support, which was done through software on Windows. OpenGL performance is fantastically better on Linux but running DX11 games through OpenGL is not good. Vulkan support even with no benefits would still be better than just dealing with half broken OpenGL.
    Last edited by Dukenukemx; 24 June 2022, 11:28 PM.

    Leave a comment:


  • sinepgib
    replied
    Originally posted by ms178 View Post
    In short, the AMD devs said that the hardware isn't capable of some parts that help to make Vulkan more performant. While it would be theoretically feasible it would not provide any benefits.
    There may be a bias tho. After all, they made the new card, they are a bit bound to believe the older one is not capable enough to be worth the effort. But the thing is, "worth the effort" is a relative measurement.

    Leave a comment:


  • ms178
    replied
    Originally posted by Dukenukemx View Post
    I'm surprised nobody has tried to make a Vulkan driver for the HD 5000 and 6000 series cards. Why does the RaspberryPi have a Vulkan driver and not these old cards? They should be somewhat capable of Vulkan. Also, what happened to the FP64 support for Radeon HD 6850 type cards?
    In short, the AMD devs said that the hardware isn't capable of some parts that help to make Vulkan more performant. While it would be theoretically feasible it would not provide any benefits.

    Leave a comment:


  • Dukenukemx
    replied
    Originally posted by ms178 View Post
    Time to dust off my Sandy Bridge notebook with a 6770M - unfortunately all the good stuff that made Linux gaming great (Vulkan, Proton, DXVK etc.) needs at least GCN 1.0.
    I'm surprised nobody has tried to make a Vulkan driver for the HD 5000 and 6000 series cards. Why does the RaspberryPi have a Vulkan driver and not these old cards? They should be somewhat capable of Vulkan. Also, what happened to the FP64 support for Radeon HD 6850 type cards?

    Leave a comment:


  • mitch074
    replied
    Originally posted by SteamPunker View Post

    Wouldn't it at least be possible to support a Vulkan subset, like the RPi-VK-Driver project does for older Raspberry Pis (<4)? The VideoCore IV GPU in those SoCs was designed to support only OpenGL ES 2.0, so if a (quasi-)Vulkan driver could be developed for that, than certainly something like that could be done for Terascale GPUs as well, right?

    According to this answer by agd5f in an older thread, it should at least in theory be possible to work around these limitations.
    These are rather core features needed - working around them would pretty much require a CPU-only implementation of Vulkan. It could be done with a software implementation of Vulkan that would compile the scene then perform a GPU-accelerated render of that scene.

    Using OpenGL.

    Now that would be the day...

    Leave a comment:


  • SteamPunker
    replied
    Originally posted by Motolav View Post

    IIRC a Vulkan driver for Terascale GPUs is not possible because they don't support virtual memory, a required feature for Vulkan. It was something related to how GCN handles memory that Terascale doesn't
    Wouldn't it at least be possible to support a Vulkan subset, like the RPi-VK-Driver project does for older Raspberry Pis (<4)? The VideoCore IV GPU in those SoCs was designed to support only OpenGL ES 2.0, so if a (quasi-)Vulkan driver could be developed for that, than certainly something like that could be done for Terascale GPUs as well, right?

    According to this answer by agd5f in an older thread, it should at least in theory be possible to work around these limitations.

    Leave a comment:


  • Motolav
    replied
    Originally posted by Eirikr1848 View Post

    A Vulkan driver is possible, but would be tedious and would require someone with the dedication and interest to step up to make it happen.

    A 6990 with a rewritten Mesa driver, rewritten OpenCL driver, and a fresh Vulkan driver would be beautiful.
    IIRC a Vulkan driver for Terascale GPUs is not possible because they don't support virtual memory, a required feature for Vulkan. It was something related to how GCN handles memory that Terascale doesn't

    Leave a comment:

Working...
X