Sil Vilerino
dc523fabef
d3d12: Relax slice caps requirements for video encode
...
The check in d3d12_has_video_encode_support was returning no encode support unless
the driver supported D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME
when it should also return support when the driver reports only full frame support
(ie. D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME)
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18763 >
2022-09-22 22:03:44 +00:00
Mike Blumenkrantz
f8b4d40a1e
zink: delete some descriptor caching cruft
...
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
b889b48466
zink: delete more sw conditional render handling
...
I forgot to delete this when I deleted the draw path handling
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
fc52f82c09
zink: remove batch usage from sampler states
...
this was useless
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
f6bbd7875a
zink: remove batch tracking/usage from view types
...
instead of incurring all the overhead of tracking lifetimes for these,
it makes more sense to just let them delete whenever and then store
the vk object onto its parent image/buffer to be deleted when that gets
freed, as the parent object's lifetime will always be >= the view's lifetime
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
9f9dd4f2ac
zink: split out bind_sampler_states hook for drivers without EXT_non_seamless_cube_map
...
this incurs some overhead and is seldom used, so avoid having it in the codepath
at all if it won't be used
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
7172fb56d9
zink bump batch state limit a bit
...
this should yield better throughput
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
83c76b8efb
zink: rework batch tracking for resources
...
this uses a revised version of radeonsi's buffer list array to track
resources for lifetime/usage management, massively improving performance
by avoiding hash table lookups
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
1896111d25
zink: defer more semaphore destruction
...
these have noticeable overhead, so handle them in the submit thread
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18664 >
2022-09-22 21:38:47 +00:00
Mike Blumenkrantz
babf9474c4
zink: rework flush_frontbuffer to always flush
...
previously this would no-op unacquired swapchains and then try to
execute a copy from the last-presented swapchain image to the current
image to avoid presenting garbage data
instead, just present garbage like the app requested
fixes #7165
Tested-By: Matti Hamalainen <ccr@tnsp.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18730 >
2022-09-22 21:14:03 +00:00
Mike Blumenkrantz
758c559bc4
zink: check format compatibility up front when creating framebuffer surface
...
this avoids an assert in create_ivci while enforcing correct behavior
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18446 >
2022-09-22 20:42:04 +00:00
Adam Jackson
4c5dee6c22
egl: Rewrite eglSetBlobCacheFuncsANDROID to use the standard macros
...
As the deleted comment hints, you just need the macro to expand to
return /* void */;
for things to work.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
eb39198fe2
egl: Factor out the eglTerminate write-lock pattern
...
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
b2ee2de1fb
egl: Untangle some spaghetti around _eglLookupDisplay
...
Only eglapi needs any of this.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
1f94f28e8c
egl: Promote _eglLock/UnlockDisplay to internal API
...
This reads a bit more cleanly than egl_lock/egl_unlock I think.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
5e407ec524
egl: Fix a bunch of maybe-uninitialized warnings
...
Fedora's gcc 12 is apparently not smart enough to deduce that these are
always initialized, so set some clear default values.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:57 +00:00
Yonggang Luo
51af3f30c6
Update 22.2.0.rst
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18726 >
2022-09-22 20:08:20 +00:00
Dylan Baker
7f6ec0f0e3
docs: Add calendar entries for 22.2 release.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18726 >
2022-09-22 20:08:20 +00:00
Dylan Baker
b91cf1df5a
docs: update calendar and link releases notes for 22.2.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18726 >
2022-09-22 20:08:20 +00:00
Dylan Baker
149a7f272c
docs: Add sha256 sum for 22.2.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18726 >
2022-09-22 20:08:20 +00:00
Dylan Baker
fe61d5cfe1
docs: add release notes for 22.2.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18726 >
2022-09-22 20:08:20 +00:00
Yiwei Zhang
373bc6f1d5
venus: ensure to clear VkPipelineCreationFeedback::flags if needed
...
Fixes: d0cb99e96a ("venus: Enable VK_EXT_pipeline_creation_feedback")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18741 >
2022-09-22 19:54:26 +00:00
Emma Anholt
5e39b52e6a
turnip: Fix busy-waiting on syncobjs with OS_TIMEOUT_INFINITE.
...
I noticed that glmark2's glFinish()es in its offscreen rendering tests
under zink were spinning. When we passed -1 as the timeout for
drmSyncobjWait(), the kernel would immediately return ETIME.
Fixes: 0a82a26a18 ("turnip: Porting to common implementation for timeline semaphore")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18739 >
2022-09-22 19:24:00 +00:00
Leo Liu
e2c0eac5bf
frontends/va: fix build error for vaSyncBuffer with older VA
...
return VA_STATUS_ERROR_TIMEDOUT;
| ^~~~~~~~~~~~~~~~~~~~~~~~
| VA_STATUS_ERROR_UNKNOWN
../src/gallium/frontends/va/buffer.c:434:14: note: each undeclared identifier is reported only once for each function it appears in
../src/gallium/frontends/va/buffer.c:436:22: error: ‘VA_TIMEOUT_INFINITE’ undeclared (first use in this function); did you mean ‘PIPE_TIMEOUT_INFINITE’?
436 | if (timeout_ns != VA_TIMEOUT_INFINITE)
| ^~~~~~~~~~~~~~~~~~~
| PIPE_TIMEOUT_INFINITE
Fixes: 229c6f79a ("frontends/va: Implement vaSyncBuffer")
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18760 >
2022-09-22 19:13:31 +00:00
Rob Clark
8300554ba1
freedreno: Handle xfb invalidation
...
So using the same buffer for CPU writes and GPU writes might be kinda
unusual. But I noticed we were missing handling for the case while
debugging something unrelated.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18732 >
2022-09-22 18:24:42 +00:00
Yonggang Luo
3449b2187e
lavapipe/meson: rename module_dir to icd_lib_path and swap two lines for consistence
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747 >
2022-09-22 17:54:24 +00:00
Yonggang Luo
c8e14d5d47
dzn: rename module_dir to icd_lib_path for consistence
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747 >
2022-09-22 17:54:24 +00:00
Yonggang Luo
a144f3f80c
radv: Getting radeon_icd to be generated properly on win32
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747 >
2022-09-22 17:54:24 +00:00
Tapani Pälli
d68e74955c
mesa/st: fix a set_sampler_views call parameter order
...
Fixes: e7b9561959 ("gallium: implement compute pbo download")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18745 >
2022-09-22 17:25:30 +00:00
Rajnesh Kanwal
672a1a9021
pvr: Implement vkCmdNextSubpass API.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:18 +01:00
Rajnesh Kanwal
154ffdbd45
pvr: Pass load-op struct instead of idx to support subpass load-ops.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:15 +01:00
Rajnesh Kanwal
f1d61d8161
pvr: Add support to create subpass load ops.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:10 +01:00
Rajnesh Kanwal
0756a28f2d
pvr: Add attachment resolve support.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:07 +01:00
Rajnesh Kanwal
ce5a34aadb
pvr: Add const to structs that are not supposed to be modified.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:04 +01:00
Rajnesh Kanwal
2fc20cff4c
pvr: Rename userpass_spawn to isp_userpass.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:54:01 +01:00
Rajnesh Kanwal
f19697de5a
pvr: Add missing output register write in pvr_CreateRenderPass2.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:53:58 +01:00
Rajnesh Kanwal
7eff950215
pvr: Use ~0 for masks instead of ~0U.
...
This makes code future proof in case someone changes the type
and also avoids half masks (0x00000000FFFFFFFF) in case of
64bit variables.
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reported-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:53:54 +01:00
Rajnesh Kanwal
10b6a0d567
pvr: Add support for generating render pass hw setup data.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:53:52 +01:00
Rajnesh Kanwal
b57cd62698
pvr: Replace pvr_renderpass_surface_initop with VkAttachmentLoadOp.
...
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:53:48 +01:00
Rajnesh Kanwal
9f9a1ab118
pvr: General reformatting and renaming some fields.
...
Mainly renaming driver_id and similar fields to index to
better represent what they contain.
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707 >
2022-09-22 16:53:44 +01:00
Eric Engestrom
88eeece662
docs: update calendar and link releases notes for 22.1.7
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18752 >
2022-09-22 13:11:08 +00:00
Eric Engestrom
40bfaa7354
docs: add release notes for 22.1.7
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18752 >
2022-09-22 13:11:08 +00:00
Eric Engestrom
c3df3baf8b
docs: update calendar and link releases notes for 22.1.6
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18752 >
2022-09-22 13:11:08 +00:00
Eric Engestrom
2b4a819e60
docs: add release notes for 22.1.6
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18752 >
2022-09-22 13:11:08 +00:00
Daniel Schürmann
cd36a29759
aco/optimizer: change inverse_comparison in-place
...
This avoids creating a second comparison which is more expensive
than just using the existing s_not.
Totals from 1089 (0.81% of 134913) affected shaders: (GFX10.3)
VGPRs: 50472 -> 50184 (-0.57%)
CodeSize: 4724692 -> 4760824 (+0.76%); split: -0.03%, +0.79%
MaxWaves: 23964 -> 24012 (+0.20%)
Instrs: 859588 -> 859687 (+0.01%); split: -0.11%, +0.12%
Latency: 10674653 -> 10650353 (-0.23%); split: -0.41%, +0.18%
InvThroughput: 1752987 -> 1750238 (-0.16%); split: -0.20%, +0.04%
VClause: 20921 -> 20872 (-0.23%); split: -0.68%, +0.45%
SClause: 31417 -> 31550 (+0.42%)
Copies: 69428 -> 68738 (-0.99%); split: -1.52%, +0.53%
PreSGPRs: 48033 -> 49649 (+3.36%)
PreVGPRs: 44490 -> 43699 (-1.78%)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253 >
2022-09-22 12:35:11 +00:00
Timur Kristóf
c8445c1691
aco: Change inverse-comparison optimization to work with s_not
...
Some time ago we stopped using s_andn2 with exec for boolean NOT.
The reasoning behind that change was that those booleans will be
always ANDed with exec when necessary.
This inhibited the inverse-comparison optimization in most cases
which is fixed by this patch.
Fossil DB stats on Navi 21:
Totals from 12251 (9.08% of 134913) affected shaders:
VGPRs: 801744 -> 802016 (+0.03%); split: -0.00%, +0.04%
SpillSGPRs: 8863 -> 8893 (+0.34%)
CodeSize: 100593244 -> 100370684 (-0.22%); split: -0.22%, +0.00%
MaxWaves: 204994 -> 204948 (-0.02%); split: +0.00%, -0.02%
Instrs: 18717001 -> 18668965 (-0.26%); split: -0.26%, +0.00%
Latency: 263255046 -> 262874896 (-0.14%); split: -0.16%, +0.02%
InvThroughput: 52760249 -> 52721736 (-0.07%); split: -0.08%, +0.01%
VClause: 329631 -> 329680 (+0.01%); split: -0.03%, +0.04%
SClause: 681563 -> 681435 (-0.02%); split: -0.02%, +0.00%
Copies: 1331612 -> 1372446 (+3.07%); split: -0.03%, +3.10%
Branches: 548325 -> 548301 (-0.00%)
PreSGPRs: 911317 -> 909700 (-0.18%)
PreVGPRs: 766279 -> 767070 (+0.10%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253 >
2022-09-22 12:35:11 +00:00
Daniel Schürmann
cf5f9854bc
aco/optimizer: optimize s_and(exec, s_and(x, y)) more aggressively
...
It is enough if either of the two operands is respecting the
current exec mask.
Totals from 1680 (1.25% of 134913) affected shaders: (GFX10.3)
CodeSize: 3929436 -> 3922372 (-0.18%); split: -0.18%, +0.00%
Instrs: 730305 -> 728536 (-0.24%); split: -0.24%, +0.00%
Latency: 6839314 -> 6835154 (-0.06%); split: -0.07%, +0.01%
InvThroughput: 1371351 -> 1371267 (-0.01%); split: -0.01%, +0.00%
SClause: 32819 -> 32802 (-0.05%); split: -0.09%, +0.04%
Copies: 33264 -> 33271 (+0.02%); split: -0.01%, +0.03%
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253 >
2022-09-22 12:35:11 +00:00
Daniel Schürmann
79a8e8b5b2
aco/optimizer: do can_eliminate_and_exec() optimization later
...
This will allow to optimize s_not(v_cmp()) safely.
Totals from 1024 (0.76% of 134913) affected shaders: (GFX10.3)
CodeSize: 5695424 -> 5701860 (+0.11%); split: -0.00%, +0.11%
Scratch: 242688 -> 241664 (-0.42%)
Instrs: 1040656 -> 1041635 (+0.09%); split: -0.00%, +0.09%
Latency: 16842282 -> 16922790 (+0.48%); split: -0.06%, +0.54%
InvThroughput: 4772728 -> 4810868 (+0.80%); split: -0.10%, +0.90%
VClause: 20013 -> 20000 (-0.06%); split: -0.12%, +0.05%
Copies: 115057 -> 114384 (-0.58%); split: -1.22%, +0.63%
Branches: 34531 -> 34532 (+0.00%); split: -0.00%, +0.01%
PreSGPRs: 46263 -> 46267 (+0.01%)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253 >
2022-09-22 12:35:11 +00:00
Erik Faye-Lund
14b15b4038
zink: assert on unnormalized texcoords
...
We do not support PIPE_CAP_TEXRECT, so let's assert in case something
tries to use it behind our back.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17708 >
2022-09-22 11:37:10 +00:00
Erik Faye-Lund
37733c100d
mesa/st: always use normalized coords for samplers
...
Normalized samplers is the norm, and non-normalized samplers might cause
some drivers and hardware to have to bend over backwards a bit.
We're using TXF here anyway, so it doesn't really matter what we set
this state to. So let's always use normalized samplers instead of
always using non-normalized samplers. That makes things easier for
everyone.
Fixes: e7b9561959 ("gallium: implement compute pbo download")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17708 >
2022-09-22 11:37:10 +00:00