iris: Enable PIPE_CAP_SHAREABLE_SHADERS.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 17 Nov 2020 22:36:29 +0000 (14:36 -0800)
committerMarge Bot <eric+marge@anholt.net>
Fri, 29 Jan 2021 06:26:29 +0000 (06:26 +0000)
Now that we store shader variants in the objects themselves rather
than a per-context hash table, they are actually global across
contexts.  We can enable this feature.

This makes shaders shared across contexts, so apps can compile in
one and use it in another.  This has always been allowed by GL,
but in the past we've simply recompiled the shaders in every context,
which is slow and painful.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7668>

src/gallium/drivers/iris/iris_screen.c

index 19ee81f..df7faf3 100644 (file)
@@ -260,6 +260,7 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_NATIVE_FENCE_FD:
    case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
    case PIPE_CAP_FENCE_SIGNAL:
+   case PIPE_CAP_SHAREABLE_SHADERS:
       return true;
    case PIPE_CAP_FBFETCH:
       return BRW_MAX_DRAW_BUFFERS;