diff options
author | Samuel Pitoiset <[email protected]> | 2019-07-09 08:43:56 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2019-07-09 09:54:17 +0200 |
commit | c81b719812b6202b9c12eb6c8ad876c10ef7cbd0 (patch) | |
tree | 5667efbca0e60ced6816af30feb3094038cdb7e1 /src/amd | |
parent | 54e2470047d2c86718f3187be7aa3b651270cd36 (diff) |
radv: add radv_pipeline_generate_hw_gs() helper
For legacy GS path.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd')
-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; |