From: Kenneth Graunke Date: Wed, 23 Nov 2016 20:24:22 +0000 (-0800) Subject: i965: Fix a mistake from porting the URB allocation code to arrays. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5da84a7e120d1df848531c6e7eb60340ac4dc43c;p=mesa.git i965: Fix a mistake from porting the URB allocation code to arrays. Commit 6d416bcd846a49414f210cd761789156c37a7b3e (i965: Use arrays in Gen7+ URB code.) introduced a regression which caused us to fail to allocate all of our URB space. - total_wants -= ds_wants; + total_wants -= additional; The new line should have been total_wants -= wants[i]. Fixes a large performance regression in TessMark. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98815 Signed-off-by: Kenneth Graunke Reviewed-by: Matt Turner --- diff --git a/src/intel/common/gen_urb_config.c b/src/intel/common/gen_urb_config.c index c925a0dbb36..937163b50b0 100644 --- a/src/intel/common/gen_urb_config.c +++ b/src/intel/common/gen_urb_config.c @@ -160,7 +160,7 @@ gen_get_urb_config(const struct gen_device_info *devinfo, roundf(wants[i] * (((float) remaining_space) / total_wants)); chunks[i] += additional; remaining_space -= additional; - total_wants -= additional; + total_wants -= wants[i]; } chunks[MESA_SHADER_GEOMETRY] += remaining_space;