i965: Check if the modifier is supported in select_best_modifier
authorJason Ekstrand <jason.ekstrand@intel.com>
Sun, 16 Jul 2017 23:54:44 +0000 (16:54 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 17 Jul 2017 20:48:38 +0000 (13:48 -0700)
Otherwise, if a client gave us a list of modifiers that contained a
modifier we understand but which is not supported on the hardware, we
might return that one and then fail to create the image.

Reviewed-by: Daniel Stone <daniels@collabora.com>
src/mesa/drivers/dri/i965/intel_screen.c

index 0c1a88d36f3201bdaa5b458fbe4994b89213474b..7ccc1d34f0d265caae79e69149ca83961e0a1b9a 100644 (file)
@@ -586,6 +586,9 @@ select_best_modifier(struct gen_device_info *devinfo,
    enum modifier_priority prio = MODIFIER_PRIORITY_INVALID;
 
    for (int i = 0; i < count; i++) {
+      if (!modifier_is_supported(devinfo, modifiers[i]))
+         continue;
+
       switch (modifiers[i]) {
       case I915_FORMAT_MOD_Y_TILED:
          prio = MAX2(prio, MODIFIER_PRIORITY_Y);