summaryrefslogtreecommitdiff
path: root/kms++
AgeCommit message (Collapse)Author
2025-04-22pixelformats: Disable constexpr for older compilersTomi Valkeinen
gcc 11 and earlier do not support constexpr strings and vectors. Add tests and ifdefs to only use constexpr on selected places for gcc 12+. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-04-22pixelformats: use initializer_list instead of vectorTomi Valkeinen
2025-04-22pixelformats: use string_viewsTomi Valkeinen
2025-04-22Fix a few clang warningsTomi Valkeinen
2025-03-28kmstest: Support format names in addition to fourccTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26PixelFormats: Pull in formats from pixutilsTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26PixelFormats: Switch to non-fourcc PixelFormat enumTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26Use the fourcc helpersTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26PixelFormats: clean fourcc managementTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26PixelFormats: New PixelFormatInfo codeTomi Valkeinen
New pixel format code, from Python pixutils library. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-02-11pixelformats: cleanupTomi Valkeinen
2023-09-12connector: Add writeback, SPI, and USB connector type stringsDave Stevenson
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2023-04-11meson: Fix use of omapdrm_enabledTomi Valkeinen
omapdrm_enabled is set in totally wrong place, leading to build failure if pykms is disabled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Fixes: 3c9e134287362f3273ff04a86f32838b65b2651e Fixes: #70
2022-12-22Code formatting fixesTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-12-18kms++: PixelFormats: Add Y21x formatsTomi Valkeinen
Add Y210, Y212, Y216 pixel formats. Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
2022-12-18kms++: PixelFormats: Fix formattingTomi Valkeinen
Fix formatting for some pixel formats. Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2022-12-04Fix clang-tidy warningsTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-11-04kmsprint: Decode bitfields for flags and type of hdmi modeDom Cobley
Decode the bitfields for the mode type and flags of Videomode Use short names for type as it allows for consise formatting (excluding the deprecated options, that are not expected to be seen) I've swapped order of flags and types as the type is expected to be shorted so can fit in a fixed size field Signed-off-by: Dom Cobley <popcornmix@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-11-01kmsxx: Also report format of framebufferDom Cobley
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
2021-07-19framebuffer: Support partial flushingNoralf Trønnes
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
2021-03-26Add so version numbers to librariesTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2020-12-16Remove CMake supportTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
2020-12-03crtc: add legacy gamma setTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-12-03atomicreq: throw on non-existing propertyTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-12-01Fix clang-tidy reported issuesTomi Valkeinen
2020-10-09Bulk format of all filesTomi Valkeinen
2020-10-09dmabuffb: add constructor which takes in string fourccTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-10-08added #include <string> to card.h to follow gcc10 porting guideTobias Off
2020-10-02Small Property improvementsTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-09-29Fix Plane::get_possible_crtcsTomi Valkeinen
Looks like RPi gives 0xff as possible_crtcs, even if there's only one crtc. The current code throws an exception in that case. Fix this by just ignoring non-existent possible crtcs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-09-14Add meson buildTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10kms++: Add support for missing 8 -and 16-bit RGB formatsLaurent Pinchart
Add support for the RGB332, XRGB1555 and XRGB4444 formats to the PixelFormat class, the Python API, and the drawing utilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10kms++: Add support for the planar YUV formatsLaurent Pinchart
Add support for the 6 planar YUV formats (YUV and YVU, combined with 420, 422 or 444 subsampling) to the PixelFormat class, the Python API, and the drawing utilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10kms++: Add support for semiplanar YUV422 formats (NV16 and NV61)Laurent Pinchart
Add support for the NV16 and NV61 pixel formats to the PixelFormat class, the Python API, and the drawing utilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10dumbfb: Fix pitch for tri-planar formatsLaurent Pinchart
The BO pitches are unconditionally set to the frame buffer pitch, for all planes. This is correct for semiplanar YUV formats, as they subsample chroma horizontally by two but combined U and V in a single plane, cancelling each other. For fully planar YUV formats, however, the horizontal subsampling need to be taken into account to compute the pitch. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10dumbfb: Add support tri- or quadri-planar buffersLaurent Pinchart
The DumbFrameBuffer class supports up to 4 planes, as required by the DRM/KMS API, but only considers planes 0 and 1 when constructing the buffer. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10card: Rename has_has_universal_planes to has_universal_planesLaurent Pinchart
The has_has_universal_planes() method name includes a typo, fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10card: Add a method to retrieve the device minorLaurent Pinchart
The device minor number is needed to access the debugfs directory corresponding to the device. Make it available to users through a dev_minor() method on the Card object. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-05-28card: add factory function for selecting card by nameMatt Hoosier
Uses drmOpen() to do the heavy lifting.
2020-05-28card: add constructor for pre-opened FDMatt Hoosier
This is an escape hatch to let the user do whatever crazy thing he wants to obtain the DRM fd. This could be from a DRM lease, an FD passed across a Wayland protocol request, something calculated by manually walking across the set of DRI cards and selecting specific criteria, etc.
2020-05-17Merge pull request #54 from ilteroi/gcc10Tomi Valkeinen
fix compiler errors with gcc 10
2020-05-15fix compiler errors with gcc 10Peter Trompeter
2020-05-15kmstest: allow enabling output without anything connectedTomi Valkeinen
Allow kmstest to enable an output without anything connected, if the user gives a videomode. DRM framework allows this, and is needed for testing. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-04-02Include arrayHaibo Huang
2020-03-03Supply pkg-config filesMatt Hoosier
These are customary, and pretty straightforward to offer.
2020-01-29PixelFormats: cast to uin32_tTomi Valkeinen
PixelFormat is an uint32_t underneath, so use that type instead of int when casting. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-01-16Link libfmt in header-only modeMatt Hoosier
This saves us the trouble of having a copy of its shared library installed into the target filesystem, which would conflict with an independently packaged copy. Only the headers are needed to accomplish the usages that Kms++ makes.
2019-11-19Set a dummy version number on the shared librariesMatt Hoosier
This makes package managers happier when the software is built as a dynamic-library. Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
2019-11-18Allow making extframebuffer and dmabufframebuffer with modifiersMatt Hoosier
Many GPUs use bandwidth compression or tiling, and this information must be passed along to KMS when constructing the framebuffer object around the GEM handle or prime filedescriptor. Add an vector of modifiers as an optional parameter to both of these classes. Bump the minimum required version of libdrm to 2.4.17 to ensure drmModeAddFB2WithModifiers() is available. Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
2019-11-18fbs: use std::array and .at()Tomi Valkeinen
Use std::array and .at() to get bounds checking. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>