mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 22:10:10 +01:00
i965: Pretend there are 4 subslices for compute shader threads on Gen9+.
Similar to what we did for pixel shader threads - see gen_device_info.c. We don't want to bump the actual Maximum Number of Threads though, so we adjust it here. For pixel shaders, we don't use max_wm_threads, so we could just bump it globally. Supposedly fixes Piglit tests: arb_gpu_shader_int64/execution/built-in-functions/cs-op-div-i64vec3-int64_t arb_gpu_shader_int64/execution/built-in-functions/cs-op-div-i64vec4-int64_t arb_gpu_shader_int64/execution/built-in-functions/cs-op-div-u64vec4-uint64_t Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
3e9533d9b8
commit
8ecdbb6136
1 changed files with 13 additions and 1 deletions
|
|
@ -357,7 +357,19 @@ brw_alloc_stage_scratch(struct brw_context *brw,
|
||||||
thread_count = devinfo->max_wm_threads;
|
thread_count = devinfo->max_wm_threads;
|
||||||
break;
|
break;
|
||||||
case MESA_SHADER_COMPUTE: {
|
case MESA_SHADER_COMPUTE: {
|
||||||
const unsigned subslices = MAX2(brw->screen->subslice_total, 1);
|
unsigned subslices = MAX2(brw->screen->subslice_total, 1);
|
||||||
|
|
||||||
|
/* The documentation for 3DSTATE_PS "Scratch Space Base Pointer" says:
|
||||||
|
*
|
||||||
|
* "Scratch Space per slice is computed based on 4 sub-slices. SW must
|
||||||
|
* allocate scratch space enough so that each slice has 4 slices
|
||||||
|
* allowed."
|
||||||
|
*
|
||||||
|
* According to the other driver team, this applies to compute shaders
|
||||||
|
* as well. This is not currently documented at all.
|
||||||
|
*/
|
||||||
|
if (devinfo->gen >= 9)
|
||||||
|
subslices = 4;
|
||||||
|
|
||||||
/* WaCSScratchSize:hsw
|
/* WaCSScratchSize:hsw
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue