|
|
@ -55,6 +55,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
private readonly Version _minKerneli915Hang = new Version(5, 18);
|
|
|
|
private readonly Version _minKerneli915Hang = new Version(5, 18);
|
|
|
|
private readonly Version _maxKerneli915Hang = new Version(6, 1, 3);
|
|
|
|
private readonly Version _maxKerneli915Hang = new Version(6, 1, 3);
|
|
|
|
private readonly Version _minFixedKernel60i915Hang = new Version(6, 0, 18);
|
|
|
|
private readonly Version _minFixedKernel60i915Hang = new Version(6, 0, 18);
|
|
|
|
|
|
|
|
private readonly Version _minKernelVersionAmdVkFmtModifier = new Version(5, 15);
|
|
|
|
|
|
|
|
|
|
|
|
private readonly Version _minFFmpegImplictHwaccel = new Version(6, 0);
|
|
|
|
private readonly Version _minFFmpegImplictHwaccel = new Version(6, 0);
|
|
|
|
private readonly Version _minFFmpegHwaUnsafeOutput = new Version(6, 0);
|
|
|
|
private readonly Version _minFFmpegHwaUnsafeOutput = new Version(6, 0);
|
|
|
@ -995,7 +996,8 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
Environment.SetEnvironmentVariable("AMD_DEBUG", "noefc");
|
|
|
|
Environment.SetEnvironmentVariable("AMD_DEBUG", "noefc");
|
|
|
|
|
|
|
|
|
|
|
|
if (IsVulkanFullSupported()
|
|
|
|
if (IsVulkanFullSupported()
|
|
|
|
&& _mediaEncoder.IsVaapiDeviceSupportVulkanDrmInterop)
|
|
|
|
&& _mediaEncoder.IsVaapiDeviceSupportVulkanDrmInterop
|
|
|
|
|
|
|
|
&& Environment.OSVersion.Version >= _minKernelVersionAmdVkFmtModifier)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
args.Append(GetDrmDeviceArgs(options.VaapiDevice, DrmAlias));
|
|
|
|
args.Append(GetDrmDeviceArgs(options.VaapiDevice, DrmAlias));
|
|
|
|
args.Append(GetVaapiDeviceArgs(null, null, null, DrmAlias, VaapiAlias));
|
|
|
|
args.Append(GetVaapiDeviceArgs(null, null, null, DrmAlias, VaapiAlias));
|
|
|
@ -4482,7 +4484,8 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
// prefered vaapi + vulkan filters pipeline
|
|
|
|
// prefered vaapi + vulkan filters pipeline
|
|
|
|
if (_mediaEncoder.IsVaapiDeviceAmd
|
|
|
|
if (_mediaEncoder.IsVaapiDeviceAmd
|
|
|
|
&& isVaapiVkSupported
|
|
|
|
&& isVaapiVkSupported
|
|
|
|
&& _mediaEncoder.IsVaapiDeviceSupportVulkanDrmInterop)
|
|
|
|
&& _mediaEncoder.IsVaapiDeviceSupportVulkanDrmInterop
|
|
|
|
|
|
|
|
&& Environment.OSVersion.Version >= _minKernelVersionAmdVkFmtModifier)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// AMD radeonsi path(targeting Polaris/gfx8+), with extra vulkan tonemap and overlay support.
|
|
|
|
// AMD radeonsi path(targeting Polaris/gfx8+), with extra vulkan tonemap and overlay support.
|
|
|
|
return GetAmdVaapiFullVidFiltersPrefered(state, options, vidDecoder, vidEncoder);
|
|
|
|
return GetAmdVaapiFullVidFiltersPrefered(state, options, vidDecoder, vidEncoder);
|
|
|
|