summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-02-20 09:29:01 +1100
committerTimothy Arceri <[email protected]>2017-02-23 09:20:22 +1100
commit4be98ed5fd23e42c19a20b322a0207326f834c64 (patch)
treea86c90158dd88d8b6982e0e9b7e2e11f35b564b3 /src/gallium
parent9f506d817ee38e421d7ff3f32a28808c685f66da (diff)
gallium: add get_disk_shader_cache() callback
V2: Provide more detail in callback description and add description to screen.rst Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/docs/source/screen.rst10
-rw-r--r--src/gallium/include/pipe/p_screen.h9
2 files changed, 19 insertions, 0 deletions
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
index 74c8ceca20f..858eb9f9100 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -763,6 +763,16 @@ The driver-specific query group is described with the
pipe_driver_query_group_info structure.
+
+get_disk_shader_cache
+^^^^^^^^^^^^^^^^^^^^^
+
+Returns a pointer to a driver-specific on-disk shader cache. If the driver
+failed to create the cache or does not support an on-disk shader cache NULL is
+returned. The callback itself may also be NULL if the driver doesn't support
+an on-disk shader cache.
+
+
Thread safety
-------------
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
index b6203f1da0c..eb2ac65ea4a 100644
--- a/src/gallium/include/pipe/p_screen.h
+++ b/src/gallium/include/pipe/p_screen.h
@@ -58,6 +58,7 @@ struct pipe_surface;
struct pipe_transfer;
struct pipe_box;
struct pipe_memory_info;
+struct disk_cache;
/**
@@ -318,6 +319,14 @@ struct pipe_screen {
const void *(*get_compiler_options)(struct pipe_screen *screen,
enum pipe_shader_ir ir,
unsigned shader);
+
+ /**
+ * Returns a pointer to a driver-specific on-disk shader cache. If the
+ * driver failed to create the cache or does not support an on-disk shader
+ * cache NULL is returned. The callback itself may also be NULL if the
+ * driver doesn't support an on-disk shader cache.
+ */
+ struct disk_cache *(*get_disk_shader_cache)(struct pipe_screen *screen);
};