Commit graph

193 commits

Author SHA1 Message Date
6f5adc0568 drm: s
upport explicit sync with multi-gpu destinations

will break o
n mgpu nvidia before 560 driver
2024-08-05 00:27:09 +02:00
a70fc6a2fd drm: avoid testing with a pf event 2024-08-03 19:10:09 +02:00
18c6a8ccaf drm: immediately send presentation events for tearing 2024-08-03 18:23:24 +02:00
toamz
339337cc7b
libinput: Update switch state in libinput event (#38) 2024-08-03 12:57:30 +01:00
7c3565f9be drm: don't rollback cursors on test 2024-07-30 15:55:39 +02:00
9ccb4411ee utils: fix missing include 2024-07-29 22:04:50 +02:00
Samuel Cobb
f95d150937
drm: Follow symlinks for AQ_DRM_DEVICES (#34) 2024-07-26 12:17:06 +01:00
Ikalco
0ab8ffa67d
output: fix destroying wl and headless outputs (#32) 2024-07-25 22:14:05 +01:00
moetayuko
a7d77c60ee
gbm: manually set modifier for implicit bo allocation (#30)
Ported from wlroots

Fixes https://github.com/hyprwm/Hyprland/issues/7001
2024-07-25 21:41:46 +01:00
UjinT34
0720a5cbae gbm: Fix cursor bo for nvidia (#29) 2024-07-25 00:18:17 +02:00
353dc1b729 drm: conform to both renderable and scanoutable formats in scanout buffers
fixes #28
2024-07-24 22:41:58 +02:00
744a383a52 gbm: log scanout flag state in trace 2024-07-24 21:59:40 +02:00
Khiet Tam Nguyen
e569340c6b
drm: ignore primary argument when using evdi drivers (#25)
* fix: ignore primary if using evdi drivers for displaylink

* style: removed curly braces from evdi if-check
2024-07-24 20:14:29 +02:00
4a1424e85b gbm: use flags in create_with_modifiers
amdeeznuts
2024-07-24 20:11:55 +02:00
Vaxry
07eb70afb1
gbm: Nvidia fixes for scanout gbm allocation (#27)
* nv fixes

* fix
2024-07-24 18:41:13 +02:00
4c72cd4d0b session/input: add missing pos to touch down events 2024-07-23 19:18:57 +02:00
601f6cf95c wayland: drop required zwp_linux_dmabuf_v1 version to 4
compatibility reasons, we don't really need 5
2024-07-21 16:22:23 +02:00
UjinT34
7a84686b4a
output: remove redundant needsFrame, allow skip on mouse event (#21) 2024-07-20 20:56:18 +02:00
acfea3bd1d drm: reject modeless commits 2024-07-20 16:58:42 +02:00
af219a0a2c drm: avoid a crash when no cursor plane is present 2024-07-20 15:55:18 +02:00
35e00a4a9d buffer: add backendLock 2024-07-19 11:29:50 +02:00
9d7c69cde2 drm: minor improvements to crtc rechecks 2024-07-18 22:53:05 +02:00
a6f1ad1560 drm: fixup cursor fb rotation cases 2024-07-18 12:30:49 +02:00
JManch
dcac376308
drm: fix crash for connectors without a fallback mode (#20) 2024-07-18 11:09:17 +02:00
5b34d0df1f drm: attempt to re-modeset if commit fails
however, keep track of this so we don't attempt to modeset all the time on an invalid state
2024-07-18 00:06:04 +02:00
2dc8ba961c drm: accept mgpu tests early to avoid a blit 2024-07-17 23:13:39 +02:00
bf651128cf drm/atomic: log crtc and mode blobs in commit 2024-07-17 22:35:41 +02:00
phonetic112
cebcba4e10
wayland: Add title/class to wayland window (#19) 2024-07-17 11:40:45 +02:00
Ikalco
1e385d02b3
session: use deviceID instead of fd for libseat_close_device (#18) 2024-07-16 18:29:09 +02:00
Jan Beich
d6791cc5ce
drm: properly check master node after 05219d5287 (#17)
[LOG] [AQ] reopenDRMNode: drmModeCreateLease failed, falling back to open
[LOG] [AQ] reopenDRMNode: opening node /dev/dri/renderD128
[ERR] [AQ] reopenDRMNode: drmGetMagic failed: Permission denied
2024-07-16 11:53:50 +02:00
Jan Beich
1dd44c85e7
drm: add missing include to fix BSD (#15)
src/backend/Backend.cpp:317:13: error: use of undeclared identifier 'close'
  317 |             close(newFD);
      |             ^
src/backend/Backend.cpp:323:13: error: use of undeclared identifier 'close'
  323 |             close(newFD);
      |             ^
2024-07-16 11:53:20 +02:00
Ikalco
db417a49e8
drm: handle monitor hotplugs and fix a few bugs that it revealed (#14)
* handle monitor hotplugs and fix a few bugs that it revealed

* fix cursorFB uaf and other stuf
2024-07-15 20:03:00 +02:00
Ikalco
ad8261ba99
api: add getting monitor render formats (#13) 2024-07-14 11:06:13 +02:00
2efe4296f8 drm: fix build on 32b archs
fixes #5
2024-07-13 22:56:46 +02:00
8d73016db8 drm/renderer: use the duped fd for gl 2024-07-12 23:23:39 +02:00
5199868794 drm: reopen allocator node for mgpu 2024-07-12 21:25:53 +02:00
05219d5287 drm: reopen DRM node to avoid KMS refcounting issues 2024-07-12 20:53:11 +02:00
59fc21940d drm/renderer: properly save texture data in attachment 2024-07-12 17:31:28 +02:00
45bea6dab2 drm/renderer: support external rendering 2024-07-12 17:20:08 +02:00
f3c6b673f9 drm: return render formats properly on mgpu 2024-07-12 16:46:26 +02:00
27008ef767 drm: avoid using unsupported modifiers for mgpu 2024-07-12 16:32:08 +02:00
UjinT34
815df06da2
gbm: Expose bo buffer mapping (#12)
* expose bo buffer mapping

* update comment

* implement endDataPtr to unmap gbm buffer
2024-07-12 15:59:47 +02:00
47d95b8a73 drm/renderer: log modifier in createEGLImage 2024-07-12 15:56:32 +02:00
13cf43497e drm: avoid crash on nullptr cursors 2024-07-12 15:52:23 +02:00
7bbdf32fb8 drm/renderer: handle external formats
shoutout nvidia...
2024-07-12 11:16:47 +02:00
996cc6f6a4 drm/atomic: fix gamma resetting
thanks @ikalco
2024-07-12 10:52:05 +02:00
ee0dea62e2 drm/renderer: also use blitting for cursor planes 2024-07-12 10:48:59 +02:00
0faf47cf2f drm/atomic: fix dpms 2024-07-12 00:39:38 +02:00
f485ad7546 drm: guard connector in calculateMode 2024-07-11 23:06:26 +02:00
4fd590af94 drm: fix synchronization on amd 2024-07-11 23:00:56 +02:00
d619af4971 drm: better handle drm blits 2024-07-11 22:17:57 +02:00
46ce868cbb wayland: band-aid for frame scheduling
thanks @phonetic112
2024-07-11 20:54:23 +02:00
c4a5fafe76 drm: properly blit multigpu surfaces 2024-07-11 20:41:57 +02:00
UjinT34
1ae9ead82c
drm: pass explicitOutFence pointer and do not touch the value (#10)
* pass explicitOutFence pointer and do not touch the value

* add resetExplicitFences
2024-07-11 16:13:44 +02:00
d92d55d454 drm: handle mismatched formats in commit 2024-07-11 12:19:41 +02:00
965f429b29 drm: avoid crashes on non-existent modes in restoring after vt 2024-07-10 12:28:38 +02:00
e3f2c0d5cc drm: split allocators per drm device 2024-07-09 14:10:52 +02:00
dbace2b794 session: support setting the leds 2024-07-09 10:39:30 +02:00
bd6da3bec6 drm: always rescan connectors after rechecking crtcs 2024-07-09 10:31:01 +02:00
05995dd21e drm: reset boHandles after freed in fb 2024-07-08 23:04:12 +02:00
3c118519e6 drm: reimport cursor fb on multigpu 2024-07-08 21:22:56 +02:00
157f067cf8 gbm: emit deestroy before destroying bo 2024-07-08 20:21:37 +02:00
UjinT34
0ce4b193cf
gbm: fix gbm buffer creation (#9) 2024-07-08 19:47:06 +02:00
ef43e5174b drm: drop buffers from KMS on .destroy 2024-07-08 18:45:59 +02:00
d69569698e drm: add log for rescan after alloc 2024-07-08 18:38:41 +02:00
5f9f0601c3 drm: fix log 2024-07-08 18:37:49 +02:00
acba4aa037 drm: avoid sending state to non-existent outputs 2024-07-08 17:20:41 +02:00
42585b413d drm: do not assign many crtcs to single port 2024-07-08 17:20:18 +02:00
56e7659ad8 drm: recheck CRTCs after launch and reset 2024-07-08 15:57:16 +02:00
dc1181a65e drm: fix epic string parsing fail 2024-07-07 23:19:11 +02:00
UjinT34
a473c5313d
output: add scheduleFrame reasons (#7) 2024-07-07 18:05:05 +02:00
Jan Beich
5d08afba5a Add missing headers for BSDs
src/allocator/GBM.cpp:137:17: error: use of undeclared identifier 'close'
  137 |                 close(attrs.fds.at(j));
      |                 ^
src/allocator/GBM.cpp:159:9: error: use of undeclared identifier 'close'
  159 |         close(attrs.fds.at(i));
      |         ^
src/backend/Session.cpp:141:5: error: use of undeclared identifier 'close'
  141 |     close(fd);
      |     ^
src/backend/Wayland.cpp:44:9: error: use of undeclared identifier 'close'
   44 |         close(fd);
      |         ^
src/backend/Wayland.cpp:63:9: error: use of undeclared identifier 'close'
   63 |         close(drmState.fd);
      |         ^
src/backend/Wayland.cpp:658:13: error: use of undeclared identifier 'close'
  658 |             close(fd);
      |             ^
src/backend/Wayland.cpp:668:13: error: use of undeclared identifier 'close'
  668 |             close(fd);
      |             ^
src/backend/Wayland.cpp:676:9: error: use of undeclared identifier 'close'
  676 |         close(fd);
      |         ^
2024-07-07 16:10:40 +03:00
d8525fbd63 drm: check for timeline support for explicit sync 2024-07-06 17:45:47 +02:00
330c089cd8 drm: add support for explicit sync 2024-07-06 17:38:18 +02:00
Tom Englund
263cb161da
allocator: add missing virtual destructor (#3)
add missing virtual destructor to base class and free gbm device on
destruction of CGBMAllocator
2024-07-06 14:57:27 +02:00
29c415a4f5 drm: nullcheck output in reset 2024-07-06 11:30:47 +02:00
ea92cba414 backends: set needsFrame for manually scheduled frames 2024-07-06 11:26:42 +02:00
d048d1c644 drm: lease support 2024-07-05 19:21:40 +02:00
Tom Englund
2a3ff6a61d
formatutils: ensure we dont leak name ptr (#2)
store format name in a std::string and free the char ptr to ensure we
dont leak on each call to drmGetFormatName.
2024-07-05 15:18:44 +02:00
c5cf93a3cc backends: fix needsFrame being stuck 2024-07-05 14:24:10 +02:00
d3bacb4600 swapchain: add rollback 2024-07-04 23:13:23 +02:00
8d1d10397a drm: don't shift state on failed commits 2024-07-04 23:11:18 +02:00
205472bad7 drm: fix vrr checks 2024-07-04 15:33:46 +02:00
f48653cf0e session: Tablet support
woo
2024-07-03 19:12:17 +02:00
a0cfad9ec0 session: clear libinput devices before unrefing libinput
thanks @ikalco
2024-07-03 12:49:12 +02:00
4ca125d05a drm: set fbs on vt restore
thanks @ikalco
2024-07-02 23:06:03 +02:00
2f220d9301 logging: add AQ_TRACE for omitting trace logs 2024-07-02 14:42:24 +02:00
874183997f backend: idle fd improvements 2024-07-02 14:32:41 +02:00
20a99be9f4 drm: implement edid parsing 2024-07-02 13:15:56 +02:00
7e4ae2e226 drm/atomic: add support for gamma ramps 2024-07-02 12:41:32 +02:00
0eb28d40f0 drm: log vrr capabilities in connect 2024-07-02 12:11:54 +02:00
d1e48322ed wayland: avoid leaving the swapchain null on late displays 2024-07-01 14:59:16 +02:00
13f94112aa core: allow specifying names for outputs 2024-07-01 14:52:50 +02:00
51cd6f4374 Headless: Add backend 2024-07-01 14:33:05 +02:00
b8fc53e69d wayland: handle close events 2024-07-01 13:06:41 +02:00
cef415f033 drm/legacy: avoid crashing on missing crtcs 2024-06-30 21:43:18 +02:00
25836ee88e drm: reset on beginning of DRM
We do not set atomic props for everything, so all else should be reset
2024-06-30 20:54:11 +02:00
c19bf35c02 drm/backend: idle improvements and drm fixes 2024-06-30 19:04:14 +02:00
a313f6f0e4 session: fix missing break in eventtype 2024-06-29 20:02:12 +02:00
3ffa774f12 drm: deny implicit modifiers for the cursor plane 2024-06-29 19:28:51 +02:00