CertainLach/VivePro2-Linux-Driver

DSC support tracking issue

CertainLach opened this issue · 4 comments

Figured out whole DSC thing:
There is one useful DisplayId field reported by HMD: bits per pixel = 8.0

By default it is detected as 10.4375 in amdgpu driver
While running steamvr with noise on screen do

# Divide result (167) by 16 = 10.4375
cat /sys/kernel/debug/dri/0/DP-X/dsc_bits_per_pixel

But as EDID contains 8.0, we need to pass it manually
While steamvr is not running (Command above will return 0), do

# 8.0 * 16 = 128 = 0x80
echo 0x80 > /sys/kernel/debug/dri/0/DP-X/dsc_bits_per_pixel

And then steamvr will just work on max resolution

I am not sure how to implement this kernel patch myself,
it should be reported to amdgpu devs instead

P.S: /sys/kernel/debug = debugfs, you can mount it with

mount -t debugfs -f none /sys/kernel/debug
nsf commented

Wow, great news! I'll try it sometime tomorrow.

nsf commented

It worked, however I had to apply the number after starting steamvr. Tried the described flow - it didn't do anything. But starting with garbage picture and then applying the correct number makes the picture clear.

It was easier than i thought, implemented patches for correct DSC support for amdgpu:
https://github.com/CertainLach/VivePro2-Linux-Driver/tree/master/kernel-patches/dsc

Not yet sent to mailing lists, i need to test some things before