mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-25 16:29:03 +00:00
Fix interger overflow for work-group size calculation (#2455)
This commit is contained in:
@@ -476,7 +476,7 @@ struct TestWorkItemFnsOutOfRange
|
|||||||
maxWorkItemSizes[2] };
|
maxWorkItemSizes[2] };
|
||||||
// check if maximum work group size for current dimention is not
|
// check if maximum work group size for current dimention is not
|
||||||
// exceeded
|
// exceeded
|
||||||
cl_uint work_group_size = max_workgroup_size + 1;
|
size_t work_group_size = max_workgroup_size + 1;
|
||||||
while (max_workgroup_size < work_group_size && work_group_size != 1)
|
while (max_workgroup_size < work_group_size && work_group_size != 1)
|
||||||
{
|
{
|
||||||
work_group_size = 1;
|
work_group_size = 1;
|
||||||
@@ -492,9 +492,9 @@ struct TestWorkItemFnsOutOfRange
|
|||||||
|
|
||||||
// compute max number of work groups based on buffer size and max
|
// compute max number of work groups based on buffer size and max
|
||||||
// group size
|
// group size
|
||||||
cl_uint max_work_groups = testData.size() / work_group_size;
|
size_t max_work_groups = testData.size() / work_group_size;
|
||||||
// take into account number of dimentions
|
// take into account number of dimentions
|
||||||
cl_uint work_groups_per_dim =
|
size_t work_groups_per_dim =
|
||||||
std::max(1, (int)pow(max_work_groups, 1.f / dim));
|
std::max(1, (int)pow(max_work_groups, 1.f / dim));
|
||||||
|
|
||||||
for (size_t j = 0; j < dim; j++)
|
for (size_t j = 0; j < dim; j++)
|
||||||
|
|||||||
Reference in New Issue
Block a user