Mesa (main): v3d: add hook to get on-disk shader cache

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 13 13:05:05 UTC 2022


Module: Mesa
Branch: main
Commit: f575b0d7b51ef53abdba79f686bdc403e0257a3f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f575b0d7b51ef53abdba79f686bdc403e0257a3f

Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Tue May 10 17:21:58 2022 +0200

v3d: add hook to get on-disk shader cache

This allows to support at least one binary format in
GL_ARB_get_program_binary extension.

Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16433>

---

 docs/features.txt                    | 2 +-
 src/gallium/drivers/v3d/v3d_screen.c | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/docs/features.txt b/docs/features.txt
index 75bec8c1e57..156eb3f6a04 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -143,7 +143,7 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virg
 GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12
 
   GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, softpipe, v3d, vc4, panfrost, lima)
-  GL_ARB_get_program_binary                             DONE (freedreno, 0 or 1 binary formats)
+  GL_ARB_get_program_binary                             DONE (freedreno, v3d, 0 or 1 binary formats)
   GL_ARB_separate_shader_objects                        DONE (all drivers)
   GL_ARB_shader_precision                               DONE (i965/gen7+, all drivers that support GLSL 4.10)
   GL_ARB_vertex_attrib_64bit                            DONE (i965/gen7+, softpipe, )
diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c
index 8ef201cee6b..43e12ca471d 100644
--- a/src/gallium/drivers/v3d/v3d_screen.c
+++ b/src/gallium/drivers/v3d/v3d_screen.c
@@ -826,6 +826,14 @@ v3d_screen_get_compatible_tlb_format(struct pipe_screen *screen,
         }
 }
 
+static struct disk_cache *
+v3d_screen_get_disk_shader_cache(struct pipe_screen *pscreen)
+{
+        struct v3d_screen *screen = v3d_screen(pscreen);
+
+        return screen->disk_cache;
+}
+
 struct pipe_screen *
 v3d_screen_create(int fd, const struct pipe_screen_config *config,
                   struct renderonly *ro)
@@ -892,6 +900,7 @@ v3d_screen_create(int fd, const struct pipe_screen_config *config,
         pscreen->get_vendor = v3d_screen_get_vendor;
         pscreen->get_device_vendor = v3d_screen_get_vendor;
         pscreen->get_compiler_options = v3d_screen_get_compiler_options;
+        pscreen->get_disk_shader_cache = v3d_screen_get_disk_shader_cache;
         pscreen->query_dmabuf_modifiers = v3d_screen_query_dmabuf_modifiers;
         pscreen->is_dmabuf_modifier_supported =
                 v3d_screen_is_dmabuf_modifier_supported;



More information about the mesa-commit mailing list