Announcement

Collapse
No announcement yet.

It Looks Like AMDGPU DC (DAL) Will Not Be Accepted In The Linux Kernel

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

  • DALtony
    replied
    Originally posted by dungeon View Post

    And that is whole story, linux devs traditionally wanna something very easy or as easiest as possibile maintanable but this one is nothing easy...
    The complexity in display come from it being a real time constant memory fetch subsystem. While your CUs, video encode decode just suffer frame drop or lower FPS, you will get a nasty flickering or flashing blank screen if display's real time latency and bandwidth requirement isn't met.

    Display account for most of the power consumption when your system is idling. While you are reading this post your GPU is 99.9% idle. However display still need to fetch 60 frames a second even if your screen hasn't update in past 10 seconds before you scroll down.

    Leave a lot of clock margins, keep all caches, hw blocks and internal high bandwidth buses powered up at all time then you won't run into any problem. If modes above 300Mpix (4k@30) and power consumption isn't a concern there is no reason to have more than 10k or 20k lines of simple code to light up a display. You will still get a display if you bypass most of the HW added to display pipeline to enhance the quality of final output image.

    Anyways I am sure we can workout something that works for maintainer in terms of maintainablity and our internal requirements, including delivering feature rich and performance/power optimized driver on linux. We will continue discuss the RFC in public and if you are interested in some of the discussion you can start from https://lists.freedesktop.org/archiv...er/126698.html as this thread is about to get technical.

    Leave a comment:


  • DALtony
    replied
    Originally posted by dungeon View Post

    for better picture of the whole story someone should just make a list of all features for Windows which are maded on top of DAL and to realise that thing tend to be huge
    just a few come to mind... far from complete list I don't feel like logging in over the weekend to remind how big the list is. Did not include stuff we already support upstream

    Functionality
    • FreeSync in full screen mode
    • FreeSync window mode
    • 8k@30Hz, 5k@60hz, 4k@120Hz with DP1.4 HBR3
    • HDMI 2.0: 4k@60
    • HDMI deep color up to 12bpcc
    • VR headsets
    • HDCP: Play protected content
    • DP and HDMI audio. support up to 8 channel audio and HD formats
    • Bad HDMI/DP cable detection
    • Virtual support resolution - via downscaling
    • HDR (high dynamic range)
    • Timing Sync / Frame sync across multiple GPU

    Performance Optimization
    • FreeSync refresh rate ramping: reduce panel flicker due to luminance change (which scale with refresh rate) and allow free sync to work on sub-optimal panel
    • FreeSync below the range: go as low as half of min refresh rate supported by monitor.
    • Direct Flip: switching between different frame buffer formats without requiring full mode set.
    • Enhanced scaling quality: amdgpu only support HW default 2 taps auto-scale. DAL computes and programs the scaler maximizing image quality
    • Enhanced color: more precise gamma curve, color gamut correction.
    • A few more fps, lots of work goes into optimize display memory request patterns to not get in the way of rendering

    Power Optimization
    • burst display read from memory keep DRAM self-refresh as much as possible. = hours of idle battery life
    • Frame buffer compression: reduce memory bandwidth. ~half hour battery
    • multip-plane overlay / android surface flinger: allow direct scan out of decode video and skip composition to desktop. = hours of batter life when watching video
    • allow dynamic memory clock switch in multi-display use case. ~40 watts of saving on Hawaii
    • power gating / clock gating: power off idle HW blocks

    Leave a comment:


  • pal666
    replied
    Originally posted by bridgman View Post
    You do understand that Alex is not part of the DAL team, right ?
    he can't understand that, he is disoriented idiot

    Leave a comment:


  • bridgman
    replied
    Originally posted by Sonadow View Post
    Obviously the general populace will not have access to the hardware until launch day, so my definition of lighting up is that of
    1) Works on the latest shipping version of the kernel (not git!) on launch day or shortly after launch with KMS
    2) can output at up to 1440p over HDMI
    3) Can hook onto the modesetting DDX driver
    4) can talk with latest libdrm and Mesa to hardware accelerate a typical DE (like Gnome or Plasma)

    #1, #2 and #3 are about getting a usable display. #4 is about actually using the hardware, and not falling back to software and llvmpipe to get the desktop drawn onscreen. I consider these four aspects to be the bare minimum of expectations with regards to any driver; if all 4 requirements are met, i deem the hardware as being successfully lit up.

    Anything else like HDMI audio, FreeSync, etc etc are bonuses and icing on the cake that I can afford to wait longer for or live without for an extended period of time.
    You bumped the wrong post before

    If you absolutely need latest shipping version of the kernel (which may be identical to git at times) then you'll probably need to wait for upstreaming. The AMDGPU-PRO focus is on enterprise/LTS distros and workstation/CAD markets, so while we will be closing the gap between bleeding edge and AMDGPU-PRO support over time the mere fact that it runs on a ~2 month release cycle means you won't get #1 that way.

    Same with #4 - picking up an AMDGPU-PRO kernel driver only will give you a good chance of working with the libdrm and mesa which shipped in that distro, but no guarantees about being able to make a franken-stack with that kernel driver plus newer libdrm/mesa. The dependency hierarchy doesn't work that way... kernel + drivers usually should be newer than userspace, not older.

    The real solution for what you want (if you insist on #1 and #4) is pulling from upstream. For #2 and #3 only we could satisfy that with a subset of DAL/DC functionality as we do for currently shipping parts, but every year the display logic gets more complex and power management becomes a bigger part of display logic expectations so the subset stopped being "simple" a while ago. Practically speaking you want an upstream driver with DAL/DC included, and that's where our focus is rather than than the subset functionality we ship upstream today.
    Last edited by bridgman; 10 December 2016, 08:19 PM.

    Leave a comment:


  • bridgman
    replied
    Originally posted by Sonadow View Post
    That implies the use of AMDGPU-PRO, doesn't it? What if I do not want to use AMDGPU-PRO, but instead stay on with a vanilla kernel + libDRM + Mesa stack? What will i expect to lose?
    Originally posted by Sonadow View Post
    Bringing it up again because it dropped too far back and I believe this is the main question that most people want to know.
    Sorry, thought I already answered it but turns out someone asked the same question (almost word-for-word) on Reddit...

    1. Turns out "lighting up" means different things to different people. I think of it as initial (in-house) bringup of a new GPU fresh from the fab, months before it goes to market, on an internal code branch. You may be thinking of it as meaning something else.

    2. If you want to use DAL/DC with the all-open stack today, try installing only the kernel driver package from AMDGPU-PRO onto a distro that it supports. We plan to regularly QA that combination over time although not sure we are 100% testing it today.

    3. Going forward we are thinking about formalizing #2, allowing us to release a ready-to-go all-open driver stack. The main reason for doing this would be to take advantage of the Kernel Compatibility Layer (KCL) code in the -PRO kernel driver (which is not allowed upstream) but in the short term it would also be a handy way to get DAL/DC while we are finishing the rework required for upstreaming.

    Leave a comment:


  • bridgman
    replied
    Originally posted by ihatemichael
    If he's so effective as you say he is, then why he keeps wasting time talking about stupid politics like "But attacking us or our corporate culture is not cool."
    Not sure what you mean by "keeps wasting time" - believe you are talking about one email, perhaps 45-60 seconds total, in a year ? Is that what you mean ?

    Originally posted by ihatemichael
    Why they didn't listen to Dave when he pointed out they've been wasting their time building this in the first place?

    https://lists.freedesktop.org/archiv...ry/100566.html
    Don't understand your question. All the issues Dave mentioned in that post have been addressed, including reducing code size to ~66K which is only a bit larger than the display portion of current upstream drivers. The topic being discussed now is something different, not mentioned in the email you referenced.

    Originally posted by ihatemichael
    I follow development of open source projects (including drivers development) and this isn't anything new to me. What I'm saying is, instead of fixing his code why he keeps wasting time with drama?
    You do understand that Alex is not part of the DAL team, right ?

    You keep saying "keeps wasting time" but AFAIK we are talking about one email taking less than a minute to write. Is there a long history of dramatic emails I have somehow managed to miss or are you perhaps injecting the drama yourself ?

    Leave a comment:


  • dungeon
    replied
    Does even RHEL care about Desktop with opensource drivers ? I guess, most most most most most likely not ... install propertiary drivers there and move on And for those average rollers with opensource drivers, it is impossible to make straightforward distro with stock and recently also even signed kernels

    Which one kernel is that where opensource drivers work fine for all intel, nouveau and radeon drivers You won't found it, it is never single one the best... as princess is always in another castle and further with userspace drivers too

    And with that you have mass of people who roll kernels for no other reason than because of those shitty incosistent GPU drivers

    Further as when you don't have that, there won't be a trusty distro ever ever ever ever ever possible with just oss drivers and there won't be Linux on Desktop
    Last edited by dungeon; 10 December 2016, 07:20 PM.

    Leave a comment:


  • dungeon
    replied
    As always if no one wanna these features, we can keep going with our tradition of generic buggy drivers It would be simple generic as always, we could consider them fine on average, but with features missing

    And then when average Joe comes in and ask "why that does not work, it works on Windows for ages", devs should just answer "do not ask me why"
    Last edited by dungeon; 10 December 2016, 06:16 PM.

    Leave a comment:


  • dungeon
    replied
    Originally posted by pal666 View Post
    they have their kernel fork, which is the only thing which matters for subj
    People wanna these features which are on top of DAL, just like on Windows... and that can't be simple done and easy maintainable how traditionaly kernel drivers expect.

    And that is whole story, linux devs traditionally wanna something very easy or as easiest as possibile maintanable but this one is nothing easy... for better picture of the whole story someone should just make a list of all features for Windows which are maded on top of DAL and to realise that thing tend to be huge

    Leave a comment:


  • pal666
    replied
    Originally posted by ihatemichael
    Why they didn't listen to Dave when he pointed out they've been wasting their time building this in the first place?
    why you are idiot and can't understand that it was not "they", who built this thing in the first place?

    Leave a comment:

Working...
X