zink: set PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 26 Jan 2021 21:35:52 +0000 (16:35 -0500)
committerMarge Bot <eric+marge@anholt.net>
Wed, 24 Feb 2021 16:40:33 +0000 (16:40 +0000)
non-intel platforms need border colors pre-swizzled

this is an internal khronos spec bug that will (someday) be resolved in
a more detectable manner

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9136>

src/gallium/drivers/zink/zink_screen.c

index e7a47e1..f03b005 100644 (file)
@@ -273,6 +273,11 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_GL_CLAMP:
       return 0;
 
+   case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
+      return screen->info.driver_props.driverID == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR ||
+             screen->info.driver_props.driverID == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR ?
+             0 : PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50;
+
    case PIPE_CAP_MAX_TEXTURE_2D_SIZE:
       return screen->info.props.limits.maxImageDimension2D;
    case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: