diff options
author | Dave Airlie <[email protected]> | 2017-03-28 06:13:09 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-03-28 17:39:59 +1000 |
commit | 931a8d0c9a15df462f14ab40f9ae31c8ecf75376 (patch) | |
tree | d2c4a0ad122c708f25d8cd2f50e6b8095de58718 /src/amd/vulkan/radv_pipeline.c | |
parent | ae0551b4b3f7ca79148f0cb8384c0f1efc3faac2 (diff) |
radv: rework vertex/export shader output handling
In order to faciliate adding tess support, split the vs/es
output info into a separate block, so we make it easier to
have the tess shaders export the same info.
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_pipeline.c')
-rw-r--r-- | src/amd/vulkan/radv_pipeline.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 1becb65055b..2c710f4eb8f 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1467,15 +1467,15 @@ calculate_gs_ring_sizes(struct radv_pipeline *pipeline) unsigned alignment = 256 * num_se; /* The maximum size is 63.999 MB per SE. */ unsigned max_size = ((unsigned)(63.999 * 1024 * 1024) & ~255) * num_se; - + struct ac_es_output_info *es_info = &pipeline->shaders[MESA_SHADER_VERTEX]->info.vs.es_info; struct ac_shader_variant_info *gs_info = &pipeline->shaders[MESA_SHADER_GEOMETRY]->info; - struct ac_shader_variant_info *es_info = &pipeline->shaders[MESA_SHADER_VERTEX]->info; + /* Calculate the minimum size. */ - unsigned min_esgs_ring_size = align(es_info->vs.esgs_itemsize * gs_vertex_reuse * + unsigned min_esgs_ring_size = align(es_info->esgs_itemsize * gs_vertex_reuse * wave_size, alignment); /* These are recommended sizes, not minimum sizes. */ unsigned esgs_ring_size = max_gs_waves * 2 * wave_size * - es_info->vs.esgs_itemsize * gs_info->gs.vertices_in; + es_info->esgs_itemsize * gs_info->gs.vertices_in; unsigned gsvs_ring_size = max_gs_waves * 2 * wave_size * gs_info->gs.max_gsvs_emit_size * 1; // no streams in VK (gs->max_gs_stream + 1); |