Re: Plumbing explicit synchronization through the Linux ecosystem
On Thu, Mar 12, 2020 at 6:36 PM Jason Ekstrand wrote: > From the perspective of a Wayland compositor (I used to play in this > space), they'd love to implement the new explicit sync extension but > can't. Sure, they could wire up the extension, but the moment they go > to flip a client buffer to the screen directly, they discover that KMS > doesn't support any explicit sync APIs. So, yes, they can technically > implement the extension assuming the EGL stack they're running on has > the sync_file extensions but any client buffers which come in using > the explicit sync Wayland extension have to be composited and can't be > scanned out directly. As a 3D driver developer, I absolutely don't > want compositors doing that because my users will complain about > performance issues due to the extra blit. Maybe this is something for the Marketing Department to solve? Sell the extra processing that can be done during such extra blit as a feature? As a former user of a wide-gamut monitor that has no sRGB mode, and a gamer, I would definitely accept the extra step (color conversion, not "just a blit"!) between the application and the actual output. In fact, I have set up compicc just for this purpose. Games with poisonous oversaturated colors (because none of the game authors care about wide-gamut monitors) are worse than the same games affected by the very small performance penalty due to the conversion. We just need a Marketing Person to come up with a huge list of other cases where such compositing step is required for correctness, and declare that direct scanout is something that makes no sense in the present day, except possibly on embedded devices. Of course the above trolling does not solve the problem related to inability to be sure about the correct API usage. -- Alexander E. Patrakov CV: http://pc.cd/PLz7 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Fixing the kernels backlight API
13.02.2014 04:26, David Herrmann wrote: > The "attach" stuff actually sounds doable, but who decides which one > to attach? You still need some user-space script during device-plug > for that. > But to be honest, the simplest way would be a "backlightd" > bus-activatable daemon. SetBacklight() then takes a DRM-connector and > brightness-value, which the daemon looks up in /sys and sets.. This > has the advantage that we can do any fancy matching in user-space. We > can provide quirks (maybe even via udev-hwdb) and other helpers for > weird setups. What would be done with Samsung monitors (like an old SyncMaster 770P) that have a DVI connection, no physical buttons and have to be controlled via DDC-CI? Currently, ddccontrol works (via /dev/i2c-*), but only from root. I would like this use case to be covered in such a way that it could work both in Xorg and in Wayland, and, if possible, without races related to i2c usage from the kernel and from userspace. -- Alexander E. Patrakov
Ugly lockdep trace after radeon drm-next patches
_ich [ 40.727787] ACPI Warning: 0xa040-0xa05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251) [ 40.727791] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver [ 40.729390] iTCO_vendor_support: vendor-support=0 [ 40.730317] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10 [ 40.730361] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS [ 41.214667] radeon :16:00.0: fence driver on ring 5 use gpu addr 0x00072118 and cpu addr 0xc90023466118 [ 41.214672] [drm] GART: num cpu pages 131072, num gpu pages 131072 [ 41.215052] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0 [ 41.219006] [drm] Loading TURKS Microcode [ 41.221557] ni_cp: Failed to load firmware "radeon/TURKS_smc.bin" [ 41.221566] [drm:evergreen_startup] *ERROR* Failed to load firmware! [ 41.221568] radeon :16:00.0: disabling GPU acceleration [ 41.222741] INFO: trying to register non-static key. [ 41.222763] the code is fine but needs lockdep annotation. [ 41.222781] turning off the locking correctness validator. [ 41.222800] CPU: 2 PID: 644 Comm: udevd Not tainted 3.10.0-rc7-rafael+ #25 [ 41.222821] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012 [ 41.222845] 88025350 8802521f97d8 8165b7ae 8802521f98c8 [ 41.222876] 810a033e 8802521f98d8 0002 8802 [ 41.222907] 8802 0006 8802521f9868 [ 41.222938] Call Trace: [ 41.222952] [] dump_stack+0x19/0x1b [ 41.222971] [] __lock_acquire+0x181e/0x1ee0 [ 41.222990] [] ? mark_held_locks+0x61/0x150 [ 41.223010] [] ? retint_restore_args+0xe/0xe [ 41.223029] [] ? trace_hardirqs_on_caller+0x105/0x1d0 [ 41.223053] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 41.223076] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223096] [] lock_acquire+0x87/0x150 [ 41.223114] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223136] [] flush_work+0x38/0x270 [ 41.223154] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223174] [] ? delay_tsc+0x82/0xe0 [ 41.223215] [] ? r600_rlc_stop+0x29/0xa0 [radeon] [ 41.223251] [] radeon_irq_kms_fini+0x2a/0x60 [radeon] [ 41.223289] [] evergreen_init+0x2ca/0x300 [radeon] [ 41.223322] [] radeon_device_init+0x65c/0x760 [radeon] [ 41.223355] [] radeon_driver_load_kms+0x8d/0x160 [radeon] [ 41.223386] [] drm_get_pci_dev+0x181/0x290 [drm] [ 41.223408] [] ? kfree+0xe8/0x250 [ 41.223436] [] radeon_pci_probe+0xa3/0xd0 [radeon] [ 41.223457] [] local_pci_probe+0x46/0x80 [ 41.223476] [] pci_device_probe+0xf9/0x120 [ 41.223497] [] driver_probe_device+0x76/0x220 [ 41.223518] [] __driver_attach+0xa3/0xb0 [ 41.223537] [] ? driver_probe_device+0x220/0x220 [ 41.223557] [] bus_for_each_dev+0x5e/0x90 [ 41.223577] [] driver_attach+0x19/0x20 [ 41.223596] [] bus_add_driver+0xf1/0x260 [ 41.223615] [] driver_register+0x75/0x150 [ 41.223635] [] __pci_register_driver+0x5f/0x70 [ 41.223655] [] ? 0xa06b7fff [ 41.223678] [] drm_pci_init+0x11a/0x130 [drm] [ 41.223698] [] ? 0xa06b7fff [ 41.223725] [] radeon_init+0x9c/0xba [radeon] [ 41.224292] [] do_one_initcall+0x3a/0x160 [ 41.224867] [] load_module+0x1b56/0x2370 [ 41.225454] [] ? sys_getegid16+0x50/0x50 [ 41.226033] [] SyS_finit_module+0x86/0x90 [ 41.226604] [] system_call_fastpath+0x1a/0x1f [ 41.227215] radeon :16:00.0: 88024e458800 unpin not necessary [ 41.227819] radeon :16:00.0: 88024e458800 unpin not necessary [ 41.228502] [drm:evergreen_init] *ERROR* radeon: MC ucode required for NI+. [ 41.229135] radeon :16:00.0: Fatal error during GPU init [ 41.229760] [drm] radeon: finishing device. [ 41.231516] radeon :16:00.0: fence driver on ring 5 use gpu addr 0x00072118 and cpu addr 0xc9002389c118 [ 41.232379] [TTM] Finalizing pool allocator [ 41.233092] [TTM] Finalizing DMA pool allocator [ 41.233830] [TTM] Zone kernel: Used memory at exit: 0 kiB [ 41.234558] [TTM] Zone dma32: Used memory at exit: 0 kiB [ 41.235298] [drm] radeon: ttm finalized [ 41.236259] radeon: probe of :16:00.0 failed with error -22 [ 41.237155] hda-intel :16:00.1: Handle VGA-switcheroo audio client [ 41.238357] snd_hda_intel :16:00.1: irq 71 for MSI/MSI-X [ 41.242954] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/:08:00.0/:0a:04.0/:14:00.0/:15:03.0/:16:00.1/sound/card1/input13 -- Alexander E. Patrakov ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Ugly lockdep trace after radeon drm-next patches
_ich [ 40.727787] ACPI Warning: 0xa040-0xa05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251) [ 40.727791] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver [ 40.729390] iTCO_vendor_support: vendor-support=0 [ 40.730317] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10 [ 40.730361] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS [ 41.214667] radeon :16:00.0: fence driver on ring 5 use gpu addr 0x00072118 and cpu addr 0xc90023466118 [ 41.214672] [drm] GART: num cpu pages 131072, num gpu pages 131072 [ 41.215052] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0 [ 41.219006] [drm] Loading TURKS Microcode [ 41.221557] ni_cp: Failed to load firmware "radeon/TURKS_smc.bin" [ 41.221566] [drm:evergreen_startup] *ERROR* Failed to load firmware! [ 41.221568] radeon :16:00.0: disabling GPU acceleration [ 41.222741] INFO: trying to register non-static key. [ 41.222763] the code is fine but needs lockdep annotation. [ 41.222781] turning off the locking correctness validator. [ 41.222800] CPU: 2 PID: 644 Comm: udevd Not tainted 3.10.0-rc7-rafael+ #25 [ 41.222821] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012 [ 41.222845] 88025350 8802521f97d8 8165b7ae 8802521f98c8 [ 41.222876] 810a033e 8802521f98d8 0002 8802 [ 41.222907] 8802 0006 8802521f9868 [ 41.222938] Call Trace: [ 41.222952] [] dump_stack+0x19/0x1b [ 41.222971] [] __lock_acquire+0x181e/0x1ee0 [ 41.222990] [] ? mark_held_locks+0x61/0x150 [ 41.223010] [] ? retint_restore_args+0xe/0xe [ 41.223029] [] ? trace_hardirqs_on_caller+0x105/0x1d0 [ 41.223053] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 41.223076] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223096] [] lock_acquire+0x87/0x150 [ 41.223114] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223136] [] flush_work+0x38/0x270 [ 41.223154] [] ? queue_delayed_work_on+0xa0/0xa0 [ 41.223174] [] ? delay_tsc+0x82/0xe0 [ 41.223215] [] ? r600_rlc_stop+0x29/0xa0 [radeon] [ 41.223251] [] radeon_irq_kms_fini+0x2a/0x60 [radeon] [ 41.223289] [] evergreen_init+0x2ca/0x300 [radeon] [ 41.223322] [] radeon_device_init+0x65c/0x760 [radeon] [ 41.223355] [] radeon_driver_load_kms+0x8d/0x160 [radeon] [ 41.223386] [] drm_get_pci_dev+0x181/0x290 [drm] [ 41.223408] [] ? kfree+0xe8/0x250 [ 41.223436] [] radeon_pci_probe+0xa3/0xd0 [radeon] [ 41.223457] [] local_pci_probe+0x46/0x80 [ 41.223476] [] pci_device_probe+0xf9/0x120 [ 41.223497] [] driver_probe_device+0x76/0x220 [ 41.223518] [] __driver_attach+0xa3/0xb0 [ 41.223537] [] ? driver_probe_device+0x220/0x220 [ 41.223557] [] bus_for_each_dev+0x5e/0x90 [ 41.223577] [] driver_attach+0x19/0x20 [ 41.223596] [] bus_add_driver+0xf1/0x260 [ 41.223615] [] driver_register+0x75/0x150 [ 41.223635] [] __pci_register_driver+0x5f/0x70 [ 41.223655] [] ? 0xa06b7fff [ 41.223678] [] drm_pci_init+0x11a/0x130 [drm] [ 41.223698] [] ? 0xa06b7fff [ 41.223725] [] radeon_init+0x9c/0xba [radeon] [ 41.224292] [] do_one_initcall+0x3a/0x160 [ 41.224867] [] load_module+0x1b56/0x2370 [ 41.225454] [] ? sys_getegid16+0x50/0x50 [ 41.226033] [] SyS_finit_module+0x86/0x90 [ 41.226604] [] system_call_fastpath+0x1a/0x1f [ 41.227215] radeon :16:00.0: 88024e458800 unpin not necessary [ 41.227819] radeon :16:00.0: 88024e458800 unpin not necessary [ 41.228502] [drm:evergreen_init] *ERROR* radeon: MC ucode required for NI+. [ 41.229135] radeon :16:00.0: Fatal error during GPU init [ 41.229760] [drm] radeon: finishing device. [ 41.231516] radeon :16:00.0: fence driver on ring 5 use gpu addr 0x00072118 and cpu addr 0xc9002389c118 [ 41.232379] [TTM] Finalizing pool allocator [ 41.233092] [TTM] Finalizing DMA pool allocator [ 41.233830] [TTM] Zone kernel: Used memory at exit: 0 kiB [ 41.234558] [TTM] Zone dma32: Used memory at exit: 0 kiB [ 41.235298] [drm] radeon: ttm finalized [ 41.236259] radeon: probe of :16:00.0 failed with error -22 [ 41.237155] hda-intel :16:00.1: Handle VGA-switcheroo audio client [ 41.238357] snd_hda_intel :16:00.1: irq 71 for MSI/MSI-X [ 41.242954] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/:08:00.0/:0a:04.0/:14:00.0/:15:03.0/:16:00.1/sound/card1/input13 -- Alexander E. Patrakov