mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-25 16:29:03 +00:00
Fix memory leaks (#1378)
* Fix memory leaks Fixed memory leaks in: buffers, basic, and vectors * Formatting fixes Co-authored-by: oramirez <oramirez@qti.qualcomm.com>
This commit is contained in:
committed by
GitHub
parent
51c6d97d2f
commit
06415f8b79
@@ -610,9 +610,6 @@ static int test_vectype(const char* type_name, cl_device_id device,
|
|||||||
cl_int error = CL_SUCCESS;
|
cl_int error = CL_SUCCESS;
|
||||||
int result = TEST_PASS;
|
int result = TEST_PASS;
|
||||||
|
|
||||||
clProgramWrapper program;
|
|
||||||
clKernelWrapper kernel;
|
|
||||||
|
|
||||||
std::string buildOptions{ "-DTYPE=" };
|
std::string buildOptions{ "-DTYPE=" };
|
||||||
buildOptions += type_name;
|
buildOptions += type_name;
|
||||||
buildOptions += std::to_string(N);
|
buildOptions += std::to_string(N);
|
||||||
@@ -628,37 +625,52 @@ static int test_vectype(const char* type_name, cl_device_id device,
|
|||||||
makeReference<T, N, S>(reference);
|
makeReference<T, N, S>(reference);
|
||||||
|
|
||||||
// XYZW swizzles:
|
// XYZW swizzles:
|
||||||
|
|
||||||
const char* xyzw_source = TestInfo<N>::kernel_source_xyzw;
|
|
||||||
error = create_single_kernel_helper(
|
|
||||||
context, &program, &kernel, 1, &xyzw_source, "test_vector_swizzle_xyzw",
|
|
||||||
buildOptions.c_str());
|
|
||||||
test_error(error, "Unable to create xyzw test kernel");
|
|
||||||
|
|
||||||
result |= test_vectype_case(value, reference, context, kernel, queue);
|
|
||||||
|
|
||||||
// sN swizzles:
|
|
||||||
const char* sN_source = TestInfo<N>::kernel_source_sN;
|
|
||||||
error = create_single_kernel_helper(context, &program, &kernel, 1,
|
|
||||||
&sN_source, "test_vector_swizzle_sN",
|
|
||||||
buildOptions.c_str());
|
|
||||||
test_error(error, "Unable to create sN test kernel");
|
|
||||||
|
|
||||||
result |= test_vectype_case(value, reference, context, kernel, queue);
|
|
||||||
|
|
||||||
// RGBA swizzles for OpenCL 3.0 and newer:
|
|
||||||
const Version device_version = get_device_cl_version(device);
|
|
||||||
if (device_version >= Version(3, 0))
|
|
||||||
{
|
{
|
||||||
const char* rgba_source = TestInfo<N>::kernel_source_rgba;
|
clProgramWrapper program;
|
||||||
|
clKernelWrapper kernel;
|
||||||
|
|
||||||
|
const char* xyzw_source = TestInfo<N>::kernel_source_xyzw;
|
||||||
error = create_single_kernel_helper(
|
error = create_single_kernel_helper(
|
||||||
context, &program, &kernel, 1, &rgba_source,
|
context, &program, &kernel, 1, &xyzw_source,
|
||||||
"test_vector_swizzle_rgba", buildOptions.c_str());
|
"test_vector_swizzle_xyzw", buildOptions.c_str());
|
||||||
test_error(error, "Unable to create rgba test kernel");
|
test_error(error, "Unable to create xyzw test kernel");
|
||||||
|
|
||||||
result |= test_vectype_case(value, reference, context, kernel, queue);
|
result |= test_vectype_case(value, reference, context, kernel, queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sN swizzles:
|
||||||
|
{
|
||||||
|
clProgramWrapper program;
|
||||||
|
clKernelWrapper kernel;
|
||||||
|
|
||||||
|
const char* sN_source = TestInfo<N>::kernel_source_sN;
|
||||||
|
error = create_single_kernel_helper(
|
||||||
|
context, &program, &kernel, 1, &sN_source, "test_vector_swizzle_sN",
|
||||||
|
buildOptions.c_str());
|
||||||
|
test_error(error, "Unable to create sN test kernel");
|
||||||
|
|
||||||
|
result |= test_vectype_case(value, reference, context, kernel, queue);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RGBA swizzles for OpenCL 3.0 and newer:
|
||||||
|
{
|
||||||
|
clProgramWrapper program;
|
||||||
|
clKernelWrapper kernel;
|
||||||
|
|
||||||
|
const Version device_version = get_device_cl_version(device);
|
||||||
|
if (device_version >= Version(3, 0))
|
||||||
|
{
|
||||||
|
const char* rgba_source = TestInfo<N>::kernel_source_rgba;
|
||||||
|
error = create_single_kernel_helper(
|
||||||
|
context, &program, &kernel, 1, &rgba_source,
|
||||||
|
"test_vector_swizzle_rgba", buildOptions.c_str());
|
||||||
|
test_error(error, "Unable to create rgba test kernel");
|
||||||
|
|
||||||
|
result |=
|
||||||
|
test_vectype_case(value, reference, context, kernel, queue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -703,8 +703,6 @@ int test_buffer_fill( cl_device_id deviceID, cl_context context, cl_command_queu
|
|||||||
int test_buffer_fill_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements )
|
int test_buffer_fill_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements )
|
||||||
{
|
{
|
||||||
TestStruct pattern;
|
TestStruct pattern;
|
||||||
clProgramWrapper program;
|
|
||||||
clKernelWrapper kernel;
|
|
||||||
size_t ptrSize = sizeof( TestStruct );
|
size_t ptrSize = sizeof( TestStruct );
|
||||||
size_t global_work_size[3];
|
size_t global_work_size[3];
|
||||||
int n, err;
|
int n, err;
|
||||||
@@ -720,6 +718,8 @@ int test_buffer_fill_struct( cl_device_id deviceID, cl_context context, cl_comma
|
|||||||
|
|
||||||
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
||||||
{
|
{
|
||||||
|
clProgramWrapper program;
|
||||||
|
clKernelWrapper kernel;
|
||||||
log_info("Testing with cl_mem_flags: %s\n",
|
log_info("Testing with cl_mem_flags: %s\n",
|
||||||
flag_set_names[src_flag_id]);
|
flag_set_names[src_flag_id]);
|
||||||
|
|
||||||
|
|||||||
@@ -763,7 +763,6 @@ int test_buffer_read_async( cl_device_id deviceID, cl_context context, cl_comman
|
|||||||
{
|
{
|
||||||
clProgramWrapper program[5];
|
clProgramWrapper program[5];
|
||||||
clKernelWrapper kernel[5];
|
clKernelWrapper kernel[5];
|
||||||
clEventWrapper event;
|
|
||||||
void *outptr[5];
|
void *outptr[5];
|
||||||
void *inptr[5];
|
void *inptr[5];
|
||||||
size_t global_work_size[3];
|
size_t global_work_size[3];
|
||||||
@@ -805,6 +804,7 @@ int test_buffer_read_async( cl_device_id deviceID, cl_context context, cl_comman
|
|||||||
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
||||||
{
|
{
|
||||||
clMemWrapper buffer;
|
clMemWrapper buffer;
|
||||||
|
clEventWrapper event;
|
||||||
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
|
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
|
||||||
if ( ! outptr[i] ){
|
if ( ! outptr[i] ){
|
||||||
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );
|
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );
|
||||||
@@ -900,7 +900,6 @@ int test_buffer_read_array_barrier( cl_device_id deviceID, cl_context context, c
|
|||||||
{
|
{
|
||||||
clProgramWrapper program[5];
|
clProgramWrapper program[5];
|
||||||
clKernelWrapper kernel[5];
|
clKernelWrapper kernel[5];
|
||||||
clEventWrapper event;
|
|
||||||
void *outptr[5], *inptr[5];
|
void *outptr[5], *inptr[5];
|
||||||
size_t global_work_size[3];
|
size_t global_work_size[3];
|
||||||
cl_int err;
|
cl_int err;
|
||||||
@@ -941,6 +940,7 @@ int test_buffer_read_array_barrier( cl_device_id deviceID, cl_context context, c
|
|||||||
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
|
||||||
{
|
{
|
||||||
clMemWrapper buffer;
|
clMemWrapper buffer;
|
||||||
|
clEventWrapper event;
|
||||||
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
|
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
|
||||||
if ( ! outptr[i] ){
|
if ( ! outptr[i] ){
|
||||||
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );
|
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );
|
||||||
|
|||||||
@@ -172,6 +172,8 @@ int test_step_internal(cl_device_id deviceID, cl_context context,
|
|||||||
destroyClState(pClState);
|
destroyClState(pClState);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clStateDestroyProgramAndKernel(pClState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user