diff options
Diffstat (limited to 'test_conformance/basic/test_vector_swizzle.cpp')
-rw-r--r-- | test_conformance/basic/test_vector_swizzle.cpp | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/test_conformance/basic/test_vector_swizzle.cpp b/test_conformance/basic/test_vector_swizzle.cpp index 5ab3ea4f..884bcf36 100644 --- a/test_conformance/basic/test_vector_swizzle.cpp +++ b/test_conformance/basic/test_vector_swizzle.cpp @@ -610,9 +610,6 @@ static int test_vectype(const char* type_name, cl_device_id device, cl_int error = CL_SUCCESS; int result = TEST_PASS; - clProgramWrapper program; - clKernelWrapper kernel; - std::string buildOptions{ "-DTYPE=" }; buildOptions += type_name; buildOptions += std::to_string(N); @@ -628,35 +625,50 @@ static int test_vectype(const char* type_name, cl_device_id device, makeReference<T, N, S>(reference); // XYZW swizzles: + { + clProgramWrapper program; + clKernelWrapper kernel; - 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"); + 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); + 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"); + { + 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); + 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; - 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"); + clProgramWrapper program; + clKernelWrapper kernel; - result |= test_vectype_case(value, reference, context, kernel, queue); + 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; |