diff options
author | David Rosca <nowrep@gmail.com> | 2024-04-16 19:23:36 +0200 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2024-04-30 19:18:19 +0200 |
commit | db932b64563ee54b19d016cd84b74c15477dfd3a (patch) | |
tree | 1316957adbbc13923667cc1a72be58cebb171636 | |
parent | 9ea069be852c2f896715e8cb08976b4a604f64b7 (diff) |
radeonsi/vcn: Allocate session buffer in VRAM
It's never mapped so there's no reason for PIPE_USAGE_STAGING.
Improves encoding performance on dGPUs.
Tested with 7900XTX (before 1900fps => after 2100fps):
ffmpeg -hide_banner -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
-f lavfi -i testsrc=size=640x640,format=nv12 -vf hwupload -c:v av1_vaapi \
-f null -
Cc: mesa-stable
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28945>
(cherry picked from commit cc0df497f0d4579301dc853587aef7ca8aa679ea)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json index bdfc09f518e..4289fe2a486 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -384,7 +384,7 @@ "description": "radeonsi/vcn: Allocate session buffer in VRAM", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index 00feaaba064..fb5ad4822af 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -1118,7 +1118,7 @@ static void radeon_enc_begin_frame(struct pipe_video_codec *encoder, enc->si = CALLOC_STRUCT(rvid_buffer); if (!enc->si || !enc->stream_handle || - !si_vid_create_buffer(enc->screen, enc->si, 128 * 1024, PIPE_USAGE_STAGING)) { + !si_vid_create_buffer(enc->screen, enc->si, 128 * 1024, PIPE_USAGE_DEFAULT)) { RVID_ERR("Can't create session buffer.\n"); goto error; } |