draw: add disk cache callbacks for draw shaders
This provides a set of hooks from the driver that draw can use to access the disk cache for the draw shaders. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5049>
This commit is contained in:
@@ -1336,3 +1336,19 @@ draw_set_tess_state(struct draw_context *draw,
|
|||||||
for (unsigned i = 0; i < 2; i++)
|
for (unsigned i = 0; i < 2; i++)
|
||||||
draw->default_inner_tess_level[i] = default_inner_level[i];
|
draw->default_inner_tess_level[i] = default_inner_level[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
draw_set_disk_cache_callbacks(struct draw_context *draw,
|
||||||
|
void *data_cookie,
|
||||||
|
void (*find_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]),
|
||||||
|
void (*insert_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]))
|
||||||
|
{
|
||||||
|
draw->disk_cache_find_shader = find_shader;
|
||||||
|
draw->disk_cache_insert_shader = insert_shader;
|
||||||
|
draw->disk_cache_cookie = data_cookie;
|
||||||
|
|
||||||
|
}
|
||||||
|
@@ -366,4 +366,14 @@ draw_get_shader_param_no_llvm(enum pipe_shader_type shader,
|
|||||||
boolean
|
boolean
|
||||||
draw_get_option_use_llvm(void);
|
draw_get_option_use_llvm(void);
|
||||||
|
|
||||||
|
struct lp_cached_code;
|
||||||
|
void
|
||||||
|
draw_set_disk_cache_callbacks(struct draw_context *draw,
|
||||||
|
void *data_cookie,
|
||||||
|
void (*find_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]),
|
||||||
|
void (*insert_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]));
|
||||||
#endif /* DRAW_CONTEXT_H */
|
#endif /* DRAW_CONTEXT_H */
|
||||||
|
@@ -71,7 +71,7 @@ struct tgsi_buffer;
|
|||||||
struct draw_pt_front_end;
|
struct draw_pt_front_end;
|
||||||
struct draw_assembler;
|
struct draw_assembler;
|
||||||
struct draw_llvm;
|
struct draw_llvm;
|
||||||
|
struct lp_cached_code;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the mapped vertex buffer.
|
* Represents the mapped vertex buffer.
|
||||||
@@ -392,6 +392,14 @@ struct draw_context
|
|||||||
|
|
||||||
struct draw_assembler *ia;
|
struct draw_assembler *ia;
|
||||||
|
|
||||||
|
void *disk_cache_cookie;
|
||||||
|
void (*disk_cache_find_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]);
|
||||||
|
void (*disk_cache_insert_shader)(void *cookie,
|
||||||
|
struct lp_cached_code *cache,
|
||||||
|
unsigned char ir_sha1_cache_key[20]);
|
||||||
|
|
||||||
void *driver_private;
|
void *driver_private;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user