Module: Mesa
Branch: master
Commit: 8cd71f399e73c5d87e9162cc74da76e317a9f41f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8cd71f399e73c5d87e9162cc74da76e317a9f41f

Author: Julien Isorce <[email protected]>
Date:   Thu May  2 15:36:04 2019 -0700

st/va: check resource_get_info nullity in vlVaDeriveImage

This pipe_screen function is not implemented by all backends.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110443
Signed-off-by: Julien Isorce <[email protected]>
Reviewed-by: Leo Liu <[email protected]>

---

 src/gallium/state_trackers/va/image.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/va/image.c 
b/src/gallium/state_trackers/va/image.c
index 491c2d82858..d4b9ce5596d 100644
--- a/src/gallium/state_trackers/va/image.c
+++ b/src/gallium/state_trackers/va/image.c
@@ -251,23 +251,26 @@ vlVaDeriveImage(VADriverContextP ctx, VASurfaceID 
surface, VAImage *image)
    }
 
    mtx_lock(&drv->mutex);
-   screen->resource_get_info(screen, surfaces[0]->texture, &stride, &offset);
-   if (!stride)
-      offset = 0;
+   if (screen->resource_get_info) {
+      screen->resource_get_info(screen, surfaces[0]->texture, &stride,
+                                &offset);
+      if (!stride)
+         offset = 0;
+   }
 
    switch (img->format.fourcc) {
    case VA_FOURCC('U','Y','V','Y'):
    case VA_FOURCC('Y','U','Y','V'):
-      assert(stride >= (w * 2));
       img->pitches[0] = stride > 0 ? stride : w * 2;
+      assert(img->pitches[0] >= (w * 2));
       break;
 
    case VA_FOURCC('B','G','R','A'):
    case VA_FOURCC('R','G','B','A'):
    case VA_FOURCC('B','G','R','X'):
    case VA_FOURCC('R','G','B','X'):
-      assert(stride >= (w * 4));
       img->pitches[0] = stride > 0 ? stride : w * 4;
+      assert(img->pitches[0] >= (w * 4));
       break;
 
    default:

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to