diff --git a/libavcodec/ffv1enc_vulkan.c b/libavcodec/ffv1enc_vulkan.c index a54180a98b..3d16eeac83 100644 --- a/libavcodec/ffv1enc_vulkan.c +++ b/libavcodec/ffv1enc_vulkan.c @@ -242,8 +242,8 @@ static int run_rct_search(AVCodecContext *avctx, FFVkExecContext *exec, .micro_version = f->micro_version, }; - if (avctx->sw_pix_fmt == AV_PIX_FMT_GBRP10 || - avctx->sw_pix_fmt == AV_PIX_FMT_GBRP12 || + if (avctx->sw_pix_fmt == AV_PIX_FMT_GBRP10MSB || + avctx->sw_pix_fmt == AV_PIX_FMT_GBRP12MSB || avctx->sw_pix_fmt == AV_PIX_FMT_GBRP14) memcpy(pd.fmt_lut, (int [4]) { 2, 1, 0, 3 }, 4*sizeof(int)); else @@ -503,8 +503,8 @@ static int vulkan_encode_ffv1_submit_frame(AVCodecContext *avctx, }; /* For some reason the C FFv1 encoder/decoder treats these differently */ - if (avctx->sw_pix_fmt == AV_PIX_FMT_GBRP10 || - avctx->sw_pix_fmt == AV_PIX_FMT_GBRP12 || + if (avctx->sw_pix_fmt == AV_PIX_FMT_GBRP10MSB || + avctx->sw_pix_fmt == AV_PIX_FMT_GBRP12MSB || avctx->sw_pix_fmt == AV_PIX_FMT_GBRP14) memcpy(pd.fmt_lut, (int [4]) { 2, 1, 0, 3 }, 4*sizeof(int)); else diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c index 760913b0e5..11b4b32d5d 100644 --- a/libavcodec/vulkan_decode.c +++ b/libavcodec/vulkan_decode.c @@ -1116,6 +1116,7 @@ int ff_vk_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx) /* Vulkan's formats are all LSB-padded */ case AV_PIX_FMT_GRAY10: frames_ctx->sw_format = AV_PIX_FMT_GRAY10MSB; break; case AV_PIX_FMT_GRAY12: frames_ctx->sw_format = AV_PIX_FMT_GRAY12MSB; break; + case AV_PIX_FMT_GBRP12: frames_ctx->sw_format = AV_PIX_FMT_GBRP12MSB; break; case AV_PIX_FMT_YUV420P10: frames_ctx->sw_format = AV_PIX_FMT_YUV420P10MSB; break; case AV_PIX_FMT_YUV420P12: frames_ctx->sw_format = AV_PIX_FMT_YUV420P12MSB; break; case AV_PIX_FMT_YUV422P10: frames_ctx->sw_format = AV_PIX_FMT_YUV422P10MSB; break; diff --git a/libavcodec/vulkan_ffv1.c b/libavcodec/vulkan_ffv1.c index b02bc71683..3eb0484629 100644 --- a/libavcodec/vulkan_ffv1.c +++ b/libavcodec/vulkan_ffv1.c @@ -447,7 +447,7 @@ static int vk_ffv1_end_frame(AVCodecContext *avctx) /* For some reason the C FFv1 encoder/decoder treats these differently */ - if (sw_format == AV_PIX_FMT_GBRP10 || sw_format == AV_PIX_FMT_GBRP12 || + if (sw_format == AV_PIX_FMT_GBRP10MSB || sw_format == AV_PIX_FMT_GBRP12MSB || sw_format == AV_PIX_FMT_GBRP14) memcpy(pd.fmt_lut, (int [4]) { 2, 1, 0, 3 }, 4*sizeof(int)); else if (sw_format == AV_PIX_FMT_X2BGR10) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 519dea379b..65e545521a 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -386,8 +386,8 @@ static const struct FFVkFormatEntry { /* Planar RGB */ { VK_FORMAT_R8_UNORM, AV_PIX_FMT_GBRP, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM } }, - { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP10, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, - { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP12, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, + { VK_FORMAT_R10X6_UNORM_PACK16, AV_PIX_FMT_GBRP10MSB, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, + { VK_FORMAT_R12X4_UNORM_PACK16, AV_PIX_FMT_GBRP12MSB, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP14, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP16, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, { VK_FORMAT_R32_SFLOAT, AV_PIX_FMT_GBRPF32, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT } }, diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c index 7975ed27d2..3e3a15b5e5 100644 --- a/libavutil/vulkan.c +++ b/libavutil/vulkan.c @@ -1534,7 +1534,7 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt) pix_fmt == AV_PIX_FMT_RGBA64 || pix_fmt == AV_PIX_FMT_RGB565 || pix_fmt == AV_PIX_FMT_BGR565 || pix_fmt == AV_PIX_FMT_BGR0 || pix_fmt == AV_PIX_FMT_0BGR || pix_fmt == AV_PIX_FMT_RGB0 || - pix_fmt == AV_PIX_FMT_GBRP10 || pix_fmt == AV_PIX_FMT_GBRP12 || + pix_fmt == AV_PIX_FMT_GBRP10MSB || pix_fmt == AV_PIX_FMT_GBRP12MSB || pix_fmt == AV_PIX_FMT_GBRP14 || pix_fmt == AV_PIX_FMT_GBRP16 || pix_fmt == AV_PIX_FMT_GBRAP || pix_fmt == AV_PIX_FMT_GBRAP10 || pix_fmt == AV_PIX_FMT_GBRAP12 || pix_fmt == AV_PIX_FMT_GBRAP14 || @@ -1557,8 +1557,8 @@ void ff_vk_set_perm(enum AVPixelFormat pix_fmt, int lut[4], int inv) case AV_PIX_FMT_GBRAP12: case AV_PIX_FMT_GBRAP14: case AV_PIX_FMT_GBRAP16: - case AV_PIX_FMT_GBRP10: - case AV_PIX_FMT_GBRP12: + case AV_PIX_FMT_GBRP10MSB: + case AV_PIX_FMT_GBRP12MSB: case AV_PIX_FMT_GBRP14: case AV_PIX_FMT_GBRP16: case AV_PIX_FMT_GBRPF32: @@ -1680,8 +1680,8 @@ const char *ff_vk_shader_rep_fmt(enum AVPixelFormat pix_fmt, case AV_PIX_FMT_GBRAP12: case AV_PIX_FMT_GBRAP14: case AV_PIX_FMT_GBRAP16: - case AV_PIX_FMT_GBRP10: - case AV_PIX_FMT_GBRP12: + case AV_PIX_FMT_GBRP10MSB: + case AV_PIX_FMT_GBRP12MSB: case AV_PIX_FMT_GBRP14: case AV_PIX_FMT_GBRP16: case AV_PIX_FMT_YUV420P10MSB: