From: Samuel Pitoiset Date: Thu, 8 Nov 2018 13:00:35 +0000 (+0100) Subject: radv: cleanup and document a Hawaii bug with offchip buffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cc4569b733d892998db321cdde4466073a269c33;p=mesa.git radv: cleanup and document a Hawaii bug with offchip buffers Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 92254bed2e1..145be67c856 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -2046,16 +2046,15 @@ radv_get_hs_offchip_param(struct radv_device *device, uint32_t *max_offchip_buff max_offchip_buffers = max_offchip_buffers_per_se * device->physical_device->rad_info.max_se; - switch (device->tess_offchip_block_dw_size) { - default: - assert(0); - /* fall through */ - case 8192: - offchip_granularity = V_03093C_X_8K_DWORDS; - break; - case 4096: + /* Hawaii has a bug with offchip buffers > 256 that can be worked + * around by setting 4K granularity. + */ + if (device->tess_offchip_block_dw_size == 4096) { + assert(device->physical_device->rad_info.family == CHIP_HAWAII); offchip_granularity = V_03093C_X_4K_DWORDS; - break; + } else { + assert(device->tess_offchip_block_dw_size == 8192); + offchip_granularity = V_03093C_X_8K_DWORDS; } switch (device->physical_device->rad_info.chip_class) {