diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/vulkan/radv_pipeline.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index d2002dd904b..23aefc5ffd0 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -3536,22 +3536,18 @@ radv_pipeline_generate_tess_shaders(struct radeon_cmdbuf *ctx_cs, } static void -radv_pipeline_generate_geometry_shader(struct radeon_cmdbuf *ctx_cs, - struct radeon_cmdbuf *cs, - struct radv_pipeline *pipeline, - const struct radv_gs_state *gs_state) +radv_pipeline_generate_hw_gs(struct radeon_cmdbuf *ctx_cs, + struct radeon_cmdbuf *cs, + struct radv_pipeline *pipeline, + struct radv_shader_variant *gs, + const struct radv_gs_state *gs_state) { - struct radv_shader_variant *gs; unsigned gs_max_out_vertices; uint8_t *num_components; uint8_t max_stream; unsigned offset; uint64_t va; - gs = pipeline->shaders[MESA_SHADER_GEOMETRY]; - if (!gs) - return; - gs_max_out_vertices = gs->info.gs.vertices_out; max_stream = gs->info.info.gs.max_stream; num_components = gs->info.info.gs.num_stream_output_components; @@ -3616,6 +3612,21 @@ radv_pipeline_generate_geometry_shader(struct radeon_cmdbuf *ctx_cs, radv_pipeline_generate_hw_vs(ctx_cs, cs, pipeline, pipeline->gs_copy_shader); } +static void +radv_pipeline_generate_geometry_shader(struct radeon_cmdbuf *ctx_cs, + struct radeon_cmdbuf *cs, + struct radv_pipeline *pipeline, + const struct radv_gs_state *gs_state) +{ + struct radv_shader_variant *gs; + + gs = pipeline->shaders[MESA_SHADER_GEOMETRY]; + if (!gs) + return; + + radv_pipeline_generate_hw_gs(ctx_cs, cs, pipeline, gs, gs_state); +} + static uint32_t offset_to_ps_input(uint32_t offset, bool flat_shade, bool float16) { uint32_t ps_input_cntl; |