> On Thu, May 28, 2015 at 1:04 PM, Grigori Goronzy <g...@chown.ath.cx> wrote: >> @@ -286,6 +287,13 @@ ilo_get_compute_param(struct pipe_screen *screen, >> ptr = &val.images_supported; >> size = sizeof(val.images_supported); >> break; >> + case PIPE_COMPUTE_CAP_SUBGROUP_SIZE: >> + /* best case is SIMD32 */ >> + val.subgroup_size = 32; >> + >> + ptr = &val.subgroup_size; >> + size = sizeof(val.subgroup_size); >> + break; >> default: >> ptr = NULL; >> size = 0; > > Everything else seems fine to me, but IIRC Intel's IGPs have a SIMD > width of 16, not 32. (Or if it depends on generation, we should > probably have a lookup function like for r600).
Ok, scratch that. I was confused by the fact that Beignet reports a preferred work-group size multiple of 16. Intel IGPs support _logical_ SIMD width of up to 32, but the _hardware_ SIMD width is just 4. So the question is if here we should report the _hardware_ width, or the maximum _logical_ width. For OpenCL, the _logical_ aspect is the only relevant one, but I think this should be handled on the OpenCL side of things (since it also depends on things such as the vectorization of each specific kernel and, for future OpenCL 2.0 support, even on the individual launch grid). Here, I think the _hardware_ property should be reported instead. -- Giuseppe "Oblomov" Bilotta _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev