mesa-drm/tests/modetest
Marijn Suijten dfd00c6250 modetest: allocate and commit atomic request around set_property()
Currently the atomic request is only assigned after `set_property()` is
called, leaving `dev.req` in its uninitialized state causing
`drmModeAtomicAddProperty()` to return an error code, which is printed
as `"Success"` because `errno` is not set by `libdrm` (but it would have
been when non-atomic `drmModeObjectSetProperty()` called an IOCTL
immediately):

    sony-akatsuki-row ~ $ modetest -M msm -a -w 81:ACTIVE:0
    failed to set CRTC 81 property ACTIVE to 0: Success

Solve this by assigning a new atomic request object before calling
`set_property()`, when there are properties to set.  Likewise, commit
these properties after `set_property()` even if there is no other
operation (setting modes or planes) specified.

Furthermore `drmModeObjectSetProperty()` is implemented in terms of
`DRM_IOCTL()` which already returns `-errno` when `ioctl()` returns
`-1`, so we should instead pass `ret` to `strerror()` and get an
accurate error string out of `drmModeAtomicAddProperty()` too.

Fixes: 93220283 ("tests/modetest: Add atomic support")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
2023-09-10 12:14:06 +00:00
..
Android.mk android: introduce Android.common.mk to reduce boilerplate 2017-01-27 15:48:16 +00:00
buffers.c modetest: add support for DRM_FORMAT_NV{24,42} 2023-09-08 17:42:38 +00:00
buffers.h modetest: add support for writeback connector 2023-09-08 16:27:39 +00:00
cursor.c meson,configure: include config.h automatically 2018-03-20 18:19:26 +00:00
cursor.h modetest: add cursor support 2014-04-22 11:14:12 -04:00
Makefile.sources modetest: move sources lists to makefiles.sources 2014-09-28 17:09:34 +01:00
meson.build modetest: custom mode support 2023-09-08 18:19:31 +00:00
modetest.c modetest: allocate and commit atomic request around set_property() 2023-09-10 12:14:06 +00:00