radeonsi: make si_shader_selector_reference globally visible

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Nicolai Hähnle 2017-08-04 16:48:30 +02:00
parent 4bbf6ded20
commit 40697e8678
2 changed files with 16 additions and 15 deletions

View File

@ -663,4 +663,18 @@ si_shader_uses_bindless_images(struct si_shader_selector *selector)
return selector ? selector->info.uses_bindless_images : false;
}
void si_destroy_shader_selector(struct si_context *sctx,
struct si_shader_selector *sel);
static inline void
si_shader_selector_reference(struct si_context *sctx,
struct si_shader_selector **dst,
struct si_shader_selector *src)
{
if (pipe_reference(&(*dst)->reference, &src->reference))
si_destroy_shader_selector(sctx, *dst);
*dst = src;
}
#endif

View File

@ -1534,19 +1534,6 @@ static bool si_check_missing_main_part(struct si_screen *sscreen,
return true;
}
static void si_destroy_shader_selector(struct si_context *sctx,
struct si_shader_selector *sel);
static void si_shader_selector_reference(struct si_context *sctx,
struct si_shader_selector **dst,
struct si_shader_selector *src)
{
if (pipe_reference(&(*dst)->reference, &src->reference))
si_destroy_shader_selector(sctx, *dst);
*dst = src;
}
/* Select the hw shader variant depending on the current state. */
static int si_shader_select_with_key(struct si_screen *sscreen,
struct si_shader_ctx_state *state,
@ -2447,8 +2434,8 @@ static void si_delete_shader(struct si_context *sctx, struct si_shader *shader)
free(shader);
}
static void si_destroy_shader_selector(struct si_context *sctx,
struct si_shader_selector *sel)
void si_destroy_shader_selector(struct si_context *sctx,
struct si_shader_selector *sel)
{
struct si_shader *p = sel->first_variant, *c;
struct si_shader_ctx_state *current_shader[SI_NUM_SHADERS] = {