https://bugs.kde.org/show_bug.cgi?id=522991
Bug ID: 522991
Summary: Degraded performance on Nvidia when rendering is done
on 2nd HDMI monitor
Classification: Plasma
Product: kwin
Version First 6.7.2
Reported In:
Platform: Fedora RPMs
OS: Linux
Status: REPORTED
Severity: major
Priority: NOR
Component: performance
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
DESCRIPTION
After recently upgrading from plasma 6.6.4 to 6.7.x (6.7.0 - 6.7.2) all
WINE/Proton games became insanely laggy, not just stutters, but massive FPS
drops from 60 FPS to 40-30 FPS for many seconds.
Forcing WINE's native wayland driver also didn't help.
Outside of WINE, `vkcube` and `glxgears` show a huge FPS drop for many seconds
if their window is rendering on my second HDMI monitor (Nvidia 3070 laptop), if
instead their window was moved to the internal monitor (Intel internal GFX)
then FPS stays at 60 stable without any drops.
Note that this was not a problem on the old Plasma stack v6.6.4, newly
introduced in latest v6.7.2.
STEPS TO REPRODUCE
* Ensure entire Plasma stack v6.7.2 is installed
* On a laptop with Intel (iGFX) / Nvidia (dGFX) hybrid graphics, connect an
HDMI monitor to the Nvidia port
* Launch any WINE/Proton game and turn on VSync, or launch `vkcube` or
`glxgears`
* (Optional) If you have controllable cooler fans, ensure they are running at
max speeds to factor-out power throttling possibilty due to overheating
* Launch GPU and CPU monitoring tools
* Keep everything running for 2 hours
OBSERVED RESULT
Massive FPS drop for many seconds
EXPECTED RESULT
Rendering a Vulkan/OpenGL window on the Nvidia external GPU should have the
same performance if the app window is rendering on either the internal or
external monitor.
I don't know much honestly about graphics rendering, but a somewhat infamous
problem on Nvidia cards is copying the rendering buffer, I assume something
related to that logic was refactored in the new update which triggered this
behavior.
SOFTWARE/OS VERSIONS
```shell
$ kinfo
Operating System: Fedora Linux 44
KDE Plasma Version: 6.7.2
KDE Frameworks Version: 6.28.0
Qt Version: 6.11.1
Kernel Version: 7.1.3-200.fc44.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 20 × 12th Gen Intel® Core™ i9-12900H
Memory: 32 GB of RAM (31.0 GB usable)
Graphics Processor 1: Intel® Iris® Xe Graphics
Graphics Processor 2: NVIDIA GeForce RTX 3070 Ti Laptop GPU
```
```shell
$ kscreen-doctor -o
Output: 1 HDMI-A-1 dd3adedc-57ed-43c4-986d-ec4f8113ba91
enabled
connected
priority 1
HDMI
replication source:0
Modes: 1:[email protected]*! 2:[email protected] 3:[email protected]
4:[email protected] 5:[email protected] 6:[email protected] 7:[email protected]
8:[email protected] 9:[email protected] 10:[email protected] 11:[email protected]
12:[email protected] 13:[email protected] 14:[email protected] 15:[email protected]
16:[email protected] 17:[email protected] 18:[email protected] 19:[email protected]
20:[email protected] 21:[email protected] 22:[email protected] 23:[email protected]
24:[email protected] 25:[email protected] 26:[email protected] 27:[email protected]
28:[email protected]
Custom modes: None
Geometry: 0,0 1920x1080
Scale: 1
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: unknown
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Color profile source: sRGB
Color power preference: prefer accuracy
Brightness control: supported, set to 30% and dimming to 100%
DDC/CI: allowed
Color resolution: unknown
Allow EDR: unsupported
Sharpness control: unsupported
Automatic brightness: unsupported
Auto Rotate Policy: incapable
Adaptive backlight modulation: unsupported
Output: 2 eDP-1 6b90206c-8235-4918-a215-c8a06beabafd
enabled
connected
priority 2
Panel
replication source:0
Modes: 29:[email protected]! 30:[email protected]* 31:[email protected]
32:[email protected] 33:[email protected] 34:[email protected] 35:[email protected]
36:[email protected] 37:[email protected] 38:[email protected] 39:[email protected]
40:[email protected] 41:[email protected] 42:[email protected]
Custom modes: None
Geometry: 1920,132 1536x864
Scale: 1.25
Rotation: 1
Overscan: 0
Vrr: Never
RgbRange: Full
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Color profile source: sRGB
Color power preference: prefer efficiency and performance
Brightness control: supported, set to 100% and dimming to 100%
Color resolution: 8 bits per color, range: [6; 12] bits per color
Allow EDR: never
Sharpness control: unsupported
Automatic brightness: unsupported
Auto Rotate Policy: incapable
Adaptive backlight modulation: unsupported
```
```shell
$ vulkaninfo --summary
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return
code -9 from call to vkCreateInstance in ICD /usr/lib64/libvulkan_dzn.so.
Skipping this driver.
WARNING: [Loader Message] Code 0 : ICD for selected physical device does not
export vkGetPhysicalDeviceDisplayPlanePropertiesKHR!
WARNING: [Loader Message] Code 0 : ICD for selected physical device does not
export vkGetPhysicalDeviceDisplayPropertiesKHR!
==========
VULKANINFO
==========
Vulkan Instance Version: 1.4.341
Instance Extensions: count = 27
-------------------------------
VK_EXT_acquire_drm_display : extension revision 1
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_headless_surface : extension revision 1
VK_EXT_layer_settings : extension revision 2
VK_EXT_surface_maintenance1 : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 5
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_maintenance1 : extension revision 1
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
VK_NV_display_stereo : extension revision 1
Instance Layers: count = 11
---------------------------
VK_LAYER_FROG_gamescope_wsi_x86_64 Gamescope WSI (XWayland Bypass) Layer
(x86_64) 1.3.221 version 1
VK_LAYER_MANGOHUD_overlay_x86 Vulkan Hud Overlay
1.3.0 version 1
VK_LAYER_MANGOHUD_overlay_x86_64 Vulkan Hud Overlay
1.3.0 version 1
VK_LAYER_MESA_device_select Linux device selection layer
1.4.303 version 1
VK_LAYER_NV_optimus NVIDIA Optimus layer
1.4.329 version 1
VK_LAYER_NV_present NVIDIA Presentation Layer
1.4.329 version 1
VK_LAYER_TORKEL104_libstrangle Libstrangle framerate limiter
1.1.125 version 1
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer
1.3.207 version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer
1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_32 Steam Overlay Layer
1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_64 Steam Overlay Layer
1.3.207 version 1
Devices:
========
GPU0:
apiVersion = 1.4.354
driverVersion = 26.1.4
vendorID = 0x8086
deviceID = 0x46a6
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Intel(R) Iris(R) Xe Graphics (ADL GT2)
driverID = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
driverName = Intel open-source Mesa driver
driverInfo = Mesa 26.1.4
conformanceVersion = 1.4.0.0
deviceUUID = 8680a646-0c00-0000-0002-000000000000
driverUUID = 657acdbc-4bf8-dc79-9688-a9b96f2a07ef
GPU1:
apiVersion = 1.4.329
driverVersion = 595.80.0.0
vendorID = 0x10de
deviceID = 0x24a0
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce RTX 3070 Ti Laptop GPU
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 595.80
conformanceVersion = 1.4.3.3
deviceUUID = 01c67e3d-9400-5015-c93c-282a6cc1ffc9
driverUUID = 8011cb9e-1c51-52dc-bd8a-1ca78f7561ec
GPU2:
apiVersion = 1.4.354
driverVersion = 26.1.4
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 22.1.8, 256 bits)
driverID = DRIVER_ID_MESA_LLVMPIPE
driverName = llvmpipe
driverInfo = Mesa 26.1.4 (LLVM 22.1.8)
conformanceVersion = 1.3.1.1
deviceUUID = 6d657361-3236-2e31-2e34-000000000000
driverUUID = 6c6c766d-7069-7065-5555-494400000000
```
ADDITIONAL INFORMATION
Please check the attached video link:
https://vimeo.com/manage/videos/1209318472
OBS is set to software rendering, I captured what it looks like when the
`vkcube` window was rendering on the HDMI external monitor, and halfway
switched its window to the internal monitor, to show the vast difference.
--
You are receiving this mail because:
You are watching all bug changes.