summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-12-04packaging: Disable etnaviv features in meson buildtizen_9.0_m2_releaseaccepted/tizen/base/toolchain/20240124.003909accepted/tizen/base/riscv/20231204.084122accepted/tizen/base/asan/20231206.052346accepted/tizen/base/20231204.085446accepted/tizen/9.0/base/20241030.075659tizen_basetizen_9.0_baseaccepted/tizen_base_toolchainaccepted/tizen_base_riscvaccepted/tizen_base_asanaccepted/tizen_baseaccepted/tizen_9.0_baseHoegeun Kwon1-0/+1
Disable unnecessary etnaviv features on Tizen. Change-Id: I3b48fd87e871e87d2fefc49de1f1fd111c8ebffa Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2023-12-04packaging: add freedreno packageSeung-Woo Kim1-2/+29
To support freedreno in mesa, it is reuqired to build freedreno. Add freedreno packages. To remove build warning, add -fno-strict-aliasing to CFLAGS. Change-Id: Ia52c06a2e5ad8260e2b6534d890f7ef51b2074d6 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2023-12-04libdrm : add vigs apijinhyung.jo9-0/+1615
Change-Id: Ie67c19bdb4a6f9e2190dbb4d3f825e878fca3635 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com> [sw0312.kim: remove direct config.h include] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> vigs: Add meson build system Change-Id: I263e91fece8336c6f530b49402e9e839519a855c Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> packaging: Enable vigs Change-Id: I06c54a9cca66f23aaad2c9142b0d6c839be8c8b2 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> libdrm_vigs: Fence support added VIGS kernel driver now supports fences, so update libdrm to expose them to user space Change-Id: I9c07084a357c0a8dc87c049e01238f9049ca0828 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> libdrm_vigs: Scanout flag added to surfaces Change-Id: Ib6f96d2542c3df0b78f7ef1b610bcc3fa0b678d6 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> libdrm_vigs: Support plane z-pos setting Change-Id: I2e1418425f1b4a17f49f19fabb8c4a2bdc84e5ef Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> VIGS: Support DP memory DP memory is used by some of the tizen gstreamer plugins, TBM and X.Org video driver. Its main purpose is to share GEM buffers between media decoding and presentation layers Change-Id: Ie377119b46d6033355bf6ce00adc01e36096742a Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> VIGS: Implement plane flip/rotate Planes can now be horizontally/vertically flipped and rotated by 90, 180 or 270 degrees Change-Id: I3db7dc3854add2b777e41aed54039a0d2323e0b1 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com> VIGS: add PRIME functions Change-Id: I488c4529c1fb1f52aec9081cb6eb82c40d256dc3 Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com> VIGS: Add surface convert ioctl Change-Id: Ic7fcb69be2a2fcc58363647278c0be62ac48766e Signed-off-by: Vladislav Andresov <v.andresov@partner.samsung.com> VIGS: fix always to check return of drmIoctl() Fix to check return value of drmIoctl(). Change-Id: I0aae8953ebcb0b2b580638c1c730e2a4833df9f2 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> vigs: add drm_public macro to vigs api For visibility, public api should have drm_public macro. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Conflicts: meson.build Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2023-12-04support drm_user_handler to handle vendor eventsBoram Park2-0/+80
Add drm_user_hander to handle vendor drm events like ipp events. Note: From tizen, this is used from libtdm vendor layer. Change-Id: I23149a08d9f9f66f9929d95dcfe6a96c1c897404 Signed-off-by: Boram Park <boram1288.park@samsung.com> check if user_handler_list inited Change-Id: I95abd7e8cc8d0485a7cc06dca54bfa46775eb8aa Signed-off-by: Boram Park <boram1288.park@samsung.com> [inki.dae: add omitted patch from tizen libdrm-2.4.75] Signed-off-by: Inki Dae <inki.dae@samsung.com> [sw0312.kim: squash user_handler patches] Signed-off-by: Seung-Woo Kim <sw0312.kim>
2023-12-04exynos: add support kernel userspace api for IPPv2 callsMarek Szyprowski1-0/+253
Add kernel header defines for Exynos DRM IPPv2 API. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Change-Id: I1f0e8d957829b85808b5332c4e0e9bf4ddec65df
2023-12-04exynos: Add kernel userspace api for v1Hoegeun Kwon1-0/+275
Change-Id: Ic2bbde341316924bc3c9bf3af8cd206c6f3f8f6b Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> drm: ipptest: support ipp dynamic color range This patch supports dynamic range for color space conversion. COLOR_RANGE_LIMITED: selects narrow -> Y(16 to 235), Cb/Cr(16 to 240) COLOR_RANGE_FULL: selects wide -> Y/Cb/Cr(0 to 255), Wide default Change-Id: I94190ac3f3630904d2461e226d34378ac2b82b9d Signed-off-by: Donghwa Lee <dh09.lee@samsung.com> libdrm/exynos: add support for IPP blending, dithering, and colorfill This patch adds the fields for IPP bleding, dithering, and colorfill. Change-Id: Ib9cd7c7b22ee9f1017d1db3ae34d39dea342ffec Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com> ipptest: added M2M to screen on fimc_m2m_set_mode This patch added for the function outputing the M2M to a screen. So, you can check for Image Post processing dirver to screen. Also you can select the degree about (0, 90, 180, 270). I will briefly explain the process of the function: - Memory(YUV422) ---> IPP ---> Memory(RGB888) ---> Screen - Create four DMA memory. - Draw the image of the YUV422 format on three DMA memories. - Rotate the relevant image by using IPP driver. - The rotated image is stored in one DMA memory as the RGB888 format. - The one DMA memory output screen. I referred to the modetest code. Change-Id: I2bf5738d98a457ced274dc8237df8ef108153e61 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> exynos/drm: sync with v4.1.36 rebased tree for exynos_ipp_prop_list There is a problem using the IPP_GET_RPOPERTY ioctl because the structure exynos_ipp_prop_list is not synchronized. Synchronize with exynos_ipp_prop_list structure of tizen kernel v4.1.36 Refer below commit of tizen kernel: - Commit id: 60f8b78 (drm/exynos/gsc: Add rotation hardware limits of gscaler) - https://review.tizen.org/git/?p=platform/kernel/linux-exynos.git;a=commit;h=60f8b78ad8b75c5c3a52f2ad66897da628153eec Change-Id: Id1989f571c989afb2c73bd4d654f560c3be4067c Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2023-12-04exynos: support DRM_IOCTL_EXYNOS_GEM_MAPJoonyoung Shim3-4/+19
The commit d41b7a3a745a("exynos: Don't use DRM_EXYNOS_GEM_{MAP_OFFSET/ MMAP} ioctls") removed it same with the ioctl that this patch adds. The reason that removed DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET was we could use DRM_IOCTL_MODE_MAP_DUMB. Both did exactly same thing. Now exynos-drm driver of linux kernel revives it as DRM_EXYNOS_GEM_MAP because of render node. DRM_IOCTL_MODE_MAP_DUMB isn't permitted in render node, so this patch also supports DRM_IOCTL_EXYNOS_GEM_MAP. Change-Id: Ib548dc8a6bea076375465f64ee2fdd658a90e435 Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> exynos: fix build warnings Fix build warnings to exynos_fimg2d module. This patch fixes below two build warnings, exynos_fimg2d.c: In function 'g2d_scale_and_blend': exynos_fimg2d.c:978:3: warning: 'scale_y' may be used uninitialized in this function [-Wmaybe-uninitialized] g2d_add_cmd(ctx, SRC_YSCALE_REG, scale_y); ^ exynos_fimg2d.c:977:3: warning: 'scale_x' may be used uninitialized in this function [-Wmaybe-uninitialized] g2d_add_cmd(ctx, SRC_XSCALE_REG, scale_x); Change-Id: I70908088c61b85570aec6e3ec19b405df4820d37 Signed-off-by: Inki Dae <inki.dae@samsung.com> Conflicts: libkms/exynos.c Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2023-12-04add packagingAnas Nashif6-0/+177
do not install libdrm_intel on ARM added baselibs for multi lib supporta for intel drm Fixed package groups Fixed groups, dependencies and rpmlint warnings resetting manifest requested domain to floor Remove dependency on xorg-macros libdrm didn't use any macros from xorg-macros, so remove it. Change-Id: I37cda1f7bc48a2d0f98c9a319c78f8dca6b0f90c Signed-off-by: Alex Wu <zhiwen.wu@linux.intel.com> packaging: build using upstream tags Change-Id: I1587634bfdd59172b7032cd968d0005261f1ad77 Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org> fixed arch check for libdrm-intel requires. Currently we have invalid requires for libdrm-intel for non-arm and non-intel arches. Change-Id: I19c90a272da284f63c6d862a2e67e94f110a2807 Signed-off-by: Andriy Prystupa <andriy.prystupa@globallogic.com> packaging: add libdrm-tools This patch adds libdrm-tools package which includes test utilities such as modetest/modeprint. Change-Id: Icc10b1c56625af7954823664156cfec8b7b57c3e Signed-off-by: Chanho Park <chanho61.park@samsung.com> clean spec file - allow build for yocto - improve rpmlint score Change-Id: I1d563567b30914925e67fd3aebf3a6cc5e65026a Signed-off-by: Ronan Le Martret <ronan@fridu.net> packaging: depend on the same release Change-Id: I02c7ff42eb688c6a6b03532966f2a16daad8910f Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org> packaging: add tools-exynos for testing exynos_drm This patch adds tools-exynos package to test exynos. Change-Id: I8dbd821f056ac3f7e2a043a97d0c39bec7f75b40 Signed-off-by: Chanho Park <chanho61.park@samsung.com> remove manifest for security domain policy Change-Id: I556117f4dca6c11e3477b3404244f5a8c17b1ede Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com> Add manifest for security domain policy Change-Id: I18f14262475041b2f1e919923907f998a8f12d87 packaging: Clean up kmstest There is no reason to remove kmstest from package. Change-Id: I772c21ca005f7edb23bb832a2ae3f8b3259d7a08 Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Update to 2.4.75 Change-Id: I54ef37f9be4c03a7502b2e0cc8b93e46efe87a8a Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> packaging: notice license of libdrm package This patch copies license file to /usr/share/licenses/libdrm/. The licenses of all packages should be noticed when released. Change-Id: I0224046d19ff73b44ec825c2b2327836e55b44c2 Signed-off-by: Inki Dae <inki.dae@samsung.com> Update to 2.4.90 / Update to 2.4.97 / Update to 2.4.98 / Update to 2.4.100 Add drmdevice tool packaging. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> add COPYING file Add COPYING file with MIT license. Change-Id: I5ce242bea2bdd74f8c58d30da82e987eeb9a5c55 Signed-off-by: Boram Park <boram1288.park@samsung.com> [sw0312.kim: replaces xf86free license as proper MIT license copying] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> packaging: spec: Fix to meson build system Change-Id: Ib1b454a96750600cdcd7c76dbb87f7bde48f54c6 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> package: Fix to enable intel api Change-Id: I475f56afe71073174f867dc8d13d1d7121672481 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> [sw0312.kim: bump up to v2.4.109] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> packaging: Change the libdrm version of the spec file Change the libdrm version to 2.4.114 Change-Id: I69636bc3057f36e316a0ebd7ff0be0c6cd78d3f4 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> packaging: Remove libkms Removed libkms from libdrm v2.4.111, remove libkms from spec file. Change-Id: I61a588dea869a5c00769b130ba919070db49263a Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> packaging: Bump version to v2.4.118 Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2023-12-04vbltest: add option to use high pipeHoegeun Kwon1-1/+17
Add option to use high pipe. Change-Id: I028f305a5dac877bd4ec925ed11295ec4d319c1a Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2023-12-04xf86drm: check return value of asprintf()Seung-Woo Kim1-4/+9
Check return value of asprintf() to fix build warning about not checked return. Change-Id: Iae8da56e7f743aa249869c58f6557148f799bd4c Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2023-12-04freedreno/msm: fix __u64 printing formatSeung-Woo Kim1-1/+1
__u64 is always unsigned long long, so print with %llu instead of PRIu64 for uint64_t. Note: fix build warning in upstream. Change-Id: Ic88578b626cb7e05fb5829955e0d10cb77b1be2b Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2023-11-20build: bump version to 2.4.118libdrm-2.4.118upstreamSimon Ser1-1/+1
Signed-off-by: Simon Ser <contact@emersion.fr>
2023-11-20xf86drmMode: add drmModeCloseFB()Simon Ser3-0/+18
Add a wrapper for the new CLOSEFB IOCTL, to close a framebuffer without implicitly disabling planes or CRTCs. See https://lore.kernel.org/dri-devel/20231020101926.145327-2-contact@emersion.fr/ Signed-off-by: Simon Ser <contact@emersion.fr>
2023-11-20Sync headers with drm-nextSimon Ser2-17/+113
Synchronize drm.h, drm_mode.h and drm_fourcc.h to drm-next. Generated using make headers_install. Generated from drm-next branch commit c79b972eb88b077d2765e7790d0902b3dc94d55c Signed-off-by: Simon Ser <contact@emersion.fr>
2023-11-20xf86drm: add drmGetNodeTypeFromDevIdSimon Ser3-0/+25
This is useful to figure out whether the dev_t refers to a primary node or a render node. Indeed, drmGetDeviceFromDevId returns a drmDevice, which holds both the primary and render nodes. Signed-off-by: Simon Ser <contact@emersion.fr>
2023-11-15modetest: switch usage to proper options grammarNeil Armstrong1-4/+26
It was unclear how #mode could be used, so fixup the usage string and print the struct grammar of the -s and -P options to clarify the usage. The following grammar was compiled: <plane_topology> ::= <plane_id> "@" <crtc_id> ":" <width> "x" <height> ( <plane_offsets> )? <plane_offsets> ::= "+" <x_offset> "+" <y_offset> ( <plane_scale> )? <plane_scale> ::= "*" <scale> ( <plane_format> )? <plane_format> ::= "@" <format> <mode_topology> ::= <connector_id> ( "," <connector_id> )* ( "@" <crtc_id> )? ":" <mode_selection> ( "@" <format> )? <mode_selection> ::= <indexed_mode> | <named_mode> | <custom_mode> <indexed_mode> ::= "#" <mode_index> <named_mode> ::= <width> "x" <height> ( "-" <vrefresh> )? <custom_mode> ::= <hdisplay> "," <hsyncstart> "," <hsyncend> "," <htotal> "," <vdisplay> "," <vsyncstart> "," <vsyncend> "," <vtotal> "-" <vrefresh> <property> ::= <object_id> ":" <property_name> ":" <value> <plane_id> ::= [0-9]+ <crtc_id> ::= [0-9]+ <width> ::= [0-9]+ <height> ::= [0-9]+ <x_offset> ::= [0-9]+ <y_offset> ::= [0-9]+ <scale> ::= [0-9]+ ( "." [0-9]+ ) <format> ::= ( [A-Z] | [0-9] )+ <connector_id> ::= [0-9]+ <mode_index> ::= [0-9]+ <hdisplay> ::= [0-9]+ <hsyncstart> ::= [0-9]+ <hsyncend> ::= [0-9]+ <htotal> ::= [0-9]+ <vdisplay> ::= [0-9]+ <vsyncstart> ::= [0-9]+ <vsyncend> ::= [0-9]+ <vtotal> ::= [0-9]+ <object_id> ::= [0-9]+ <vrefresh> ::= [0-9]+ <property_name> ::= ( [A-Z] | [0-9] | "_" )+ <value> ::= [0-9]+ with the https://bnfplayground.pauliankline.com/ service Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-31modetest: add support for big-endian XRGB1555/RGB565Geert Uytterhoeven1-0/+4
Add support for creating buffers using big-endian formats. For now this is limited to XRGB1555 and RGB565, which are the most common big-endian formats. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - No changes, v2: - New.
2023-10-31util: add pwetty support for big-endian RGB565Geert Uytterhoeven1-0/+1
Add support for rendering the crosshairs in a buffer using the big-endian RGB565 format. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - No changes, v2: - New.
2023-10-31util: fix pwetty on big-endianGeert Uytterhoeven1-0/+44
Cairo always uses native byte order for rendering. Hence if the byte order of the frame buffer differs from the byte order of the CPU, the frame buffer contents need to be byteswapped twice: once before rendering, to convert to native byte order, and a second time after rendering, to restore the frame buffer format's byte order. Note that byte swapping is not done for ARGB32 formats, as for these formats, byte order only affects the order of the red, green, and blue channels, which we do not care about here. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Wrap byteswap_buffer{16,32}() implementation inside #if HAVE_CAIRO to avoid defined-but-not-used compiler warnings, v2: - RGB30 is untested.
2023-10-31util: add test pattern support for big-endian XRGB1555/RGB565Geert Uytterhoeven1-10/+21
Add support for drawing the SMPTE and tiles test patterns in buffers using big-endian formats. For now this is limited to XRGB1555 and RGB565, which are the most common big-endian formats. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Increase indentation after definition of cpu_to_be16(), v2: - New.
2023-10-31modetest: add support for parsing big-endian formatsGeert Uytterhoeven1-6/+9
When specifying a frame buffer format like "RG16_BE" (big-endian RG16), modetest still uses the little-endian variant, as the format string is truncated to four characters. Fix this by increasing the format string size to 8 bytes (7 characters + NUL terminator). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Update for suffix change from "be" to "_BE", cfr. commit ffb9375a505700ad ("xf86drm: handle DRM_FORMAT_BIG_ENDIAN in drmGetFormatName()"), - Replace hardcoded numbers in code by sizeof(), v2: - New.
2023-10-31util: add missing big-endian RGB16 frame buffer formatsGeert Uytterhoeven1-0/+3
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Update for suffix change from "be" to "_BE", cfr. commit ffb9375a505700ad ("xf86drm: handle DRM_FORMAT_BIG_ENDIAN in drmGetFormatName()"), v2: - New.
2023-10-31util: fix 16 bpp patterns on big-endianGeert Uytterhoeven1-7/+14
DRM formats are defined to be little-endian, unless the DRM_FORMAT_BIG_ENDIAN flag is set. Hence writes of multi-byte pixel values need to take endianness into account. Introduce a swap16() helper to byteswap 16-bit values, and a cpu_to_le16() helper to convert 16-bit values from CPU-endian to little-endian, and use the latter in the various pattern fill functions for 16-bit formats. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Increase indentation after definition of cpu_to_le16(), v2: - New.
2023-10-31util: fix 32 bpp patterns on big-endianGeert Uytterhoeven1-9/+23
DRM formats are defined to be little-endian, unless the DRM_FORMAT_BIG_ENDIAN flag is set. Hence writes of multi-byte pixel values need to take endianness into account. Introduce a swap32() helper to byteswap 32-bit values, and a cpu_to_le32() helper to convert 32-bit values from CPU-endian to little-endian, and use the latter in the various pattern fill functions for 32-bit formats. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - Use new HAVE_BIG_ENDIAN symbol, v3: - Increase indentation after definition of cpu_to_le32(), v2: - Add Acked-by, - Add swap32() intermediate helper, - Add __ARM_BIG_ENDIAN and __s390__.
2023-10-31intel: determine target endianness using mesonGeert Uytterhoeven2-2/+7
The endianness of the target is currently determined based on preprocessor symbols. Unfortunately some symbols checked are wrong (sparc64-linux-gnu-gcc does not define __BIG_ENDIAN__ or SPARC), and several checks for big-endian architectures are missing. Fix this by introducing a new preprocessor symbol HAVE_BIG_ENDIAN, which is set based on meson's knowledge of the target endianness. Android.common.mk does not need an update, as Android is always little-endian (https://developer.android.com/ndk/guides/abis.html). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - Replace explicit #ifdef checks by a define set by meson, v3: - No changes, v2: - Add arm, aarch64, microblaze, s390, and sh.
2023-10-30modetest: add support for DRM_FORMAT_NV{15,20,30}Jonas Karlman4-10/+225
Add smpte and tiles pattern for 10-bit NV15, NV20 and NV30 pixel formats based on the existing pattern for NV12 with colors simply scaled from 8-bit to 10-bit. These pixel formats are typically used by video decoder and display pipeline on Rockchip SoCs, e.g. on RK322X, RK3288, RK3328 and RK3399 the video decoder produce 10-bit video frames in NV15 and NV20 format. NV20 and NV30 pixel formats was added in drm-misc commit 728c15b4b5f3 ("drm/fourcc: Add NV20 and NV30 YUV formats"). This can be tested/validated on Rockchip SoCs with drm-misc commit d4b384228562 ("drm/rockchip: vop: Add NV15, NV20 and NV30 support"). Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Christopher Obbard <chris.obbard@collabora.com> Tested-by: Christopher Obbard <chris.obbard@collabora.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2023-10-24meson: fix typo in libdrm_intelDavid Jagu1-1/+1
Replace system() with cpu_family() for libdrm_intel This restore libdrm_intel to be built by default Closes: #93 Signed-off-by: David Jagu <marav8@free.fr>
2023-10-24modetest: add SMPTE pattern support for C[124] formatsGeert Uytterhoeven1-3/+6
Add support for drawing the SMPTE pattern in buffers using a color-indexed frame buffer formats with two, four, or sixteen colors. Note that this still uses 256 as the CLUT size, as DRM_IOCTL_MODE_SETGAMMA enforces that the size matches against the (fixed) gamma size, while the CLUT size depends on the format. Move clearing the color LUT entries from util_smpte_index_gamma() to its caller, as only the caller knows how many entries there really are (currently DRM always assumes 256 entries). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - Add missing C[12] to oneline-summary, - Do not remove memset() of full lut, else some entries may stay uninitialized, v3: - Add Acked-by, v2: - Split off changes to tests/modetest/modetest.c, - Add C1 and C2 support. The linuxdoc comments say userspace can query the gamma size: * drm_mode_gamma_set_ioctl - set the gamma table * * Set the gamma table of a CRTC to the one passed in by the user. Userspace can * inquire the required gamma table size through drm_mode_gamma_get_ioctl. * drm_mode_gamma_get_ioctl - get the gamma table * * Copy the current gamma table into the storage provided. This also provides * the gamma table size the driver expects, which can be used to size the * allocated storage. but the code doesn't seem to support that in an easy way (like setting red/green/blue to NULL on input, retrieving gamma_size on output), only by providing big enough buffers for red/green/blue, and looping over gamma_size until -EINVAL is no longer returned.
2023-10-24modetest: add support for DRM_FORMAT_C[124]Geert Uytterhoeven1-0/+15
Add support for creating buffers using the new color-indexed frame buffer formats with two, four, and sixteen colors. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Add Acked-by, v2: - Split off changes to tests/modetest/buffers.c.
2023-10-24util: add SMPTE pattern support for C2 formatGeert Uytterhoeven1-1/+99
Add support for drawing the SMPTE pattern in a buffer using the C2 indexed format. As only four colors are available, resolution is halved, and the pattern is drawn in a PenTile RG-GB matrix, using Floyd-Steinberg dithering. The magnitude of the green subpixels is reduced, as there are twice as many green subpixels as red or blue subpixels. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Dithering example at https://drive.google.com/file/d/1g5O8XeacrjrC8rgaVENvR65YeI6QvmtO/view v5: - Add Reviewed-by, v4: - Replace FILL_COLOR() use by pentile_color_lut[], v3: - Add Acked-by, v2: - New.
2023-10-24util: add SMPTE pattern support for C1 formatGeert Uytterhoeven1-3/+171
Add support for drawing the SMPTE pattern in a buffer using the C1 indexed format. As only two colors are available, the pattern is drawn in black and white, using Floyd-Steinberg dithering[1]. [1] https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Dithering example at https://drive.google.com/file/d/1waJczErrIaEKRhBCCU1ynxRG8agpo0Xx/view v5: - Add Reviewed-by, v4: - Replace FILL_COLOR() use by bw_color_lut[], v3: - Add Acked-by, - Add Wikipedia link, v2: New.
2023-10-24util: add SMPTE pattern support for C4 formatGeert Uytterhoeven1-0/+42
Add support for drawing the SMPTE pattern in a buffer using the C4 indexed format. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Add Acked-by, v2: - Use new smpte_top[], - Split off changes to tests/util/pattern.c.
2023-10-24util: store number of colors for indexed formatsGeert Uytterhoeven2-4/+5
Store the number of available colors for color-indexed frame buffer formats in the format_info[] array. This avoids the need of test code for having to use switch statements all the time to obtain the number of colors, or to check if a mode is color-indexed or not. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Add Acked-by, v2: - New.
2023-10-24util: add support for DRM_FORMAT_C[124]Geert Uytterhoeven1-0/+3
Add support for creating buffers using the new color-indexed frame buffer formats with two, four, and sixteen colors. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Add Acked-by, v2: - Split off changes to tests/util/format.c.
2023-10-24util: factor out and optimize C8 SMPTE color LUTGeert Uytterhoeven3-44/+82
The color LUT for the SMPTE pattern in indexed mode contains 22 entries, although only 13 are non-unique. Reduce the size of the color LUT by dropping duplicate entries, so it can be reused for formats supporting e.g. 16 colors. Rename the function util_smpte_c8_gamma() to util_smpte_fill_lut(), and its first parameter size to ncolors, to match their actual use. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - Rename util_smpte_index_gamma() to util_smpte_fill_lut(), and its first parameter from size to ncolors, - Move smpte_color_lut[] down, - Kill FILL_COLOR() macro, - Add and use EXPAND_COLOR() macro, v3: - Add Acked-by, v2: - Factor out smpte color LUT.
2023-10-24util: improve SMPTE color LUT accuracyGeert Uytterhoeven1-3/+3
Fill in the LSB when converting color components from 8-bit to 16-bit. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- v5: - Add Reviewed-by, v4: - No changes, v3: - Add Acked-by, v2: - New.
2023-10-20build: bump version to 2.4.117libdrm-2.4.117Simon Ser1-1/+1
Signed-off-by: Simon Ser <contact@emersion.fr>
2023-10-20meson: replace deprecated program.path -> program.full_pathDylan Baker4-4/+4
To avoid Meson warnings Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Simon Ser <contact@emersion.fr>
2023-10-20meson: Use feature.require() and feature.allowed()Dylan Baker2-88/+36
To reduce the size and complexity of checks. require() allows combining auto and enabled checks(), so that something like ```meson x = get_option('feature') y = false if x.enabled() if not condition error(...) endif y = condition endif ``` can be rewritten as: ```meson y = get_option('feature').require(condition, error_message : ...).allowed() ``` require checks the condition, then if the feature is required it emits an error with the given message otherwise it returns a disabled feature. allowed then returns whether the feature is not disabled, and returns that (ie, .allowed() == not .disabled()). This is especially helpful for longer more complex conditions Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2023-10-20meson: fix intel requirementsDylan Baker1-2/+6
Intel requires libpciaccess and an x86/x86_64 host, so if those aren't found and it's enabled we need to error Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Simon Ser <contact@emersion.fr>
2023-10-10amdgpu: add support for querying VM faults informationSamuel Pitoiset3-0/+31
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2023-10-10amdgpu: amdgpu_drm.h for new GPUVM fault ioctlSamuel Pitoiset1-7/+120
Based on agd5f/drm-next. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2023-09-19ci: bump FreeBSD to 13.2Simon Ser1-2/+2
13.0 is no longer supported and causes a 404 when fetching the image, see e.g. [1] for example failure. [1]: https://gitlab.freedesktop.org/mesa/drm/-/jobs/45849458 Signed-off-by: Simon Ser <contact@emersion.fr> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2023-09-19xf86drm: mark DRM_MAX_MINOR as deprecatedSimon Ser1-1/+1
With the work in [1], libdrm users should no longer rely on the minor numbering scheme we've used so far. Instead, they should use drmGetDevices2(). [1]: https://lore.kernel.org/lkml/20230724211428.3831636-1-michal.winiarski@intel.com/ Signed-off-by: Simon Ser <contact@emersion.fr> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2023-09-13modetest: print modifiers in hex as wellChia-I Wu1-1/+1
Print modifiers in hex in addtion to in strings returned by drmGetFormatModifierName. In some cases, hex numbers can be more easily compared visually. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2023-09-10modetest: allocate and commit atomic request around set_property()Marijn Suijten1-9/+10
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-10modetest: allow using -r and -PNeil Armstrong1-5/+0
Since now -r sets the pipe struct and count like -s we can also use -P with -r. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-09-10modetest: permit -r and -s to work togetherNeil Armstrong1-23/+28
Let's permit testing vsync with the default mode, this returns back the pipe content and count when calling set_mode() so the vsync test can also be used. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-09-09modetest: document why no blob is created for linear gamma LUTMarijn Suijten1-0/+5
As found and discussed in [MR 58] a blob is not created in the else arm because adding the GAMMA_LUT property with a NULL/0 blob_id causes it to be reset to a default linear / pass-thru gamma table. The values in the gamma_lut table might still be consumed in the legacy API path below though, so it has to be initialized to a linear table. [MR 58]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/58#note_466972 Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
2023-09-09modetest: avoid erroring if there's no gamma legacy supportEzequiel Garcia1-1/+2
Let's follow the Rule of Silence. And while here, document what's going on. Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>