Sunshine icon indicating copy to clipboard operation
Sunshine copied to clipboard

AMF Encoder Usage Profile option not working

Open zetalex opened this issue 9 months ago • 3 comments

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()

zetalex avatar Feb 13 '25 17:02 zetalex

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.

cgutman avatar Mar 27 '25 04:03 cgutman

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.

zetalex avatar Mar 27 '25 22:03 zetalex

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!

LizardByte-bot avatar Jun 26 '25 10:06 LizardByte-bot

This issue was closed because it has been stalled for 10 days with no activity.

LizardByte-bot avatar Jul 07 '25 10:07 LizardByte-bot