From b25c40b857bd0532cef9ceba1ac8e133b96d387f Mon Sep 17 00:00:00 2001 From: David Rosca Date: Mon, 25 Nov 2024 14:01:43 +0100 Subject: [PATCH] frontends/va: Use resource_get_param instead of resource_get_info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Part-of: --- src/gallium/frontends/va/surface.c | 32 ++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/gallium/frontends/va/surface.c b/src/gallium/frontends/va/surface.c index 513e89e63d5..2cfb94ee1ae 100644 --- a/src/gallium/frontends/va/surface.c +++ b/src/gallium/frontends/va/surface.c @@ -1691,7 +1691,7 @@ vlVaExportSurfaceHandle(VADriverContextP ctx, desc->height = surf->templat.height; desc->num_objects = 0; - bool supports_contiguous_planes = screen->resource_get_info && surf->buffer->contiguous_planes; + bool supports_contiguous_planes = screen->resource_get_param && surf->buffer->contiguous_planes; for (p = 0; p < ARRAY_SIZE(desc->objects); p++) { struct winsys_handle whandle; @@ -1710,7 +1710,7 @@ vlVaExportSurfaceHandle(VADriverContextP ctx, } /* If the driver stores all planes contiguously in memory, only one - * handle needs to be exported. resource_get_info is used to obtain + * handle needs to be exported. resource_get_param is used to obtain * pitch and offset for each layer. */ if (!desc->num_objects || !supports_contiguous_planes) { memset(&whandle, 0, sizeof(whandle)); @@ -1736,7 +1736,19 @@ vlVaExportSurfaceHandle(VADriverContextP ctx, desc->layers[0].object_index[p] = desc->num_objects - 1; if (supports_contiguous_planes) { - screen->resource_get_info(screen, resource, &desc->layers[0].pitch[p], &desc->layers[0].offset[p]); + uint64_t value; + if (!screen->resource_get_param(screen, drv->pipe, resource, 0, 0, 0, + PIPE_RESOURCE_PARAM_STRIDE, 0, &value)) { + ret = VA_STATUS_ERROR_INVALID_SURFACE; + goto fail; + } + desc->layers[0].pitch[p] = value; + if (!screen->resource_get_param(screen, drv->pipe, resource, 0, 0, 0, + PIPE_RESOURCE_PARAM_OFFSET, 0, &value)) { + ret = VA_STATUS_ERROR_INVALID_SURFACE; + goto fail; + } + desc->layers[0].offset[p] = value; } else { desc->layers[0].pitch[p] = whandle.stride; desc->layers[0].offset[p] = whandle.offset; @@ -1747,7 +1759,19 @@ vlVaExportSurfaceHandle(VADriverContextP ctx, desc->layers[p].object_index[0] = desc->num_objects - 1; if (supports_contiguous_planes) { - screen->resource_get_info(screen, resource, &desc->layers[p].pitch[0], &desc->layers[p].offset[0]); + uint64_t value; + if (!screen->resource_get_param(screen, drv->pipe, resource, 0, 0, 0, + PIPE_RESOURCE_PARAM_STRIDE, 0, &value)) { + ret = VA_STATUS_ERROR_INVALID_SURFACE; + goto fail; + } + desc->layers[p].pitch[0] = value; + if (!screen->resource_get_param(screen, drv->pipe, resource, 0, 0, 0, + PIPE_RESOURCE_PARAM_OFFSET, 0, &value)) { + ret = VA_STATUS_ERROR_INVALID_SURFACE; + goto fail; + } + desc->layers[p].offset[0] = value; } else { desc->layers[p].pitch[0] = whandle.stride; desc->layers[p].offset[0] = whandle.offset;