Now non-tonemapped 4k h264 hit 56 fps in window  :)
From caa08918f4e319165bfc4f7568fc69c1f9a6e0ea Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <[email protected]>
Date: Wed, 7 May 2025 03:46:18 +0300
Subject: [PATCH] Add Vulkan decode accel - much faster!

---
 cinelerra-5.1/cinelerra/ffmpeg.C           | 2 ++
 cinelerra-5.1/cinelerra/performanceprefs.C | 1 +
 2 files changed, 3 insertions(+)

diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C
index 075ef4dd..22e5540e 100644
--- a/cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/cinelerra-5.1/cinelerra/ffmpeg.C
@@ -373,6 +373,7 @@ GET_HW_PIXFMT(vaapi, AV_PIX_FMT_VAAPI)
 GET_HW_PIXFMT(vdpau, AV_PIX_FMT_VDPAU)
 GET_HW_PIXFMT(cuda,  AV_PIX_FMT_CUDA)
 GET_HW_PIXFMT(nv12,  AV_PIX_FMT_NV12)
+GET_HW_PIXFMT(vulkan,  AV_PIX_FMT_NV12)
 
 static enum AVPixelFormat get_hw_format(AVCodecContext *ctx,
 			const enum AVPixelFormat *pix_fmts)
@@ -384,6 +385,7 @@ static enum AVPixelFormat get_hw_format(AVCodecContext *ctx,
 		case AV_PIX_FMT_VDPAU: ctx->get_format = get_hw_vdpau; return *p;
 		case AV_PIX_FMT_CUDA:  ctx->get_format = get_hw_cuda;  return *p;
 		case AV_PIX_FMT_NV12:  ctx->get_format = get_hw_nv12;  return *p;
+		case AV_PIX_FMT_VULKAN:  ctx->get_format = get_hw_nv12;  return *p;
 		default:
 			fprintf(stderr, "Unknown HW surface format: %s\n",
 				av_get_pix_fmt_name(*p));
diff --git a/cinelerra-5.1/cinelerra/performanceprefs.C b/cinelerra-5.1/cinelerra/performanceprefs.C
index 77ca2d5f..60221ab5 100644
--- a/cinelerra-5.1/cinelerra/performanceprefs.C
+++ b/cinelerra-5.1/cinelerra/performanceprefs.C
@@ -376,6 +376,7 @@ void PrefsUseHWDev::create_objects()
 #ifdef HAVE_NV
 	hw_dev_names.append(new BC_ListBoxItem("cuda"));
 #endif
+	hw_dev_names.append(new BC_ListBoxItem("vulkan"));
 	update_list(&hw_dev_names);
 	update(&pwindow->thread->preferences->use_hw_dev[0]);
 }
-- 
2.46.3

-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to