summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-06utils: Add a dump_framebuffer() methodcrcLaurent Pinchart
Add a new method to write the contents of a framebuffer to a file descriptor. This can be used to capture frames from writeback connectors. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-08-06card: Add support for writeback connectorsLaurent Pinchart
Add a Card::has_writeback() method to report if the card support writeback connectors. Similarly to universal planes, add a KMSXX_DISABLE_WRITEBACK_CONNECTORS environment variable to disable enumeration of writeback connectors to avoid confusing existing code that expects all connectors to model an output. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-08-06kms++: 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>
2020-08-06kms++: 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>
2020-08-06kms++: 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>
2020-08-06pykmsbase: Add missing pixel formatsLaurent Pinchart
Several pixel formats defined in the C++ PixelFormat class are missing from the Python API. Add them. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-08-06dumbfb: 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>
2020-08-06dumbfb: 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>
2020-08-06card: 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>
2020-08-06card: 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 get_minor() method on the Card object. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-08-04Merge pull request #57 from dreamer-dead/videodevice-unique-ptrTomi Valkeinen
Use unique_ptr to prevent memory leaks in VideoDevice class
2020-07-24Use unique_ptr to prevent memory leaks in VideoDevice classdreamer.dead
2020-05-28Merge pull request #56 from matthoosier-garmin/more-card-constructorsTomi Valkeinen
More card constructors
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-17Merge pull request #53 from matthoosier-garmin/resmgr-release-methodsTomi Valkeinen
resmgr: add release() methods
2020-05-15fix compiler errors with gcc 10Peter Trompeter
2020-05-15resmgr: add release() methodsMatt Hoosier
This makes the ResourceManager class much more functional for uses where the set of resources used to scan out a scene changes from frame to frame. The atomic modesetting API discipline requires a brute-force search to find a compatible pairing of planes/etc, and being able to reserve bits incrementally is much simpler than throwing out the entire resourcemanager and make a new one each time a resource reserved in a tentative attempt to probe its compatibility with an test-mode atomic commit, turns out not to pan out.
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-21py/cam.py: get w & h from cmdlineTomi Valkeinen
2020-04-21kmstest: add crc16 printTomi Valkeinen
Add an option to print crc16 for the framebuffer contents.
2020-04-21Add simple kmstouch test toolTomi Valkeinen
Only single touch supported, and pretty naive implementation.
2020-04-21kmsprint: use Videomode::to_string_longTomi Valkeinen
2020-04-21videodevice: use exception to catch bad fdTomi Valkeinen
2020-04-07Merge pull request #52 from hhb/masterTomi Valkeinen
Include array
2020-04-02Include arrayHaibo Huang
2020-03-04Merge pull request #51 from matthoosier-garmin/make-pkgconfig-filesTomi Valkeinen
Supply pkg-config files
2020-03-03Supply pkg-config filesMatt Hoosier
These are customary, and pretty straightforward to offer.
2020-02-14Merge pull request #50 from jsarha/py-tests-tidss-updates-v3Tomi Valkeinen
Py tests tidss updates v3
2020-02-14global_alpha_test.py: Updates for tidssJyri Sarha
2020-02-14alpha-test.py: Updates for tidssJyri Sarha
2020-02-14ctm_test.py: Updates for tidssJyri Sarha
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-29improve hpd.pyTomi Valkeinen
2020-01-19Merge pull request #47 from matthoosier-garmin/libfmt-headers-onlyTomi Valkeinen
Link libfmt in header-only mode
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-20Add configure-time option to disable libdrm-omap usageMatt Hoosier
Add an build option to allow explicitly shutting off libdrm-omap features. This is useful for packaging situations to prevent accidental unexpected features. To deactivate the drm-omap specific functionality that was activated unconditionally if present until now, use: cmake -DKMSXX_ENABLE_LIBDRMOMAP=OFF Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
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>
2019-11-18fbs: check params and ensure drmModeAddFB2 is passed correctly sized arraysTomi Valkeinen
Check that parameter vectors are of the same size, and match the number of planes. Extend the vectors to 4, as drmModeAddFB2() expects to get arrays of 4 elements. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reported-by: Matt Hoosier <matt.hoosier@garmin.com>
2019-11-06Merge pull request #40 from tomba/workTomi Valkeinen
Misc improvements
2019-11-06kms++: modernize deprecated headersTomi Valkeinen
2019-11-06kms++: use 'override' all aroundTomi Valkeinen
2019-11-06card: remove useless constsTomi Valkeinen
2019-11-06pykmsbase: upgrade Blob __init__ to fix deprecation warningTomi Valkeinen
2019-11-06dumbfb: cleanup to avoid calls to virtual funcs via constructorTomi Valkeinen
2019-11-06fb: add begin_cpu_access & end_cpu_accessTomi Valkeinen
2019-11-06Split dmabuf support from ExtFramebuffer into DmabufFramebufferTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>