Mesa (main): frontends/va: use un-padded width/height in ExportSurfaceHandle

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Jan 16 15:59:26 UTC 2022


Module: Mesa
Branch: main
Commit: 76b7e393542c5cde9699f94ac5be7b09ccf2d0c2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=76b7e393542c5cde9699f94ac5be7b09ccf2d0c2

Author: Krunal Patel <krunalkumarmukeshkumar.patel at amd.corp-partner.google.com>
Date:   Tue Dec 28 01:54:44 2021 +0530

frontends/va: use un-padded width/height in ExportSurfaceHandle

Issue: VADRMPRIMESurfaceDescriptor width and height are rounded up to
macroblock size (16).

Rootcause: surf->buffer's width/height are rounded up to macroblock size (16),
so they shouldn't be used here.

Fix: Using surf->templ's width/height instead fixes incorrect surface
dimensions being sent via VADRMPRIMESurfaceDescriptor.

Signed-off-by: Krunal Patel <krunalkumarmukeshkumar.patel at amd.corp-partner.google.com>
Reviewed-by: Leo Liu <leo.liu at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14313>

---

 src/gallium/frontends/va/surface.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/va/surface.c b/src/gallium/frontends/va/surface.c
index 8c772d5544a..2714430f4bf 100644
--- a/src/gallium/frontends/va/surface.c
+++ b/src/gallium/frontends/va/surface.c
@@ -1260,8 +1260,8 @@ vlVaExportSurfaceHandle(VADriverContextP ctx,
       usage |= PIPE_HANDLE_USAGE_FRAMEBUFFER_WRITE;
 
    desc->fourcc = PipeFormatToVaFourcc(surf->buffer->buffer_format);
-   desc->width  = surf->buffer->width;
-   desc->height = surf->buffer->height;
+   desc->width  = surf->templat.width;
+   desc->height = surf->templat.height;
 
    for (p = 0; p < VL_MAX_SURFACES; p++) {
       struct winsys_handle whandle;



More information about the mesa-commit mailing list