diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2018-03-06 10:54:56 -0800 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2018-03-07 00:15:12 -0800 |
commit | 4e775aa077959e331cf7f910b0480ac99d97781b (patch) | |
tree | df1c76ef008bb807871bc9b518820fc53d61f651 | |
parent | 530edc9708055d6a198600e7933e3cebd2a7c5b5 (diff) |
intel/vulkan: Use devinfo cs_scratch_ids_per_subsliceintel-cs-scratch-buffer-size
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r-- | src/intel/vulkan/anv_allocator.c | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index 423e863a9e0..eb52812191b 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -1098,34 +1098,9 @@ anv_scratch_pool_alloc(struct anv_device *device, struct anv_scratch_pool *pool, const struct gen_device_info *devinfo = &physical_device->info; const unsigned subslices = MAX2(physical_device->subslice_total, 1); - - unsigned scratch_ids_per_subslice; - if (devinfo->is_haswell) { - /* WaCSScratchSize:hsw - * - * Haswell's scratch space address calculation appears to be sparse - * rather than tightly packed. The Thread ID has bits indicating - * which subslice, EU within a subslice, and thread within an EU it - * is. There's a maximum of two slices and two subslices, so these - * can be stored with a single bit. Even though there are only 10 EUs - * per subslice, this is stored in 4 bits, so there's an effective - * maximum value of 16 EUs. Similarly, although there are only 7 - * threads per EU, this is stored in a 3 bit number, giving an - * effective maximum value of 8 threads per EU. - * - * This means that we need to use 16 * 8 instead of 10 * 7 for the - * number of threads per subslice. - */ - scratch_ids_per_subslice = 16 * 8; - } else if (devinfo->is_cherryview) { - /* For Cherryview, it appears that the scratch addresses for the 6 EU - * devices may still generate compute scratch addresses covering the - * same range as 8 EU. - */ - scratch_ids_per_subslice = 8 * 7; - } else { - scratch_ids_per_subslice = devinfo->max_cs_threads; - } + const unsigned scratch_ids_per_subslice = + devinfo->cs_scratch_ids_per_subslice ? + devinfo->cs_scratch_ids_per_subslice : devinfo->max_cs_threads; uint32_t max_threads[] = { [MESA_SHADER_VERTEX] = devinfo->max_vs_threads, |