From: "Christian König" <christian.koenig@amd.com>
To: "Timur Kristóf" <timur.kristof@gmail.com>,
amd-gfx@lists.freedesktop.org,
"Alex Deucher" <alexander.deucher@amd.com>,
"Alexandre Demers" <alexandre.f.demers@gmail.com>,
"Rodrigo Siqueira" <siqueira@igalia.com>,
"Leo Liu" <Leo.Liu@amd.com>
Subject: Re: [PATCH 00/12] drm/amdgpu: Support VCE1 IP block (v4)
Date: Mon, 10 Nov 2025 20:22:06 +0100 [thread overview]
Message-ID: <ab757720-750f-45ac-9892-c1c5742fcbba@amd.com> (raw)
In-Reply-To: <20251107155745.8334-1-timur.kristof@gmail.com>
On 11/7/25 16:57, Timur Kristóf wrote:
> VCE1 is the Video Coding Engine 1.0 found in SI GPUs.
> Add support for the VCE1 IP block, which is the last
> missing piece for fully-featured SI support in amdgpu.
> Co-developed by Alexandre Demers.
>
> This VCE1 implementation is based on:
> VCE2 code in amdgpu
> VCE1 code in radeon
> Research by Alexandre
> Suggestions from Christian
>
> The biggest challenge was getting the firmware
> validation mechanism to work correctly. Due to
> some limitations in the HW, the VCE1 requires
> the VCPU BO to be located at a low 32-bit address.
> This was achieved by placing the GART in the
> LOW address space and manually mapping the
> VCPU BO in the GART page table.
>
> Also hook up the VCE1 to the DPM.
>
> Tested on the following HW:
> Radeon R9 280X (Tahiti)
> Radeon HD 7990 (Tahiti)
> FirePro W9000 (Tahiti)
> Radeon R7 450 (Cape Verde)
>
> Changes in v2:
> - Refactor the new GART helper to be reusable
> - Reduce reserved GART size from 16 MiB to 2 MiB
> - Clear VCPU BO only on device creation
> - Save VCPU BO on suspend, restore on resume
> - Rework how an empty codec list is handled
> - Add different workaround for FirePro W9000
> - Address all other feedback from the review
>
> Changes in v3:
> - Drop patch to return empty codec list when VCE is not present,
> this is actually not needed.
> - Instead of relying on gmc_v6 to set the GART space before GTT,
> add a new function amdgpu_vce_required_gart_pages() which is
> called from amdgpu_gtt_mgr_init() directly.
>
> Changes in v4:
> - Clear VCPU BO on resume like in v1
> - Don't unmap/unreserve BO on resume
>
> Looking forward to reviews and feedback!
I've just pushed the whole set to amd-staging-drm-next.
There is a slight possibility that the CI system find something (because of patch #4), but I strongly doubt it.
Thanks a lot for taking care of this,
Christian.
>
> Timur Kristóf (12):
> drm/amdgpu/gmc6: Place gart at low address range
> drm/amdgpu/gart: Add helper to bind VRAM pages (v2)
> drm/amdgpu/ttm: Use GART helper to map VRAM pages (v2)
> drm/amdgpu/vce: Move firmware load to amdgpu_vce_early_init
> drm/amdgpu/vce: Clear VCPU BO, don't unmap/unreserve (v4)
> drm/amdgpu/vce1: Clean up register definitions
> drm/amdgpu/vce1: Load VCE1 firmware
> drm/amdgpu/vce1: Implement VCE1 IP block (v2)
> drm/amdgpu/vce1: Ensure VCPU BO is in lower 32-bit address space (v3)
> drm/amd/pm/si: Hook up VCE1 to SI DPM
> drm/amdgpu/vce1: Enable VCE1 on Tahiti, Pitcairn, Cape Verde GPUs
> drm/amdgpu/vce1: Workaround PLL timeout on FirePro W9000
>
> drivers/gpu/drm/amd/amdgpu/Makefile | 2 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 36 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h | 3 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 1 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 174 ++--
> drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 3 +
> drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/si.c | 22 +-
> drivers/gpu/drm/amd/amdgpu/sid.h | 40 -
> drivers/gpu/drm/amd/amdgpu/vce_v1_0.c | 839 ++++++++++++++++++
> drivers/gpu/drm/amd/amdgpu/vce_v1_0.h | 32 +
> drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 5 +
> drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 5 +
> drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 5 +
> .../drm/amd/include/asic_reg/vce/vce_1_0_d.h | 5 +
> .../include/asic_reg/vce/vce_1_0_sh_mask.h | 10 +
> drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 18 +-
> 18 files changed, 1080 insertions(+), 134 deletions(-)
> create mode 100644 drivers/gpu/drm/amd/amdgpu/vce_v1_0.c
> create mode 100644 drivers/gpu/drm/amd/amdgpu/vce_v1_0.h
>
prev parent reply other threads:[~2025-11-10 19:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-07 15:57 [PATCH 00/12] drm/amdgpu: Support VCE1 IP block (v4) Timur Kristóf
2025-11-07 15:57 ` [PATCH 01/12] drm/amdgpu/gmc6: Place gart at low address range Timur Kristóf
2025-11-07 15:57 ` [PATCH 02/12] drm/amdgpu/gart: Add helper to bind VRAM pages (v2) Timur Kristóf
2025-11-07 15:57 ` [PATCH 03/12] drm/amdgpu/ttm: Use GART helper to map " Timur Kristóf
2025-11-07 15:57 ` [PATCH 04/12] drm/amdgpu/vce: Move firmware load to amdgpu_vce_early_init Timur Kristóf
2025-11-07 15:57 ` [PATCH 05/12] drm/amdgpu/vce: Clear VCPU BO, don't unmap/unreserve (v4) Timur Kristóf
2025-11-10 14:16 ` Christian König
2025-11-07 15:57 ` [PATCH 06/12] drm/amdgpu/vce1: Clean up register definitions Timur Kristóf
2025-11-07 15:57 ` [PATCH 07/12] drm/amdgpu/vce1: Load VCE1 firmware Timur Kristóf
2025-11-07 15:57 ` [PATCH 08/12] drm/amdgpu/vce1: Implement VCE1 IP block (v2) Timur Kristóf
2025-11-07 15:57 ` [PATCH 09/12] drm/amdgpu/vce1: Ensure VCPU BO is in lower 32-bit address space (v3) Timur Kristóf
2025-11-07 15:57 ` [PATCH 10/12] drm/amd/pm/si: Hook up VCE1 to SI DPM Timur Kristóf
2025-11-07 15:57 ` [PATCH 11/12] drm/amdgpu/vce1: Enable VCE1 on Tahiti, Pitcairn, Cape Verde GPUs Timur Kristóf
2025-11-07 15:57 ` [PATCH 12/12] drm/amdgpu/vce1: Workaround PLL timeout on FirePro W9000 Timur Kristóf
2025-11-10 19:22 ` Christian König [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab757720-750f-45ac-9892-c1c5742fcbba@amd.com \
--to=christian.koenig@amd.com \
--cc=Leo.Liu@amd.com \
--cc=alexander.deucher@amd.com \
--cc=alexandre.f.demers@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=siqueira@igalia.com \
--cc=timur.kristof@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox