From 07097c84ca13217b8d321aa54c52c17b8507a28c Mon Sep 17 00:00:00 2001 From: Calder Young Date: Thu, 3 Jul 2025 13:40:40 -0700 Subject: [PATCH] anv: Fix tiling for H.265 and VP9 video surfaces on GFX 12.5+ Cc: mesa-stable Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/genX_cmd_video.c | 12 ++++++++++++ src/intel/vulkan/genX_cmd_video_enc.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_video.c b/src/intel/vulkan/genX_cmd_video.c index b664f24a870..3d08f6cdf49 100644 --- a/src/intel/vulkan/genX_cmd_video.c +++ b/src/intel/vulkan/genX_cmd_video.c @@ -254,6 +254,9 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, buf.DecodedPictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd_buffer->device, buf.DecodedPictureAddress.bo, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.DeblockingFilterLineBufferAddress = (struct anv_address) { @@ -360,6 +363,9 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, buf.ReferencePictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd_buffer->device, NULL, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.OriginalUncompressedPictureSourceMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { @@ -2863,6 +2869,9 @@ anv_vp9_decode_video(struct anv_cmd_buffer *cmd_buffer, buf.DecodedPictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd_buffer->device, buf.DecodedPictureAddress.bo, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.DeblockingFilterLineBufferAddress = (struct anv_address) { @@ -2972,6 +2981,9 @@ anv_vp9_decode_video(struct anv_cmd_buffer *cmd_buffer, buf.ReferencePictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd_buffer->device, NULL, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.OriginalUncompressedPictureSourceMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { diff --git a/src/intel/vulkan/genX_cmd_video_enc.c b/src/intel/vulkan/genX_cmd_video_enc.c index 99267e80a1c..ab71ae9ddbc 100644 --- a/src/intel/vulkan/genX_cmd_video_enc.c +++ b/src/intel/vulkan/genX_cmd_video_enc.c @@ -1496,6 +1496,9 @@ anv_h265_encode_video(struct anv_cmd_buffer *cmd, const VkVideoEncodeInfoKHR *en buf.DecodedPictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd->device, buf.DecodedPictureAddress.bo, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.DeblockingFilterLineBufferAddress = (struct anv_address) { @@ -1599,6 +1602,9 @@ anv_h265_encode_video(struct anv_cmd_buffer *cmd, const VkVideoEncodeInfoKHR *en buf.ReferencePictureMemoryAddressAttributes = (struct GENX(MEMORYADDRESSATTRIBUTES)) { .MOCS = anv_mocs(cmd->device, NULL, 0), +#if GFX_VERx10 >= 125 + .TiledResourceMode = TRMODE_TILEF, +#endif }; buf.OriginalUncompressedPictureSourceAddress =