Sunshine
Sunshine copied to clipboard
AMF Encoder Usage Profile option not working
Is there an existing issue for this?
- [x] I have searched the existing issues
Is your issue described in the documentation?
- [x] I have read the documentation
Is your issue present in the latest beta/pre-release?
This issue is present in the latest pre-release
Describe the Bug
The amd_usage function is used to change the encoder preset for AMF encoder. However, this seems to always be stuck on the lowest latency preset, no matter the option being chosen.
Expected Behavior
In 2024.911.215654 ( the latest pre-release I was using and where it worked, don't know when it broke), when the amd_usage option was changed to a slower preset (like low latency instead of ultra low latency), two expected behaviors were observed:
- The encoding latency goes up because the chosen profile is slower
- The GPU usage goes down substantially in encoding, with lower power consumption of the GPU
However, with this pre-release, this is no longer the case, latency doesn't go up and GPU usage doesn't go down, which may indicate that the used profile is not the correct one.
Additional Context
There is in the log a UseLowLatencyInternal: true and EncoderMFLowLatency: false when using the low latency preset which is the second fastest.
Host Operating System
Windows
Operating System Version
Windows 11 24H2
Architecture
amd64/x86_64
Sunshine commit or version
v2025.212.40608
Package
Windows - installer (recommended)
GPU Type
AMD
GPU Model
RX 7900 XTX
GPU Driver/Mesa Version
24.2.1
Capture Method
Desktop Duplication API (Windows)
Config
Apps
Relevant log output
[2025-02-13 18:45:44.654]: Info: Desktop resolution [2560x1440]
[2025-02-13 18:45:44.654]: Info: Desktop format [DXGI_FORMAT_B8G8R8A8_UNORM]
[2025-02-13 18:45:44.654]: Info: Display refresh rate [240Hz]
[2025-02-13 18:45:44.654]: Info: Requested frame rate [60fps]
[2025-02-13 18:45:44.659]: Info: Creating encoder [h264_amf]
[2025-02-13 18:45:44.660]: Info: Color coding: SDR (Rec. 601)
[2025-02-13 18:45:44.660]: Info: Color depth: 8-bit
[2025-02-13 18:45:44.660]: Info: Color range: JPEG
[2025-02-13 18:45:44.698]: Info: Streaming bitrate is 1000000
[2025-02-13 18:45:44.707]: Verbose: [h264_amf @ 000002504a96e700] EncodeCoreHelper: 2025-02-13 18:45:44.707 BD0 [EncodeCoreHelper] Info: ***Found regpath, but key not found using default=1
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] EncodeCoreHelper: 2025-02-13 18:45:44.709 BD0 [EncodeCoreHelper] Info: ***Found regpath, but key not found, Default instance is 0
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreBaseImpl: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreBaseImpl] Info: AMFEncoderCoreBaseImpl::QueryThroughput - maxThroughputMBPerSec = 2937600, totalRequiredThroughputMBPerSec = 95774
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Info: ***Encode core used***!
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty Usage:2
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty FrameSize:1920,1080
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.FrameRate:60,1
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty QueryTimeout:50
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty Profile:100
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty MaxNumRefFrames:1
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorProfile:3
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty FullRangeColor:true
[2025-02-13 18:45:44.709]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty ColorBitDepth:8
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorTransferChar:6
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorPrimaries:6
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty RateControlPreanalysisEnable:0
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty QualityPreset:0
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty RateControlMethod:3
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.VBVBufferSize:16666
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty InitialVBVBufferFullness:47
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.TargetBitrate:1000000
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.PeakBitrate:1200000
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.PeakBitrate:1000000
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.FrameRate), 60,1
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: SetProperty LowLatencyInternal:true
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EnablePreAnalysis), false
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: GetProperty(BPicturesPattern), 0
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: AMFEncoderCoreH264Impl::Init(NV12, 1920, 1080)
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.709 BD0 [AMFEncoderCoreH264] Debug: GetProperty(QueryTimeout), 50
[2025-02-13 18:45:44.710]: Verbose: [h264_amf @ 000002504a96e700] VideoAdaptersEnum: 2025-02-13 18:45:44.710 BD0 [VideoAdaptersEnum] Info: AMFEnumerateVideoAdapters - Adapter was in DXGI but not in setupapi, filtering: luid=122a9d8
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.710 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EnableEncoderSmartAccessVideo), false
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.710 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EncoderGPU), -1
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreBaseImpl: 2025-02-13 18:45:44.710 BD0 [AMFEncoderCoreBaseImpl] Info: AMFEncoderCoreBaseImpl::QueryThroughput - maxThroughputMBPerSec = 2937600, totalRequiredThroughputMBPerSec = 95774
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Info: ***Encode core used***!
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty Usage:2
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty ColorBitDepth:8
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty FrameSize:1920,1080
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty FullRangeColor:true
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty InitialVBVBufferFullness:47
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty LowLatencyInternal:true
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty MaxNumRefFrames:1
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorPrimaries:6
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorProfile:3
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorTransferChar:6
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty Profile:100
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty QualityPreset:0
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty QueryTimeout:50
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty RateControlMethod:3
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty RateControlPreanalysisEnable:0
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.FrameRate:60,1
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.PeakBitrate:1000000
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.711]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.FrameRate), 60,1
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.TargetBitrate:1000000
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.VBVBufferSize:16666
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 +1
2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: SetProperty FrameSize:1920,1080
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxConsecutiveBPictures), 0
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 +1
2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EnablePreAnalysis), false
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(Profile), 100
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(ProfileLevel), 42
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxNumRefFrames), 1
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(IDRPeriod), 300
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(FrameSize), 1920,1080
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(SliceControlMode), 0
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(SlicesPerFrame), 1
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(OutputMode), 0
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(LowLatencyInternal), true
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxNumOfTemporalLayers), 1
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(BPicturesPattern), 0
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxConsecutiveBPictures), 0
[2025-02-13 18:45:44.712]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.711 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EncoderMFLowLatency), false
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(LowLatencyInternal), true
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxNumOfTemporalLayers), 1
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(BPicturesPattern), 0
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxConsecutiveBPictures), 0
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EncoderMFLowLatency), false
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(LowLatencyInternal), true
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: ConfigInit::Init usage 1, efcSupport 1
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EnablePreAnalysis), false
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: *** AMFEncoderCoreH264Impl::CreateEncoderAndQueue() successful!
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.FrameRate), 60,1
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlPreanalysisEnable), 0
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(QualityPreset), 0
[2025-02-13 18:45:44.713]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(MaxConsecutiveBPictures), 0
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(AdaptiveMiniGOP), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(HighMotionQualityBoostEnable), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(EnablePreAnalysis), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.FillerDataEnable), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.EnforceHRD), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL1.QL0.FillerDataEnable), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL1.QL0.EnforceHRD), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL2.QL0.FillerDataEnable), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL2.QL0.EnforceHRD), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL3.QL0.FillerDataEnable), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL3.QL0.EnforceHRD), false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.713 BD0 [AMFEncoderCoreH264] Debug: GetProperty(RateControlMethod), 3
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: GetProperty(FrameSize), 1920,1080
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty IntraRefreshNumOfStripes:32
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty IntraRefreshMode:1
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty EncodeLatency:1000
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.EnforceHRD:false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.FillerDataEnable:false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty TL0.QL0.RateControlSkipFrameEnable:false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty EnableVBAQ:true
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty DeBlockingFilter:false
[2025-02-13 18:45:44.714]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.714 BD0 [AMFEncoderCoreH264] Debug: SetProperty IDRPeriod:2147483647
[2025-02-13 18:45:44.715]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.715 BD0 [AMFEncoderCoreH264] Debug: AMFEncoderCoreH264Impl::SubmitInput() : format (NV12), memory (DX11), width (1920), height (1080)
[2025-02-13 18:45:44.715]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreBaseImpl: 2025-02-13 18:45:44.715 BD0 [AMFEncoderCoreBaseImpl] Info: AMFEncoderCoreBaseImpl::AllocBuffer() Switching to AllocBufferEx()
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.715 BD0 +1
2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(ColorBitDepth), 8
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: UpdateColorConfigs input format 1, efcSupport 1
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(InColorProfile), -1
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(OutColorProfile), 3
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(InColorTransferChar), 0
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(OutColorTransferChar), 6
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(InColorPrimaries), 0
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: SetProperty InColorPrimaries:1
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: GetProperty(OutColorPrimaries), 6
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.720 BD0 [AMFEncoderCoreH264] Debug: SetProperty OutColorProfile:3
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreH264] Debug: GetProperty(PicTransferMode), 0
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 0!
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 1, Layer 0 update!
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 2, Layer 0 update!
[2025-02-13 18:45:44.721]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 4!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 5!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 6!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 7!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 8!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreH264] Debug: ConfigTemporalLayer(): numofTemporalLayers = 1!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 9!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 10!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 11!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreImpl: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreImpl] Debug: ParamType 12!
[2025-02-13 18:45:44.722]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.721 BD0 [AMFEncoderCoreH264] Debug: SetBufferProps: Picture Type:0 LTR index=-1, LTR used=0 Temporal ID=0 @frame 0
[2025-02-13 18:45:44.723]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.722 BD0 [AMFEncoderCoreH264] Debug: AMFEncoderCoreH264Impl::QueryOutput()
[2025-02-13 18:45:44.728]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.727 BD0 [AMFEncoderCoreH264] Debug: GetProperty(TL0.QL0.FrameRate), 60,1
[2025-02-13 18:45:44.728]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.727 BD0 [AMFEncoderCoreH264] Debug: GetProperty(OutputMode), 0
[2025-02-13 18:45:44.728]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.727 BD0 [AMFEncoderCoreH264] Debug: QueryOutput() End: frame pts=1 outputFrames=1
[2025-02-13 18:45:44.728]: Debug: Frame 1: IDR Keyframe (AV_FRAME_FLAG_KEY)
[2025-02-13 18:45:44.728]: Verbose: nal_unit_type: 9(AUD), nal_ref_idc: 0
[2025-02-13 18:45:44.728]: Verbose: nal_unit_type: 7(SPS), nal_ref_idc: 3
[2025-02-13 18:45:44.728]: Verbose: nal_unit_type: 8(PPS), nal_ref_idc: 3
[2025-02-13 18:45:44.728]: Verbose: nal_unit_type: 5(IDR), nal_ref_idc: 3
[2025-02-13 18:45:44.728]: Verbose: [h264_amf @ 000002504a96e700] AMFEncoderCoreH264: 2025-02-13 18:45:44.727 BD0 [AMFEncoderCoreH264] Debug: AMFEncoderCoreH264Impl::Terminate()
I think the reason the latency doesn't go up (and the related aspect of power usage not decreasing) is the changes in 011a872c889999dc2ce8e552488d3d3011426c94. Specifically the part where we added { "latency"s, 1 }, to enable low latency mode in the encoder per AMF_VIDEO_ENCODER_LOWLATENCY_MODE documented here.
I think the profile option does still work, but it's that those particular defaults of your chosen profile are adjusted by AMF_VIDEO_ENCODER_LOWLATENCY_MODE. Codecs will typically try to operate the slowest that they possibly can while still keeping up with the incoming bitstream to be most power-efficient, but low latency mode requests that the codec produce output as fast as possible (with increased power consumption as a likely side-effect).
It's not very clear based on the AMF documentation exactly what "low latency mode in the encoder" actually means, but it may be that there are increases in GPU core clock or increased utilization of compute resources on the GPU to meet those demands.
It probably makes sense to expose this as an option on the AMF Encoder tab. I don't think we ever want to unset it if the profile uses it by default, so it probably makes sense to just expose "enabled" and "profile default" or something like that.
Hi @cgutman Thank you for the detailed answer! Yes, I think that this mode was included and described in the Mesa drivers as a mode where the GPU keeps clock frequency high to reduce encoding latency.
Is there any possibility to include the change you just proposed? Just another option in the menu to turn off this AMF_VIDEO_ENCODER_LOWLATENCY_MODE? The two options you propose seem reasonable for me as the ultra low latency profile in AMF already had this behaviour before the changes in 011a872.
Thank you again.
It seems this issue hasn't had any activity in the past 90 days. If it's still something you'd like addressed, please let us know by leaving a comment. Otherwise, to help keep our backlog tidy, we'll be closing this issue in 10 days. Thanks!
This issue was closed because it has been stalled for 10 days with no activity.