diff options
author | Eric Anholt <[email protected]> | 2019-12-20 14:26:44 -0800 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2020-01-21 10:06:23 -0800 |
commit | 2dc205515742d7da7ed3ca3b6005e1762a876254 (patch) | |
tree | a6a866387a0be05a8917e23be18cf21737c992aa /src | |
parent | 28eb481bc2156ccc07c106ab517c2a3a42a53de1 (diff) |
turnip: Refactor linkage state setup.
As I touch this for descriptor set reworks, I don't want to have to update
it twice.
Reviewed-by: Jonathan Marek <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3240>
Diffstat (limited to 'src')
-rw-r--r-- | src/freedreno/vulkan/tu_pipeline.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index e5066672177..f170fa1958b 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -1621,6 +1621,21 @@ tu_pipeline_builder_parse_dynamic(struct tu_pipeline_builder *builder, } static void +tu_pipeline_set_linkage(struct tu_program_descriptor_linkage *link, + struct tu_shader *shader, + struct ir3_shader_variant *v) +{ + link->ubo_state = v->shader->ubo_state; + link->const_state = v->shader->const_state; + link->constlen = v->constlen; + link->texture_map = shader->texture_map; + link->sampler_map = shader->sampler_map; + link->ubo_map = shader->ubo_map; + link->ssbo_map = shader->ssbo_map; + link->image_mapping = v->image_mapping; +} + +static void tu_pipeline_builder_parse_shader_stages(struct tu_pipeline_builder *builder, struct tu_pipeline *pipeline) { @@ -1638,17 +1653,9 @@ tu_pipeline_builder_parse_shader_stages(struct tu_pipeline_builder *builder, if (!builder->shaders[i]) continue; - struct tu_program_descriptor_linkage *link = &pipeline->program.link[i]; - struct ir3_shader *shader = builder->shaders[i]->variants[0].shader; - - link->ubo_state = shader->ubo_state; - link->const_state = shader->const_state; - link->constlen = builder->shaders[i]->variants[0].constlen; - link->texture_map = builder->shaders[i]->texture_map; - link->sampler_map = builder->shaders[i]->sampler_map; - link->ubo_map = builder->shaders[i]->ubo_map; - link->ssbo_map = builder->shaders[i]->ssbo_map; - link->image_mapping = builder->shaders[i]->variants[0].image_mapping; + tu_pipeline_set_linkage(&pipeline->program.link[i], + builder->shaders[i], + &builder->shaders[i]->variants[0]); } } @@ -2081,17 +2088,10 @@ tu_compute_pipeline_create(VkDevice device, if (result != VK_SUCCESS) return result; - struct tu_program_descriptor_linkage *link = &pipeline->program.link[MESA_SHADER_COMPUTE]; struct ir3_shader_variant *v = &shader->variants[0]; - link->ubo_state = v->shader->ubo_state; - link->const_state = v->shader->const_state; - link->constlen = v->constlen; - link->texture_map = shader->texture_map; - link->sampler_map = shader->sampler_map; - link->ubo_map = shader->ubo_map; - link->ssbo_map = shader->ssbo_map; - link->image_mapping = v->image_mapping; + tu_pipeline_set_linkage(&pipeline->program.link[MESA_SHADER_COMPUTE], + shader, v); result = tu_compute_upload_shader(device, pipeline, shader); if (result != VK_SUCCESS) |