VESA Publishes DisplayPort 2.0 Video Standard
vesa.org
vesa.org
That way we won’t have this window shuffling nonsense that has plagued multi monitor setups since we started putting pcs to sleep instead of turning them off.
Sometimes I can't get to them at all on the laptop screen without forcing it closed and reopening.
The regular [win] + [left/right] for snapping to 1/2 screen positions will also move it across screens if you hit it repeatedly.
Sadly MS figured we all wanted to have to shit move around as soon as you use a KVM.
(Also, there's usually a 90% chance that windows will not correctly handle the monitor reconnecting without having to either power cycle the monitor or using the video card's 'really truly scan for monitor changes' feature.)
[0]: https://superuser.com/questions/630555/turning-displayport-m...
NVIDIA firmware update [0] solved the problem for me. It seems they ditched the naughty part of DisplayPort standard for good and stopped passing hot-plug events to OS.
Waking from sleep will periodically just not find a monitor at all, or they will come up with the wrong positioning (left and right swapped). If I turn a monitor off, the other one (and the laptop) do some sort of resync operation that interrupts the display. It's annoying, but not something I would expect the industry to consider a priority; I'm not really sure it's a monitor issue at all.
So yeah, it's better than when off really meant off and ports lacked cable detection.
What you're complaining about is entirely a software problem. No improvements to display standards will move the situation forward.
By the way, if you're using Linux, consider switching your desktop environment.
Now, if only we could convince PC graphics manufacturers to support CEC instead of ignoring it. It seems the only people who do care are the little set-top boxes that run Nvidia Tegra or Qualcomm chips.
Also, "Hey monitor, here's a frame in a new resolution" "Right away, ma'am, I just need to wait 30ms for the next refresh and your content will be visible"
Modern display management is... well, it's just absolute garbage. We don't tolerate it when our storage devices or graphics cards take 3+ seconds (seconds!) to respond. Why are we OK with the display? I mean, some amount of delay and synchronization for some things is inevitable, but this subindustry has just gotten completely out of hand.
I think FreeSync somewhat alleviates that. But of course Nvidia doesn't agree to do it the same way. I do agree that video latency is atrocious. It takes longer to do a screen refresh than to send an ethernet packet across the country!
Well you do need to consider (according to my naive estimated calculations) that:
a 1920x1080 picture is worth 4000 ethernet packets.
Eh? There's no shortage of monitors with well under 10ms of signal to photon latency: https://www.tftcentral.co.uk/images/gigabyte_aorus_ad27qd/la...
That's processing time + pixel response time measured across a handful of monitors. None of them are higher than 9ms. I have no idea where you got 30ms from? Or even what you're talking about at all. Are you exclusively talking about bottom of the barrel monitors here? Even IPS panels are being driven at 144hz these days and adaptive vsync is increasingly everywhere. Nobody is tolerating being slow?
No, it doesn't. I missed that they were talking about mode switch, but if the mode switch happened in 9ms the OP's example doesn't work anymore because the switch becomes faster than refresh rate.
2019 and one still has use the display's buttons to control settings, unless it is a laptop's fixed display.
Edit: DDC/CI to be precise, introduced in 1998: https://en.wikipedia.org/wiki/Display_Data_Channel#DDC/CI
As noted in discussion, Luminance VCD while worked for my monitors, backlight level 0x6B or legacy 0x13 would be better choice.
It then can be used by instantiating it at proper I²C monitor bus, e.g.:
insmod ddcci_bl.ko
modprobe i2c-dev
echo ddcci_bl 0x37 > /sys/bus/i2c/devices/i2c-2/new_device
(oh, and it now over 2 years and I still haven't got time to integrate it with DRM display hotplug so it could be upstreamed :(Thanks!
[1] https://github.com/prashnts/dotfiles/blob/master/etc/hammers...
[2] https://github.com/kfix/ddcctl/blob/master/README.md
Edit: Just noticed further down in the comments that an app exists for it now!
You also have to do this with certain desktop streaming solutions if the host PC doesn't have a display. You can buy fake HDMI connectors that are just a cap over the HDMI port to trick the video card into thinking there is a display attached.
I don't know how DP does it but previously there was a good old I2C link in the cable that was used to figure out what the screen supported[1]. You only needed an I2C EPROM on the other hand containing the various modes. Without this the computer on the other end can't really prepare itself properly, preallocate the framebuffers etc...
Since the EPROM requires very little energy it might even work if the monitor is not powered, just using the +5V coming from the HDMI cable.
Don't think it's the hardware that's pushing 20-80Gb/s through 10ft of cable causing the issue... they don't specify OS/driver interactions. They just report available resolutions/rates in their PID and display on SleepOut command from the host register/packet interface.
I fully understand that tiling WM are not and will never be mainstream, so finding a general solution would be desirable, but I guess for a tech-savvy crowd like HN I want to proselytize tiling WMs a bit. Every time I have to use a regular "hey here are a stack of overlapping windows, have fun" destop I'm genuinely frustrated. It's nice when you're working on a new flow with new apps you're unfamiliar with but once you've got your development "stack" figured out I couldn't imagine coding in an environment where I can't switch to my editor, terminal, browser with a single non-context sensitive command, regardless of where I am.
I suppose just having virtual desktops can be a decent enough compromise (put your editor in a virtual desktop, your browser in an other etc...) but as far as I know even that is relatively uncommon outside of linux DEs.
You can imagine what that does to my windows ;-)
gsettings set org.cinnamon.settings-daemon.plugins.xrandr active false
EDIT: apparently not anymore, but there's another solution: https://github.com/linuxmint/Cinnamon/issues/6646EDIT2: per this PR, you should be able to disable it in the configuration panel: https://github.com/linuxmint/cinnamon-settings-daemon/pull/1...
I still have to move them back once in the morning when I unhibernate, but it's better than 5 times a day.
It would be really great if someone could figure this out.
I wonder if at least part of this is for DRM reasons, because having an always-on and "unauthenticated" video signal output does tends to frighten those IP control-freaks.
I do agree with all the others here that the time newer monitors take to sync to the signal is horribly long. CRTs and some older LCDs were basically instant (although the latter would sometimes auto-adjust on signal changes, meaning a slightly unstable display, at least it was still somewhat readable and visible --- crucial for reading things like BIOS screens, for example.)
Probably not, DVI has hot-plug.
And they really need to have larger displays 30"+ for anything 4K and beyond. There's not much point to a 27" 4K monitor if you have to double the scaling just to read anything. 8K at 27" would be a complete waste.
I strongly disagree that higher resolutions are not interesting on smaller sized displays. I personally find 21.5 inch to be the sweet spot for 4K and welcome the better support for higher resolution so displays in the 24-30 inch range can more easily support 220+dpi, higher refresh rates, and HDR.
But 1440p at 21" I think would be great. Personally I only use 1080p screens as secondary monitors, and would never go back to 1080p for my primary display.
100 PPI is what we typically had on good monitors in the late 90s, it’s 20 years later now!
Working with a larger screen without scaling makes this problem go away. I personally have 2 x 4K monitors at 32" and find it quite ideal.
Windows 10 has no problems rendering on ANY DPI, certain apps and frameworks ignore it though which is not a problem of OS.
The way macOS does it is perfect 99 percent of the time—and it guarantees no weirdness when app developers have differing ideas about how their app should react to scaling. Apple got this one right and everyone else should just copy them.
People who say "Scaling" are a different breed. Some like it because for them smoother fonts are more readable. To others, scaling presents ability map physical dimensions to screen.
Saying this, I agree that OS and software has to support alternative scalings, and ability to make things larger or smaller. I wish we could just pinch zoom apps on Windows and Linux.
But everyone will take more DPI if you offer it.
Nobody is actually for or against scaling itself. It only becomes a question of scaling or not if you artificially lock in a screen beforehand, and that screen is in a certain DPI range. If you used a same-size 8k screen you'd have basically nobody calling for "no scaling", instead you'd have arguments like 2x vs. 3x vs. 4x.
The problem is that at screen sizes less than 30" it's basically impossible to read text at 4k. Even at 31" it's a bit small.
> If your OS doesn’t adapt to high DPI monitors cleanly, change your OS.
Genuinely curious what modern OS's don't have high DPI support? AFAIK Windows, OSX, and all the modern linux distros (and their DE's) support it.
Either way, it's usually not the OS, it's usually random programs that don't want to scale well.
Apple was selling these in store until not long ago. Should cover that use case (4 HD screens) fine, but the pixel density is terrible for using at scaled 4K.
I have a laptop with a 12" 4k screen. I can read it just fine. I do scale it 200%, but that just means I would be able to read text just fine at 24" 4k with no scaling.
It's all preference and how well the OS handles it. I think everyone can agree that the are still issues to work through on the OS side w.r.t. display scaling.
Edit: I misunderstood your last comment. Maybe it isn't the OS's fault when programs don't scale well... but the OS should have an override that lies to the program to force scaling. Hacky though that may be, it would work well, at least for an even 200% scale factor.
I think what you have now (4K @ 31") is the perfect compromise. It's borderline retina, so while things do get slightly better at a higher density, the improvement is much less noticeable than the improvement from non-retina to borderline-retina.
The density is also such that if you turn off scaling it's still borderline usable, for the once in a blue moon situation you have to run an app that misbehaves while scaled.
What's the issue with scaling? It exists for precisely this reason.
With 200% scaling you now only have the screen real-estate of a 1080p screen. At 4k I can have 4x 1080p windows open and visible at the same time.
At 1080p at most I can have two windows open side by side. Some programs will fit into a quandrant at 1080p, but others wont. For example, at 1080p you can have 4x task managers open, but spotify/discord won't fit.
Also once in a blue-moon you'll find some software won't scale at all, or has issues scaling. If you only have a 21" screen then you have this tiny microscopic text you have to try to read.
If you use a 21''@4K with 200% scaling text is sharper than a relative bigger monitor at 100% scaling.
At 4k I can have 4x 1080p windows open and visible at the same time.
At 1080p at most I can have two windows open side by side. Some programs will fit into a quandrant at 1080p, but others wont. For example, at 1080p you can have 4x task managers open, but spotify/discord won't fit in the quandrants.
I would love a 31" display at something closer to 8K resolution so I can run it at 2x scaling and get true retina.
If you need scaling at 31"... How is your vision? Do you use glasses? Or do you sit further away from the display? I had a friend who thought native 4K at 30" was too small, but it turned out he actually needed glasses, and once he got a prescription he joined my side.
I had the exact same dream, which is why I bought a 4K 43" monitor. Then I found out that it was so big I had to sit further away, forcing me to scale some things up so they are readable again, though not everything (DE settings are still at 100%, but e.g. code font is at ~120% and HN is at 150%).
That said, I'm very happy with my purchase. The only thing I would probably change is to get a different model (sadly, it was the only available 43" 4K 60fps model in my country at the time of purchase).
Benefits: - You get so much screen space. You can fit so many thing on one screen. There is now space for 20 icons vertially on my desktop (not that I use the desktop much, but consider it more of something to compare to). - You move your head more, as you don't have your entire screen in focus. Same goes for multi-monitor setups. - No seam in your 4x1080p screens.
Some caveats: - You'll miss notifications. My field-of-view is not good enough to see the small popup in the lower-left/right of windows. I wish I got more notification in the center of my screen. - If you use it as a windows monitor, you will notice color/blurry reflections of the desk in front of you, making it harder to read the bottom 2% of the screen when you are looking at the center. Usually, this is where your taskbar is. Solution: Move the taskbar to the top. - You will still overlap your windows. Most of the time you will just increase the size of your editors/browsers to fit more content in those. I think my browser is currently larger than a 1080p screen, just because I read it a lot and it is such an important part of the screen. You do however get so much more content in your editors/browsers. - Getting headaches and eye-strain? Turn down the contrast and brightness by a lot. You are starting into an even bigger 'lamp' than usual, so save your eyes. On 1080p I usually work around 40-50 brightness and contrast, while on this 4K they are both on 30.
I still wish I had something smaller though, but there simply are no developer 4k screens in the range of 33' to 38'. I do not want ultrawide, nor pay +2k so I can read my lines of code in the most color-accurate way possible.
The smartphone market has already declared high DPI the winner here; desktops are lagging behind only due to inertia.
I'd take high refrersh rate with medium resolution (2.5K or something) over high resolution with low refresh rate.
So it has nothing to do with inertia, there are multiple reasons involved.
Inertia and general lack of demand is a much better explanation. Most people either haven't experienced high-DPI monitors or just don't care that much about their PCs.
For comparison, people said the same thing about IPS panels (and it was true for a long time), but these days you can get a decent IPS panel for barely more than the equivalent TN.
But it affects non gaming scenarios too. Static text is fine. But try scrolling that sharp text, or move something on the screen. Low refresh rate - more artifacts (motion blur, ghosting etc.). You'd see very clear difference with high refresh rate ones.
So resolution is not everything when it comes to monitors. For anything dynamic, refresh rate is more important.
And video content generally works fine at 30, let alone 60.
Going to nitpick on this - 4K phones don't actually render at 4K. They only displayed video at 4K, and rendered at half resolution. But you're otherwise correct that you don't really need a power GPU to do basic UI work at 4K. Or rather, that even low-end GPUs these days are fairly powerful.
idk whether the the GPU is the limiting factor, but browsing gif heavy subreddits on a 4K display brings my computer to its knees. I have a haswell i5 @ 4.3GHz and a 1080ti so I don't think my machine is underpowered.
This resolution is not particularly crazy either, it is the standard DPI of all of Apple's gear for the last 6 years or so and much lower resolution than most tablets & phones. One of the bottlenecks for moving this tech beyond Apple laptops and all-in-ones (of which I am not a huge fan) has been the lack of standard external connections with enough bandwidth for these displays.
And now whenever I use my wife’s older laptop with a non-retina display, it feels like I’m looking at some 8 bit artwork!
Of course there is! The higher pixel density means everything is significantly more crisp and easier on the eyes. Resolution is not only about how many things you can fit onto the screen.
- It's possible that X->Z adapters are rare/discontinued/nonexistent/whatever, so you need to stack X->Y + Y->Z. If the adapters are active, now you need 2 more power supplies (or USB ports) just to run each display.
- There's many combinations of stacked adapters that don't work together, for various reasons, so this can involve a lot of research, and a bit of luck.
- Even if it basically works, it's common that not all features of every protocol are supported by every other protocol. I can control the brightness of one display from software (it runs directly over DVI), but not my other display (which runs over a DP->DVI adapter).
- It's also common that a lot of adapters just don't work. I've got an active adapter here that the manufacturer and retailer both swear supports dual-link DVI, but it doesn't. I eventually found a review online from someone who tore it apart and looked up the specs on the chip inside. It only supports single-link resolution. Bogus.
- There's also many passive DP->DVI adapters which claim to support dual-link, even though this is (apparently) electronically impossible. More lies.
- I have what seems to be the only working DisplayPort to dual-link DVI adapter, and it wasn't cheap (>$100). It also takes several seconds to wake up, and during that time it displays static and noise and off-color versions of my desktop. It's not the most pleasant experience.
- Newer displays are much less power-hungry than older models, so if you pay for electricity and have your displays on a lot, it's definitely cheaper to just upgrade that.
- I've also tried to convert (single-link) DVI-D to HDMI. Apparently it should be just a physical adapter, as the signals are electronically compatible in that direction. For two devices I have, when run at 1080p, the picture comes out horribly distorted. Each device supports 1080p, but when connected in this particular way, it's unwatchable. No idea why.
Any time you have to convert formats, there's potential for trouble. That's why I'm not optimistic about the new USB-C/Thunderbolt world of "we'll just encapsulate every other protocol in the world". When I've got devices and adapters strung together and it doesn't work, who do I call for support? One of Norvig's rules from PAIP was "Whenever you develop a complex data structure, develop a corresponding consistency checker". I wish I had test equipment for every port type in my house, but I don't, and that's not feasible for most people.
- More stuff on the screen. Some people can see all the pixels of a 4K display.
or
- More detail on your stuff. Some people really enjoy crisper lines.
There is no point to scaling one 1080p-sized-pixel to be represented by four 4k-sized-pixels, à la a digital zoom on a camera, if that's what you mean.
Evidently you have never heard of HiDPI?
I bought a nice 27" 4K display for gaming. ironically I can't actually notice any difference between (native) 1440p and 4K at that size for games, but fonts really do look a lot better with the extra density. I love writing code on that display.
Of course they cost a fortune today.
I frankly do not understand the idea of having a huge monitor far away from eyes, so that the angular dimensions of elements on it are the same as on a smaller screen at a book-reading distance. Well, maybe it's easier for some people to focus at a longer distance — but then more people would hold their phones at the stretched arm's length, not 1.5ft away.
> VESA PUBLISHES DISPLAYPORT™ 2.0 VIDEO STANDARD ENABLING SUPPORT FOR BEYOND-8K RESOLUTIONS, HIGHER REFRESH RATES FOR 4K/HDR AND VIRTUAL REALITY APPLICATIONS DisplayPort 2.0 enables up to 3X increase in video bandwidth performance (max payload of 77.37 Gbps); new built-in features enable improved user experience, greater flexibility and improved power efficiency
Of course, that might be because Intel IGP is still stuck on DP 1.2 and so an overwhelming majority of laptops are DP 1.2 only as well. But for video cards, we have been there for three years now: nVidia went full DP 1.4 with Pascal in 2016 AMD has been DisplayPort 1.4 since Polaris at least in 2016 as well.
As an aside, I am unclear whether https://nvidia.custhelp.com/app/answers/detail/a_id/4674/~/g... enabled them on most Maxwell cards as well? https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-95... still says DP 1.2.
When will this stuff run into the physical limits of copper?
I've resolved to just use a classic screen saver to keep the TV from shutting off, which causes total chaos when resuming from sleep.
Aside: anyone else notice how hard it is to actually use a screensaver these days. Linux desktops have removed it from in the box mode, and windows has totally obscured it away from you.
And rightfully so. Now that we have moved to display technologies which are not affected by burn-in, what's the point? All they do is waste energy.
Monitors use DPMS: DPMS: https://en.wikipedia.org/wiki/VESA_Display_Power_Management_...
I tried this with my Pi and could get it to sleep and wake, but waking would not seem to send an image, even though the backlight came on.
Also confusing is that monitors also use HDMI, which seems to be from another standards body. It appears some TVs can do lots of stuff using HDMI-CEC:
https://en.wikipedia.org/wiki/Consumer_Electronics_Control
but the TVs I've bought support it poorly. Either it's hard to find if they support it, and when they do they might only support it piecemeal. It's sort of age and odel dependent. I've never seen a monitor that supports HDMI-CEC.
I know I have it on my TV/AVR/ShieldTV as the volume for any of the above works as I expect.
CURRENT=$(sudo ddccontrol -r 0x60 dev:/dev/i2c-3 | tail -1)
if [[ $CURRENT == *"+/15/3"* ]]; then
sudo ddccontrol -r 0x60 -w 17 dev:/dev/i2c-3
else
sudo ddccontrol -r 0x60 -w 15 dev:/dev/i2c-3
fi
By passing other parameters you can control brightness, volume, power, etc.At 6K, 120hz, 10bit ( Basically Pro XDR with 120Hz ), that is roughly ~88Gbps of Raw Bandwidth.
The above two scenario aren't too far off. Although a 5K / 120hz / 10bit only needs ~64Gbps. I assume in two config above they will have to use 2 x DisplayPort 2.0 ?
( That is assuming Apple will gives us Pro Motion on Mac, why they haven't done so is beyond me. And Why Windows haven't done something similar? )
So the future USB4 and DisplayPort 2.0 will both be based on Thunderbolt 3. Are there any reason why TV keep sticking to HDMI? ( NIH Syndrome? )
And since DisplayPort 2.0 essentially turn TB3 into a one way connection, does that mean there will be no more USB Pass through or Charging Laptop while using it Display?
What do you mean why Windows hasn't done something similar? It's existed on Windows for longer than Apple had it in the iPad - it's called gsync or freesync, the later now being a VESA specification called "adaptive vsync." You can go have the ProMotion experience on Windows right now, and have been able to for years. There's a ton of 120hz, 144hz, and even 240hz gsync & freesync monitors on the market at a variety of sizes, resolutions, and even panel types. You can find 120hz+ monitors in IPS, VA, and TN panels, at a variety of price points.
For a quantitative estimate, PSNR is ~40dB even on fairly extreme images, which means less that those +/-1 code for 8bit sRGB. I'd expect even better from 10bit and natural images to be >45dB.
In particular your mention of PNG reminds me that it is lossless, so the idea of "visually lossless" at a much lower ~4:1 compression ratio seems more reasonable to me now.
I would be thrilled if USB-C became the ubiquitous connector.
==============
13:45 - Raspberry Pi 3 released
13:46 - Amazon mysteriously sees 5-year boom in sales of mini-HDMI cables and runs out in minutes.
Forgive me, but since we are talking about DP 2.0 at the same time as the new RPi4, I am wondering:
- how many hi-res (4k@60hz) monitors can I drive from a single RPi 4 ?
I think the answer should be 4 since there are already two (mini) HDMI ports and, additionally, two USB3 ports.
The question is, can Displayport (or any display format) run at 4k@60hz over USB3 ?
Thanks.
Just one. If you connect a second 4K monitor it drops to 4k@30
> run at 4k@60hz over USB3
No. USB 3.0 only has a maximum bandwidth of 5 Gbit/s. It takes around 15gbit/s to drive 4k@60hz 4:4:4 8bit color. That was first available in DisplayPort 1.2 which had 17gbit/s available bandwidth.
> additionally, two USB3 ports.
The USB ports are all on a single PCI-E bus with a maximum bandwidth of 4Gbit/s. So technically you don't even get full speed of a single USB3 port, much less 2.
USB-C alternate mode for Displayport currently (and probably always will) requires an external port controller to negotiate the alternate mode with the other end of the cable over the configuration channel (CC) pins, and possibly a high speed mux[2] if you want USB-3.0 over the same pins as well. Simpler applications like analogue headphones or USB-C to Type A adaptor cables just use specific resistor values instead, a wise decision by the standards body IMO.
Of course, if you have that built into the SoC[3], the cost of that is reduced a lot once the IP license is covered, and makes sense for a several hundred dollar phone/laptop, though there are some extra electical requirements that come with USB-C such as tolerating 20V (in case someone plugs in a laptop adaptor that has not discharged down to 5V in time) that is hard to implement in the same silicon as the rest of the SoC, and so some external logic is almost always needed.
In addition, an actual USB-C connector is relatively expensive due to the high pin count, fine tolerances and the shape requiring use of deep-draw or metal-injection-moulding method.
Micro HDMI has much simpler interface requirements, sometimes some discrete transistors for the hot plug detect signal and a low speed level shifter for the DDC bus. The connector can be cheaper to manufacture as well as the shell can be stamped out like a Micro USB connector.
There are licensing costs[4] for HDMI, while DisplayPort is royalty free, but I reckon Broadcom can negotiate that down considerably from the published figures, and I can't see USB-C being cheaper than the listed 5 cents per device charge.
[1] https://www.cypress.com/products/ez-pd-ccg1-type-c-port-cont... [2] http://www.ti.com/product/HD3SS3220 [3] https://ip.cadence.com/ipportfolio/ip-portfolio-overview/int... [4] https://en.wikipedia.org/wiki/HDMI#HDMI_Fee_Structure
http://www.ti.com/product/TPS65982 is an example of a fairly high-integration IC. Its 5USD/ea in bulk, and you still need some other supporting IC's around it, such as - I kid you not - a flash chip to hold its program code. Take a good hard look at section 9.3.4 of that manual to get a taste for how complex this gets.
They only have very reduced schematics published, but it looks like the RPi4 isn't deploying a PD solution at all. I think they are just relying on the analog signaling of Type-C. The power supply is just a "simple" type-c 5V/3A unit.
After negotiating PD, you then ask what other vendor-specific things the other end supports. If it answers back with the code assigned to VESA, then you proceed to negotiate how the various differential pairs are wired up. There are valid configurations that don't use USB at all, but repurpose the superspeed differential pairs as additional displayport pairs.
Once the host knows what the display supports, the host can configure the high-speed mux and send a displayport hotplug detect event to the SoC. After that its all on the SoC.
In principle, you could use an existing realtime unit on the SoC to do all of this, assuming that it was electrically capable of the whole shebang. In practice, I don't know that any SoC's do it yet - all of those steps are performed by either the TCPC or an embedded controller attached to the TCPC. That's likely to change eventually, though.
And I had not realized you needed PD capabilities to support alternate mode. However, the protocol itself doesn't seem that complicated to manage with a microcontroller and a few discreet transistors, right?
I can easily see it become more common in the future, and hopefully the open source silicon ecosystem (spearheaded by RISC-V) will make the necessary IP ubiquitous.
The remaining issue I can see is with the high-speed muxes, though if the raspberry is already capable of HDMI, I am not sure why the SoC couldn't handle those directly as well (though if they need to support 20V I can see it being difficult to do without external components).
The protocol is described in detail in the USB-PD spec under the physical layer chapter. Its a 300 kHz biphase mark coding scheme with lots of slop available in the timing. Looks like it was designed for low-end power supplies that considered USB 1.1 to be too expensive. The PD protocol isn't horribly broken or anything. But personally, I would have preferred to see all of it managed over the classic USB D+/D- lines as a separate device profile.
The basic set of microcontroller serial peripherals (UART, SPI, I2C, etc) aren't going to handle it well, though. Maybe you could finagle a SPI device into sampling the lines, and then figure out what the bits were in software, kindof like an oversampling UART? Maybe? Or you could bit-bang via GPIOs? Not the kind of project I would be interested in. For open source work, a small FPGA would be a much better choice to work with. Its not particularly complex logic... but doing it in software is going to be very inefficient.
As for the open source part, yeah, I was specifically thinking about open ASIC designs (whether at the RTL level, thus compilable to an FPGA, or at the layout level). The ecosystem is blooming, with open source memory compilers, as well as academic/enthusiast tools (BAG, scala, hammer-vlsi, migen) that are making great strides.
This is the first I've heard of the RPi 4 not having PD -- could you point me to the specs you saw? I searched around a bit but couldn't find anything either way.
You can see the fixed resistors attached to the CC lines for basic Type-C analog signaling, and a simple PD_SENSE line connected to the power supply IC.
https://www.raspberrypi.org/documentation/hardware/raspberry...
HDMI 2.1: 16 Gbit/s per pin, 3 pins total, less efficient 8b-10b encoding: 16×3×8/10 = 38.4 Gbit/s
DP 2.0: 20 Gbit/s per pin, 4 pins total, more efficient 128b-132b encoding: 20×4×128/132 = 77.576 Gbit/s
The article claims "77.37 Gbit/s" but I think that's a typo+rounding error (.57 → .37)
They both handle HDMI so I ended up getting an adapter for one, but I never even thought this would be something to worry about. And I'm not sure if it's DP related but when I wake the PC from sleep one of them has a frozen image for a little while until Windows realises it has to start animating again.
My work laptop, an HP Elitebook, has only a Displayport for political reasons (HP wanted to push Displayport adoption). Do you know what presentation infrastructure has Displayport? Absolutely nothing. The world decided upon HDMI to be the de-facto-standard.
So I am stuck carrying dongles and adaptors around (which means I will never have the one I need on hand) - or, if I am very lucky, I get a meeting room with a Clickshare device (which works reasonably well, but might be unpopular with external colleagues because it means installing some piece of software onto your laptop)
I know how standards work ... but for the sake of it, we do not need another option that brings virtually nothing to the table.
Edit: whoops, missed that you're looking for DP. For what it's worth I'm using HDMI for all of the above with no performance issues.
[0] https://www.amazon.com/dp/B07CWR31PN/ref=cm_sw_r_cp_api_i_bS...
I'm also gonna need a sound system with a 200 dB dynamic range, with speakers demonstrating a flat response out to 100 kHz.
If you want raw data... then yes, you'll need 10Mbps or so.
a USB type-C connector actually carries a USB-2 lane, as well as carrying a couple of USB-3 lanes (and some other miscellaneous stuff). So it's not really the same category of standard.