Timo Aaltonen pushed to branch debian-unstable at X Strike Force / lib / libdrm
Commits:
-
54b12081
by Eric Engestrom at 2024-01-01T07:43:19+00:00
-
118addfa
by Pierre-Eric Pelloux-Prayer at 2024-01-04T11:00:37+01:00
-
6c4392f4
by Simon Ser at 2024-01-13T10:33:05+01:00
-
75254bf2
by Simon Ser at 2024-01-13T10:37:07+01:00
-
d48766f0
by Timo Aaltonen at 2024-01-16T14:06:04+02:00
-
b0663862
by Timo Aaltonen at 2024-01-16T14:07:56+02:00
-
55bd6ab7
by Timo Aaltonen at 2024-01-16T14:08:22+02:00
-
9457e0dd
by Timo Aaltonen at 2024-01-16T14:09:01+02:00
6 changed files:
- amdgpu/amdgpu_cs.c
- debian/changelog
- include/drm/drm.h
- include/drm/drm_mode.h
- meson.build
- radeon/radeon_surface.c
Changes:
| ... | ... | @@ -140,8 +140,8 @@ drm_public int amdgpu_cs_ctx_free(amdgpu_context_handle context) |
| 140 | 140 | for (i = 0; i < AMDGPU_HW_IP_NUM; i++) {
|
| 141 | 141 | for (j = 0; j < AMDGPU_HW_IP_INSTANCE_MAX_COUNT; j++) {
|
| 142 | 142 | for (k = 0; k < AMDGPU_CS_MAX_RINGS; k++) {
|
| 143 | - amdgpu_semaphore_handle sem;
|
|
| 144 | - LIST_FOR_EACH_ENTRY(sem, &context->sem_list[i][j][k], list) {
|
|
| 143 | + amdgpu_semaphore_handle sem, tmp;
|
|
| 144 | + LIST_FOR_EACH_ENTRY_SAFE(sem, tmp, &context->sem_list[i][j][k], list) {
|
|
| 145 | 145 | list_del(&sem->list);
|
| 146 | 146 | amdgpu_cs_reset_sem(sem);
|
| 147 | 147 | amdgpu_cs_unreference_sem(sem);
|
| 1 | -libdrm (2.4.119-2) UNRELEASED; urgency=medium
|
|
| 1 | +libdrm (2.4.120-1) unstable; urgency=medium
|
|
| 2 | 2 | |
| 3 | + * New upstream release.
|
|
| 4 | + |
|
| 5 | + -- Timo Aaltonen <tjaalton@debian.org> Tue, 16 Jan 2024 14:08:50 +0200
|
|
| 6 | + |
|
| 7 | +libdrm (2.4.119-2) unstable; urgency=medium
|
|
| 8 | + |
|
| 9 | + [ Diederik de Haas ]
|
|
| 3 | 10 | * Add new signing-key from Marek Olšák
|
| 4 | 11 | * symbols: Add new symbol for amdgpu
|
| 5 | 12 | |
| 6 | - -- Diederik de Haas <didi.debian@cknow.org> Fri, 12 Jan 2024 19:43:14 +0100
|
|
| 13 | + -- Timo Aaltonen <tjaalton@debian.org> Tue, 16 Jan 2024 14:05:50 +0200
|
|
| 7 | 14 | |
| 8 | 15 | libdrm (2.4.119-1) unstable; urgency=medium
|
| 9 | 16 |
| ... | ... | @@ -707,7 +707,8 @@ struct drm_gem_open { |
| 707 | 707 | /**
|
| 708 | 708 | * DRM_CAP_ASYNC_PAGE_FLIP
|
| 709 | 709 | *
|
| 710 | - * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC.
|
|
| 710 | + * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC for legacy
|
|
| 711 | + * page-flips.
|
|
| 711 | 712 | */
|
| 712 | 713 | #define DRM_CAP_ASYNC_PAGE_FLIP 0x7
|
| 713 | 714 | /**
|
| ... | ... | @@ -767,6 +768,13 @@ struct drm_gem_open { |
| 767 | 768 | * :ref:`drm_sync_objects`.
|
| 768 | 769 | */
|
| 769 | 770 | #define DRM_CAP_SYNCOBJ_TIMELINE 0x14
|
| 771 | +/**
|
|
| 772 | + * DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP
|
|
| 773 | + *
|
|
| 774 | + * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC for atomic
|
|
| 775 | + * commits.
|
|
| 776 | + */
|
|
| 777 | +#define DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP 0x15
|
|
| 770 | 778 | |
| 771 | 779 | /* DRM_IOCTL_GET_CAP ioctl argument type */
|
| 772 | 780 | struct drm_get_cap {
|
| ... | ... | @@ -836,6 +844,31 @@ struct drm_get_cap { |
| 836 | 844 | */
|
| 837 | 845 | #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
|
| 838 | 846 | |
| 847 | +/**
|
|
| 848 | + * DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT
|
|
| 849 | + *
|
|
| 850 | + * Drivers for para-virtualized hardware (e.g. vmwgfx, qxl, virtio and
|
|
| 851 | + * virtualbox) have additional restrictions for cursor planes (thus
|
|
| 852 | + * making cursor planes on those drivers not truly universal,) e.g.
|
|
| 853 | + * they need cursor planes to act like one would expect from a mouse
|
|
| 854 | + * cursor and have correctly set hotspot properties.
|
|
| 855 | + * If this client cap is not set the DRM core will hide cursor plane on
|
|
| 856 | + * those virtualized drivers because not setting it implies that the
|
|
| 857 | + * client is not capable of dealing with those extra restictions.
|
|
| 858 | + * Clients which do set cursor hotspot and treat the cursor plane
|
|
| 859 | + * like a mouse cursor should set this property.
|
|
| 860 | + * The client must enable &DRM_CLIENT_CAP_ATOMIC first.
|
|
| 861 | + *
|
|
| 862 | + * Setting this property on drivers which do not special case
|
|
| 863 | + * cursor planes (i.e. non-virtualized drivers) will return
|
|
| 864 | + * EOPNOTSUPP, which can be used by userspace to gauge
|
|
| 865 | + * requirements of the hardware/drivers they're running on.
|
|
| 866 | + *
|
|
| 867 | + * This capability is always supported for atomic-capable virtualized
|
|
| 868 | + * drivers starting from kernel version 6.6.
|
|
| 869 | + */
|
|
| 870 | +#define DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT 6
|
|
| 871 | + |
|
| 839 | 872 | /* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
|
| 840 | 873 | struct drm_set_client_cap {
|
| 841 | 874 | __u64 capability;
|
| ... | ... | @@ -887,6 +920,7 @@ struct drm_syncobj_transfer { |
| 887 | 920 | #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
|
| 888 | 921 | #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
|
| 889 | 922 | #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2) /* wait for time point to become available */
|
| 923 | +#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE (1 << 3) /* set fence deadline to deadline_nsec */
|
|
| 890 | 924 | struct drm_syncobj_wait {
|
| 891 | 925 | __u64 handles;
|
| 892 | 926 | /* absolute timeout */
|
| ... | ... | @@ -895,6 +929,14 @@ struct drm_syncobj_wait { |
| 895 | 929 | __u32 flags;
|
| 896 | 930 | __u32 first_signaled; /* only valid when not waiting all */
|
| 897 | 931 | __u32 pad;
|
| 932 | + /**
|
|
| 933 | + * @deadline_nsec - fence deadline hint
|
|
| 934 | + *
|
|
| 935 | + * Deadline hint, in absolute CLOCK_MONOTONIC, to set on backing
|
|
| 936 | + * fence(s) if the DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE flag is
|
|
| 937 | + * set.
|
|
| 938 | + */
|
|
| 939 | + __u64 deadline_nsec;
|
|
| 898 | 940 | };
|
| 899 | 941 | |
| 900 | 942 | struct drm_syncobj_timeline_wait {
|
| ... | ... | @@ -907,6 +949,14 @@ struct drm_syncobj_timeline_wait { |
| 907 | 949 | __u32 flags;
|
| 908 | 950 | __u32 first_signaled; /* only valid when not waiting all */
|
| 909 | 951 | __u32 pad;
|
| 952 | + /**
|
|
| 953 | + * @deadline_nsec - fence deadline hint
|
|
| 954 | + *
|
|
| 955 | + * Deadline hint, in absolute CLOCK_MONOTONIC, to set on backing
|
|
| 956 | + * fence(s) if the DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE flag is
|
|
| 957 | + * set.
|
|
| 958 | + */
|
|
| 959 | + __u64 deadline_nsec;
|
|
| 910 | 960 | };
|
| 911 | 961 | |
| 912 | 962 | /**
|
| ... | ... | @@ -957,6 +957,15 @@ struct hdr_output_metadata { |
| 957 | 957 | * Request that the page-flip is performed as soon as possible, ie. with no
|
| 958 | 958 | * delay due to waiting for vblank. This may cause tearing to be visible on
|
| 959 | 959 | * the screen.
|
| 960 | + *
|
|
| 961 | + * When used with atomic uAPI, the driver will return an error if the hardware
|
|
| 962 | + * doesn't support performing an asynchronous page-flip for this update.
|
|
| 963 | + * User-space should handle this, e.g. by falling back to a regular page-flip.
|
|
| 964 | + *
|
|
| 965 | + * Note, some hardware might need to perform one last synchronous page-flip
|
|
| 966 | + * before being able to switch to asynchronous page-flips. As an exception,
|
|
| 967 | + * the driver will return success even though that first page-flip is not
|
|
| 968 | + * asynchronous.
|
|
| 960 | 969 | */
|
| 961 | 970 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02
|
| 962 | 971 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
|
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | project(
|
| 22 | 22 | 'libdrm',
|
| 23 | 23 | ['c'],
|
| 24 | - version : '2.4.119',
|
|
| 24 | + version : '2.4.120',
|
|
| 25 | 25 | license : 'MIT',
|
| 26 | 26 | meson_version : '>= 0.59',
|
| 27 | 27 | default_options : ['buildtype=debugoptimized', 'c_std=c11'],
|
| ... | ... | @@ -2205,6 +2205,7 @@ static int cik_surface_sanity(struct radeon_surface_manager *surf_man, |
| 2205 | 2205 | break;
|
| 2206 | 2206 | case RADEON_SURF_MODE_LINEAR_ALIGNED:
|
| 2207 | 2207 | default:
|
| 2208 | + *stencil_tile_mode = SI_TILE_MODE_COLOR_LINEAR_ALIGNED;
|
|
| 2208 | 2209 | *tile_mode = SI_TILE_MODE_COLOR_LINEAR_ALIGNED;
|
| 2209 | 2210 | }
|
| 2210 | 2211 |