@@ -47,18 +47,24 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueKernelLaunch(
47
47
}
48
48
49
49
if (GroupSize[0 ] > GlobalSize[0 ] || GroupSize[1 ] > GlobalSize[1 ] ||
50
- GroupSize[2 ] > GlobalSize[2 ]) {
50
+ GroupSize[2 ] > GlobalSize[2 ] ||
51
+ GroupSize[0 ] > std::numeric_limits<uint32_t >::max () ||
52
+ GroupSize[1 ] > std::numeric_limits<uint32_t >::max () ||
53
+ GroupSize[2 ] > std::numeric_limits<uint32_t >::max () ||
54
+ GlobalSize[0 ] / GroupSize[0 ] > std::numeric_limits<uint32_t >::max () ||
55
+ GlobalSize[1 ] / GroupSize[1 ] > std::numeric_limits<uint32_t >::max () ||
56
+ GlobalSize[2 ] / GroupSize[2 ] > std::numeric_limits<uint32_t >::max ()) {
51
57
return UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE;
52
58
}
53
59
54
60
ol_kernel_launch_size_args_t LaunchArgs;
55
61
LaunchArgs.Dimensions = workDim;
56
- LaunchArgs.NumGroupsX = GlobalSize[0 ] / GroupSize[0 ];
57
- LaunchArgs.NumGroupsY = GlobalSize[1 ] / GroupSize[1 ];
58
- LaunchArgs.NumGroupsZ = GlobalSize[2 ] / GroupSize[2 ];
59
- LaunchArgs.GroupSizeX = GroupSize[0 ];
60
- LaunchArgs.GroupSizeY = GroupSize[1 ];
61
- LaunchArgs.GroupSizeZ = GroupSize[2 ];
62
+ LaunchArgs.NumGroups . x = GlobalSize[0 ] / GroupSize[0 ];
63
+ LaunchArgs.NumGroups . y = GlobalSize[1 ] / GroupSize[1 ];
64
+ LaunchArgs.NumGroups . z = GlobalSize[2 ] / GroupSize[2 ];
65
+ LaunchArgs.GroupSize . x = GroupSize[0 ];
66
+ LaunchArgs.GroupSize . y = GroupSize[1 ];
67
+ LaunchArgs.GroupSize . z = GroupSize[2 ];
62
68
LaunchArgs.DynSharedMemory = 0 ;
63
69
64
70
ol_event_handle_t EventOut;
0 commit comments