File tree Expand file tree Collapse file tree 3 files changed +17
-6
lines changed Expand file tree Collapse file tree 3 files changed +17
-6
lines changed Original file line number Diff line number Diff line change @@ -1103,8 +1103,13 @@ fn default_hdr10_profile(op: vk::VideoCodecOperationFlagsKHR) -> vk::VideoProfil
11031103 . luma_bit_depth ( vk:: VideoComponentBitDepthFlagsKHR :: TYPE_10 )
11041104}
11051105
1106- fn default_encode_usage ( ) -> vk:: VideoEncodeUsageInfoKHR < ' static > {
1107- let tuning_mode = vk:: VideoEncodeTuningModeKHR :: ULTRA_LOW_LATENCY ;
1106+ fn default_encode_usage ( driver_version : DriverVersion ) -> vk:: VideoEncodeUsageInfoKHR < ' static > {
1107+ // Nvidia chokes on "ULTRA LOW" for some reason.
1108+ let tuning_mode = if matches ! ( driver_version, DriverVersion :: NvidiaProprietary { .. } ) {
1109+ vk:: VideoEncodeTuningModeKHR :: LOW_LATENCY
1110+ } else {
1111+ vk:: VideoEncodeTuningModeKHR :: ULTRA_LOW_LATENCY
1112+ } ;
11081113
11091114 vk:: VideoEncodeUsageInfoKHR :: default ( )
11101115 . video_usage_hints ( vk:: VideoEncodeUsageFlagsKHR :: STREAMING )
Original file line number Diff line number Diff line change @@ -79,8 +79,11 @@ impl H264Encoder {
7979 let h264_profile_info =
8080 vk:: VideoEncodeH264ProfileInfoEXT :: default ( ) . std_profile_idc ( profile_idc) ;
8181
82- let mut profile =
83- H264EncodeProfile :: new ( profile, super :: default_encode_usage ( ) , h264_profile_info) ;
82+ let mut profile = H264EncodeProfile :: new (
83+ profile,
84+ super :: default_encode_usage ( vk. device_info . driver_version . clone ( ) ) ,
85+ h264_profile_info,
86+ ) ;
8487
8588 let mut caps = H264EncodeCapabilities :: default ( ) ;
8689
Original file line number Diff line number Diff line change @@ -76,8 +76,11 @@ impl H265Encoder {
7676 let h265_profile_info =
7777 vk:: VideoEncodeH265ProfileInfoEXT :: default ( ) . std_profile_idc ( profile_idc) ;
7878
79- let mut profile =
80- H265EncodeProfile :: new ( profile, super :: default_encode_usage ( ) , h265_profile_info) ;
79+ let mut profile = H265EncodeProfile :: new (
80+ profile,
81+ super :: default_encode_usage ( vk. device_info . driver_version . clone ( ) ) ,
82+ h265_profile_info,
83+ ) ;
8184
8285 let mut caps = H265EncodeCapabilities :: default ( ) ;
8386
You can’t perform that action at this time.
0 commit comments