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 |