diff options
author | Samuel Pitoiset <[email protected]> | 2019-08-01 10:43:42 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2019-08-02 09:37:36 +0200 |
commit | 8a86908e9a79fb7ac94df1fa3194b54059a6045f (patch) | |
tree | e85df798586e6bdc2f944d95125622ec403c16cd /src/amd/vulkan/radv_pipeline.c | |
parent | 953bbacc23bbf8b107a49187abc88cc2f4b1be43 (diff) |
radv/gfx10: add Wave32 support for vertex, tessellation and geometry shaders
It can be enabled with RADV_PERFTEST=gewave32.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_pipeline.c')
-rw-r--r-- | src/amd/vulkan/radv_pipeline.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index dbfe261c982..d722d558a43 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1782,7 +1782,7 @@ calculate_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo, /* Round up towards full wave sizes for better ALU utilization. */ if (!max_vert_out_per_gs_instance) { - const unsigned wavesize = 64; + const unsigned wavesize = pipeline->device->physical_device->ge_wave_size; unsigned orig_max_esverts; unsigned orig_max_gsprims; do { @@ -4125,6 +4125,14 @@ radv_compute_vgt_shader_stages_en(const struct radv_pipeline *pipeline) if (pipeline->device->physical_device->rad_info.chip_class >= GFX9) stages |= S_028B54_MAX_PRIMGRP_IN_WAVE(2); + if (pipeline->device->physical_device->rad_info.chip_class >= GFX10 && + pipeline->device->physical_device->ge_wave_size == 32) { + /* legacy GS only supports Wave64 */ + stages |= S_028B54_HS_W32_EN(1) | + S_028B54_GS_W32_EN(radv_pipeline_has_ngg(pipeline)) | + S_028B54_VS_W32_EN(1); + } + return stages; } |