Application: Capcut -> seeing no HW decode acceleration during transcode.
- Application is not querying decoder capabilities
- No attempt to create resources with decoder bindflags
- No attempt to create the video HW decoder
Steps to reproduce:
1. Install capcut application form MS-store
2. Import H264 video
3. transcode to hevc video
Observed Results: NO HW decoder used.
Expected Results: Both HW enc and dec must be engaged.
Hi,
Based on the issue you have reported, below is our observation:
Expected Results
-
CapCut should engage both hardware encoder and decoder on Windows on ARM.
-
Decoder should be queried and initialized when supported (H.264 → HEVC transcode should leverage HW decode + HW encode).
-
This would reduce CPU load, improve battery life, and match expected behavior on x86/x64 builds.
We will go step by step to confirm whether it’s CapCut limitation or something on your device setup.
Step 1. Check whether CapCut is running as x86 Emulated
-
Open Task Manager → Details tab.
-
Right-click on a column header → enable Architecture.
-
See if CapCut.exe shows as x86, x64, or ARM64.
If it’s x86, it’s running under emulation and may not be able to access native MediaFoundation HW decode APIs.
If it’s ARM64, then the app itself is skipping decode initialization (likely a code issue).
Step 2. Confirm hardware decode works in other apps
Test whether your device can use hardware decode at all:
-
Movies & TV app (built-in): Play the same H.264 video, check GPU usage in Task Manager → Performance → GPU (Video Decode engine).
-
VLC: Enable DXVA2/D3D11VA in settings and check stats.
-
FFmpeg with MediaFoundation:
(if you have FFmpeg with hwaccel compiled).
If those apps use HW decode, then the issue is specific to CapCut.
Step 3. Check GPU Drivers
-
Go to Device Manager → Display Adapters → Properties → Driver.
-
Make sure you are on the latest Qualcomm Adreno / ARM GPU driver (depending on your device).
-
Sometimes Windows Update lags — check OEM support site (e.g., Microsoft for Surface Pro X, Lenovo, Samsung, etc.).
Step 4. CapCut Settings
CapCut doesn’t expose much GPU control, but check:
-
Settings → Performance (if present).
-
Enable Hardware acceleration toggle (if available).
-
Restart app and retest.
Step 5. Test with different Input
-
Try different profiles: H.264 baseline, main, high.
-
Try 1080p vs. 4K.
-
Sometimes apps only enable HW decode above certain resolutions.
Step 6. Possible Workarounds
Until CapCut developers fix decoder usage on WoA:
-
Force transcode via hardware encoder only (CPU will handle decode).
-
Pre-decode your H.264 video → rewrap as HEVC or raw YUV using a tool like HandBrake/FFmpeg with HW decode, then import into CapCut (so CapCut only encodes).
-
Run the x64 version of CapCut under emulation if available (sometimes x64 emulated apps use MediaFoundation decode more reliably than ARM64-native builds).
Step 7. Report to CapCut Developers
If step 2 shows other apps work fine, then CapCut devs simply haven’t implemented decoder calls on WoA. In that case, the only “fix” is a bug report / feature request. You can send the same message which you have sent here to this email: [email protected]
Below is a quick test plan so you can prove whether CapCut is actually skipping hardware decode initialization on your Windows on ARM device.
Test Plan: CapCut HW Decode on Windows on ARM
1. Confirm App Architecture
-
Open Task Manager → Details tab.
-
Add the Architecture column.
-
Check
CapCut.exe
:-
x86 / x64 → running under emulation.
-
ARM64 → running native, but may not query decoder.
-
2. Monitor GPU Decode Usage
-
Open Task Manager → Performance → GPU.
-
Play/transcode in CapCut.
-
Watch Video Decode graph:
-
Flat (0%) = CapCut not engaging HW decode.
-
Spikes during playback/transcode = decode is working.
-
3. Compare Against Known-Good Apps
Test with the same H.264 clip:
-
Movies & TV app (UWP): Should trigger Video Decode usage.
-
VLC: Enable
Tools → Preferences → Input/Codecs → Use DXVA2/D3D11VA
. -
FFmpeg (if installed):
If hardware decode works in these but not in CapCut, that isolates the issue to CapCut.
4. Use GPUView / ETW for Proof
If you want definitive traces:
-
Install Windows Performance Toolkit (WPT) from the Windows SDK.
-
Run:
Perform a CapCut transcode.
-
Stop trace:
-
Open trace in GPUView.
-
Look under Video Decoder queue.
-
If no decode sessions are created → CapCut is not calling DXVA/MediaFoundation APIs.
-
5. Collect Environment Data
-
App version (Microsoft Store → CapCut → About).
-
Windows build (
winver
). -
GPU driver version (
dxdiag
).
This info is crucial when reporting.
6. Workarounds while waiting for CapCut to fix
-
Use HandBrake or FFmpeg to pre-decode your H.264 → import HEVC into CapCut (so CapCut only encodes).
-
Stick to HEVC sources when possible (CapCut may pass them straight to encoder).
-
Try running x64 build under emulation if ARM64 build is missing decoder support.