Make AMD gpus choose YCbCr420 encoding automatically when required for 4k 60Hz output

Bug #1922754 reported by Werner Sembach
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Unassigned
Groovy
Fix Released
Medium
Unassigned
Hirsute
Fix Released
Medium
Unassigned

Bug Description

SRU Justification:

Impact:
On some setups, while the monitor and the gpu support display modes with pixel clocks of up to 600MHz, the link encoder might not. This prevents YCbCr444 and RGB encoding for 4k60Hz, but YCbCr420 encoding might still be possible. However, which color mode is used is decided before the link encoder capabilities are checked, causing the check to fail and discarding 4k60Hz from the list of possible display modes.

Fix:
This patch fixes the problem by retrying to find a display mode with YCbCr420 enforced and using it, if it is valid.

Testcase:
Tested on an Clevo NL50RU. General: Find a PC with a current AMD Radeon GPU, but only a hdmi 1.4 output (e.g. current Clevo laptops with AMD APU's). Connect a 4k@60Hz display supporting YCbCr420 encoding to the hdmi port. Without the patch the maximum that can be set via xrandr is 3840 × 2160 30Hz. With the Patch 3840 × 2160 60Hz can be selected which will use YCbCr420 automatically.

Patch already got accepted upstream for linux-next: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=14e4a095b29fd290a9b80f6e553adcfcf01672d1 and applies without modifications to ubuntu-focal/hwe-5.8

Commit-hash: 14e4a095b29fd290a9b80f6e553adcfcf01672d1
---
ProblemType: Bug
ApportVersion: 2.20.11-0ubuntu27.16
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: test 2903 F.... pulseaudio
 /dev/snd/controlC0: test 2903 F.... pulseaudio
CasperMD5CheckResult: skip
CurrentDesktop: Budgie:GNOME
DistroRelease: Ubuntu 20.04
MachineType: TUXEDO TUXEDO Aura 15 Gen1
Package: linux (not installed)
ProcFB: 0 amdgpudrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.8.0-48-generic root=UUID=59a028a1-0764-418a-951d-515f1839bd7f ro ignore_loglevel quiet splash i8042.reset i8042.nomux i8042.nopnp i8042.noloop xhci_hcd.quirks=1073741824 vt.handoff=7
ProcVersionSignature: Ubuntu 5.8.0-48.54~20.04.1-generic 5.8.18
RelatedPackageVersions:
 linux-restricted-modules-5.8.0-48-generic N/A
 linux-backports-modules-5.8.0-48-generic N/A
 linux-firmware 1.187.9
Tags: focal
Uname: Linux 5.8.0-48-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 11/13/2020
dmi.bios.release: 7.3
dmi.bios.vendor: INSYDE Corp.
dmi.bios.version: 1.07.03RTR2
dmi.board.asset.tag: Tag 12345
dmi.board.name: AURA1501
dmi.board.vendor: TUXEDO Computers
dmi.board.version: Not Applicable
dmi.chassis.asset.tag: No Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: Notebook
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnINSYDECorp.:bvr1.07.03RTR2:bd11/13/2020:br7.3:svnTUXEDO:pnTUXEDOAura15Gen1:pvrNotApplicable:rvnTUXEDOComputers:rnAURA1501:rvrNotApplicable:cvnNotebook:ct10:cvrN/A:
dmi.product.family: Not Applicable
dmi.product.name: TUXEDO Aura 15 Gen1
dmi.product.sku: AURA1501
dmi.product.version: Not Applicable
dmi.sys.vendor: TUXEDO

Revision history for this message
Werner Sembach (matombo) wrote :
Werner Sembach (matombo)
description: updated
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1922754

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Werner Sembach (matombo) wrote : AlsaInfo.txt

apport information

tags: added: apport-collected focal
description: updated
Revision history for this message
Werner Sembach (matombo) wrote : CRDA.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : IwConfig.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : Lspci.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : Lspci-vt.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : Lsusb.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : Lsusb-t.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : Lsusb-v.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : ProcCpuinfoMinimal.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : ProcEnviron.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : ProcModules.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : PulseList.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : RfKill.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : UdevDb.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : WifiSyslog.txt

apport information

Revision history for this message
Werner Sembach (matombo) wrote : acpidump.txt

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
tags: added: patch
Revision history for this message
Alex Hung (alexhung) wrote :

@matombo,

You will want to take a look at https://wiki.ubuntu.com/KernelTeam/KernelUpdates for how to send SRUs to Ubuntu kernel.

An example will be LP:1923000 (you can add SRU template to this bug), cover page: https://lists.ubuntu.com/archives/kernel-team/2021-April/119154.html & patch: https://lists.ubuntu.com/archives/kernel-team/2021-April/119155.html

Werner Sembach (matombo)
description: updated
description: updated
Revision history for this message
Stefan Bader (smb) wrote :

The proposed fix is currently 68eb3ae3c63708f823aeeb63bb15197c727bd9bf in linux-next, so Impish would for now be affected as well (even being based on v5.12).

Changed in linux (Ubuntu Groovy):
importance: Undecided → Medium
status: New → In Progress
Changed in linux (Ubuntu Hirsute):
importance: Undecided → Medium
status: New → In Progress
Changed in linux (Ubuntu):
importance: Undecided → Medium
Stefan Bader (smb)
Changed in linux (Ubuntu Hirsute):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Groovy):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-hirsute' to 'verification-done-hirsute'. If the problem still exists, change the tag 'verification-needed-hirsute' to 'verification-failed-hirsute'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-hirsute
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-groovy' to 'verification-done-groovy'. If the problem still exists, change the tag 'verification-needed-groovy' to 'verification-failed-groovy'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-groovy
Werner Sembach (matombo)
tags: added: verification-done-groovy
removed: verification-needed-groovy
Revision history for this message
Werner Sembach (matombo) wrote :

Testing done:
The proposed kernels are fixing the bug.

tags: added: verification-done-hirsute
removed: verification-needed-hirsute
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (29.0 KiB)

This bug was fixed in the package linux - 5.11.0-18.19

---------------
linux (5.11.0-18.19) hirsute; urgency=medium

  * hirsute/linux: 5.11.0-18.19 -proposed tracker (LP: #1927578)

  * Packaging resync (LP: #1786013)
    - update dkms package versions

  * Introduce the 465 driver series, fabric-manager, and libnvidia-nscq
    (LP: #1925522)
    - debian/dkms-versions -- add NVIDIA 465 and migrate 450 to 460

  * linux-image-5.0.0-35-generic breaks checkpointing of container
    (LP: #1857257)
    - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files

  * Hirsute update: v5.11.17 upstream stable release (LP: #1927535)
    - vhost-vdpa: protect concurrent access to vhost device iotlb
    - Revert "UBUNTU: SAUCE: ovl: Restore vm_file value when lower fs mmap fails"
    - ovl: fix reference counting in ovl_mmap error path
    - coda: fix reference counting in coda_file_mmap error path
    - amd/display: allow non-linear multi-planar formats
    - drm/amdgpu: reserve fence slot to update page table
    - drm/amdgpu: fix GCR_GENERAL_CNTL offset for dimgrey_cavefish
    - gpio: omap: Save and restore sysconfig
    - KEYS: trusted: Fix TPM reservation for seal/unseal
    - vdpa/mlx5: Set err = -ENOMEM in case dma_map_sg_attrs fails
    - pinctrl: lewisburg: Update number of pins in community
    - block: return -EBUSY when there are open partitions in blkdev_reread_part
    - pinctrl: core: Show pin numbers for the controllers with base = 0
    - arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
    - bpf: Allow variable-offset stack access
    - bpf: Refactor and streamline bounds check into helper
    - bpf: Tighten speculative pointer arithmetic mask
    - perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
    - perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]
    - perf auxtrace: Fix potential NULL pointer dereference
    - perf map: Fix error return code in maps__clone()
    - HID: google: add don USB id
    - HID: asus: Add support for 2021 ASUS N-Key keyboard
    - HID: alps: fix error return code in alps_input_configured()
    - HID cp2112: fix support for multiple gpiochips
    - HID: wacom: Assign boolean values to a bool variable
    - soc: qcom: geni: shield geni_icc_get() for ACPI boot
    - dmaengine: xilinx: dpdma: Fix descriptor issuing on video group
    - dmaengine: xilinx: dpdma: Fix race condition in done IRQ
    - ARM: dts: Fix swapped mmc order for omap3
    - m68k: fix flatmem memory model setup
    - net: geneve: check skb is large enough for IPv4/IPv6 header
    - dmaengine: tegra20: Fix runtime PM imbalance on error
    - s390/entry: save the caller of psw_idle
    - arm64: kprobes: Restore local irqflag if kprobes is cancelled
    - xen-netback: Check for hotplug-status existence before watching
    - cavium/liquidio: Fix duplicate argument
    - csky: change a Kconfig symbol name to fix e1000 build error
    - ia64: fix discontig.c section mismatches
    - ia64: tools: remove duplicate definition of ia64_mf() on ia64
    - x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access
    - net: hso: fix NULL-deref on disconnect regression
    - USB: CDC-ACM...

Changed in linux (Ubuntu Hirsute):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (51.1 KiB)

This bug was fixed in the package linux - 5.8.0-55.62

---------------
linux (5.8.0-55.62) groovy; urgency=medium

  * groovy/linux: 5.8.0-55.62 -proposed tracker (LP: #1930379)

  * [Potential Regression] Unable to create KVM with uvtool on Groovy ARM64
    (LP: #1929925)
    - SAUCE: KVM: arm64: Assign kvm_ipa_limit

linux (5.8.0-54.61) groovy; urgency=medium

  * groovy/linux: 5.8.0-54.61 -proposed tracker (LP: #1927592)

  * Introduce the 465 driver series, fabric-manager, and libnvidia-nscq
    (LP: #1925522)
    - debian/dkms-versions -- add NVIDIA 465 and migrate 450 to 460

  * linux-image-5.0.0-35-generic breaks checkpointing of container
    (LP: #1857257)
    - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files

  * netfilter: x_tables: fix compat match/target pad out-of-bound write
    (LP: #1927682)
    - netfilter: x_tables: fix compat match/target pad out-of-bound write

  * Groovy update: upstream stable patchset 2021-05-04 (LP: #1927150)
    - mt76: fix tx skb error handling in mt76_dma_tx_queue_skb
    - net: fec: ptp: avoid register access when ipg clock is disabled
    - powerpc/4xx: Fix build errors from mfdcr()
    - atm: eni: dont release is never initialized
    - atm: lanai: dont run lanai_dev_close if not open
    - Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
    - ALSA: hda: ignore invalid NHLT table
    - ixgbe: Fix memleak in ixgbe_configure_clsu32
    - scsi: ufs: ufs-qcom: Disable interrupt in reset path
    - blk-cgroup: Fix the recursive blkg rwstat
    - net: tehuti: fix error return code in bdx_probe()
    - net: intel: iavf: fix error return code of iavf_init_get_resources()
    - sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
    - cifs: ask for more credit on async read/write code paths
    - gfs2: fix use-after-free in trans_drain
    - cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
    - gpiolib: acpi: Add missing IRQF_ONESHOT
    - nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
    - NFS: Correct size calculation for create reply length
    - net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
    - net: wan: fix error return code of uhdlc_init()
    - net: davicom: Use platform_get_irq_optional()
    - net: enetc: set MAC RX FIFO to recommended value
    - atm: uPD98402: fix incorrect allocation
    - atm: idt77252: fix null-ptr-dereference
    - cifs: change noisy error message to FYI
    - irqchip/ingenic: Add support for the JZ4760
    - kbuild: add image_name to no-sync-config-targets
    - kbuild: dummy-tools: fix inverted tests for gcc
    - umem: fix error return code in mm_pci_probe()
    - sparc64: Fix opcode filtering in handling of no fault loads
    - habanalabs: Call put_pid() when releasing control device
    - staging: rtl8192e: fix kconfig dependency on CRYPTO
    - u64_stats,lockdep: Fix u64_stats_init() vs lockdep
    - regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
    - block: Fix REQ_OP_ZONE_RESET_ALL handling
    - drm/amd/display: Revert dram_clock_change_latency for DCN2.1
    - drm/amdgpu: fb BO should be ttm_bo_type_device
    - drm/radeon: fix AGP dependency
    - nvme: add NVM...

Changed in linux (Ubuntu Groovy):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (29.2 KiB)

This bug was fixed in the package linux - 5.11.0-18.19+21.10.1

---------------
linux (5.11.0-18.19+21.10.1) impish; urgency=medium

  * impish/linux: 5.11.0-18.19+21.10.1 -proposed tracker (LP: #1927560)

  * Packaging resync (LP: #1786013)
    - [Packaging] update update.conf
    - update dkms package versions

  [ Ubuntu: 5.11.0-18.19 ]

  * hirsute/linux: 5.11.0-18.19 -proposed tracker (LP: #1927578)
  * Packaging resync (LP: #1786013)
    - update dkms package versions
  * Introduce the 465 driver series, fabric-manager, and libnvidia-nscq
    (LP: #1925522)
    - debian/dkms-versions -- add NVIDIA 465 and migrate 450 to 460
  * linux-image-5.0.0-35-generic breaks checkpointing of container
    (LP: #1857257)
    - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files
  * Hirsute update: v5.11.17 upstream stable release (LP: #1927535)
    - vhost-vdpa: protect concurrent access to vhost device iotlb
    - Revert "UBUNTU: SAUCE: ovl: Restore vm_file value when lower fs mmap fails"
    - ovl: fix reference counting in ovl_mmap error path
    - coda: fix reference counting in coda_file_mmap error path
    - amd/display: allow non-linear multi-planar formats
    - drm/amdgpu: reserve fence slot to update page table
    - drm/amdgpu: fix GCR_GENERAL_CNTL offset for dimgrey_cavefish
    - gpio: omap: Save and restore sysconfig
    - KEYS: trusted: Fix TPM reservation for seal/unseal
    - vdpa/mlx5: Set err = -ENOMEM in case dma_map_sg_attrs fails
    - pinctrl: lewisburg: Update number of pins in community
    - block: return -EBUSY when there are open partitions in blkdev_reread_part
    - pinctrl: core: Show pin numbers for the controllers with base = 0
    - arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
    - bpf: Allow variable-offset stack access
    - bpf: Refactor and streamline bounds check into helper
    - bpf: Tighten speculative pointer arithmetic mask
    - perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
    - perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]
    - perf auxtrace: Fix potential NULL pointer dereference
    - perf map: Fix error return code in maps__clone()
    - HID: google: add don USB id
    - HID: asus: Add support for 2021 ASUS N-Key keyboard
    - HID: alps: fix error return code in alps_input_configured()
    - HID cp2112: fix support for multiple gpiochips
    - HID: wacom: Assign boolean values to a bool variable
    - soc: qcom: geni: shield geni_icc_get() for ACPI boot
    - dmaengine: xilinx: dpdma: Fix descriptor issuing on video group
    - dmaengine: xilinx: dpdma: Fix race condition in done IRQ
    - ARM: dts: Fix swapped mmc order for omap3
    - m68k: fix flatmem memory model setup
    - net: geneve: check skb is large enough for IPv4/IPv6 header
    - dmaengine: tegra20: Fix runtime PM imbalance on error
    - s390/entry: save the caller of psw_idle
    - arm64: kprobes: Restore local irqflag if kprobes is cancelled
    - xen-netback: Check for hotplug-status existence before watching
    - cavium/liquidio: Fix duplicate argument
    - csky: change a Kconfig symbol name to fix e1000 build error
    - ia64: fix discontig.c section mis...

Changed in linux (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Werner Sembach (matombo)
tags: added: verification-done-focal
removed: verification-needed-focal
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.