Pass 'flag' variable through to clGetImageRequirementsInfoEXT (attempt 2)
Some checks failed
Presubmit / Build ubuntu-20.04 gl (push) Failing after 1s
Presubmit / Build ubuntu-20.04 aarch64 debug (push) Failing after 1s
Presubmit / Build ubuntu-20.04 arm (push) Failing after 1s
Presubmit / Check code format (push) Failing after 5m1s
Presubmit / Build macos-latest (push) Has been cancelled
Presubmit / Build windows-latest (push) Has been cancelled

Rebase of my previous clGetImageRequirementsInfoEXT flag=0 fix PR: PR1632

Pass 'flag' variable through to clGetImageRequirementsInfoEXT:

Almost all of the image_from_buffer cl_ext_image_requirements_info tests pass '0' as the 'flags' to clGetImageRequirementsInfoEXT.
Passing '0' as the flags is valid according to the spec, but since the tests are calling clGetImageRequirementsInfoEXT in a loop over a list of flags it doesn't seem intended that all the tests pass '0'.

Fixed CL_MEM_KERNEL_READ_AND_WRITE flag override:

The mem_flags override for CL_MEM_KERNEL_READ_AND_WRITE was incorrectly affecting subsequent iterations of the image_format loop.
Fixed by using a separate variable inside the loop.
This commit is contained in:
paulfradgley 2023-04-11 16:49:13 +01:00 committed by GitHub
parent 9772516c3f
commit 7420e22e1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -89,14 +89,14 @@ int image2d_from_buffer_positive(cl_device_id device, cl_context context,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -121,15 +121,15 @@ int image2d_from_buffer_positive(cl_device_id device, cl_context context,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
size_t row_pitch_alignment = 0;
size_t base_address_alignment = 0;
int get_error = get_image_requirement_alignment(
device, context, 0, &format, &image_desc,
device, context, flag, &format, &image_desc,
&row_pitch_alignment, nullptr, &base_address_alignment);
if (TEST_PASS != get_error)
{
@ -187,14 +187,14 @@ int memInfo_image_from_buffer_positive(cl_device_id device, cl_context context,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -205,15 +205,15 @@ int memInfo_image_from_buffer_positive(cl_device_id device, cl_context context,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
size_t row_pitch_alignment = 0;
size_t slice_pitch_alignment = 0;
int get_error = get_image_requirement_alignment(
device, context, 0, &format, &image_desc,
device, context, flag, &format, &image_desc,
&row_pitch_alignment, &slice_pitch_alignment, nullptr);
if (TEST_PASS != get_error)
{
@ -296,14 +296,14 @@ int imageInfo_image_from_buffer_positive(cl_device_id device,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -314,15 +314,15 @@ int imageInfo_image_from_buffer_positive(cl_device_id device,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
size_t row_pitch_alignment = 0;
size_t slice_pitch_alignment = 0;
int get_error = get_image_requirement_alignment(
device, context, 0, &format, &image_desc,
device, context, flag, &format, &image_desc,
&row_pitch_alignment, &slice_pitch_alignment, nullptr);
if (TEST_PASS != get_error)
{
@ -446,14 +446,14 @@ int image_from_buffer_alignment_negative(cl_device_id device,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -464,16 +464,16 @@ int image_from_buffer_alignment_negative(cl_device_id device,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
size_t row_pitch_alignment = 0;
size_t slice_pitch_alignment = 0;
size_t base_address_alignment = 0;
int get_error = get_image_requirement_alignment(
device, context, 0, &format, &image_desc,
device, context, flag, &format, &image_desc,
&row_pitch_alignment, &slice_pitch_alignment,
&base_address_alignment);
if (TEST_PASS != get_error)
@ -596,14 +596,14 @@ int image_from_small_buffer_negative(cl_device_id device, cl_context context,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -614,9 +614,9 @@ int image_from_small_buffer_negative(cl_device_id device, cl_context context,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
/* Invalid buffer size */
cl_int err;
@ -704,14 +704,14 @@ int image_from_buffer_fill_positive(cl_device_id device, cl_context context,
CL_MEM_READ_WRITE,
CL_MEM_KERNEL_READ_AND_WRITE };
for (auto flag : flagTypes)
for (auto flagType : flagTypes)
{
for (auto imageType : imageTypes)
{
/* Get the list of supported image formats */
std::vector<cl_image_format> formatList;
if (TEST_PASS
!= get_format_list(context, imageType, formatList, flag)
!= get_format_list(context, imageType, formatList, flagType)
|| formatList.size() == 0)
{
test_fail("Failure to get supported formats list\n");
@ -728,15 +728,15 @@ int image_from_buffer_fill_positive(cl_device_id device, cl_context context,
cl_image_desc image_desc = { 0 };
image_desc_init(&image_desc, imageType);
flag = (flag == CL_MEM_KERNEL_READ_AND_WRITE)
cl_mem_flags flag = (flagType == CL_MEM_KERNEL_READ_AND_WRITE)
? CL_MEM_READ_WRITE
: flag;
: flagType;
size_t row_pitch_alignment = 0;
size_t slice_pitch_alignment = 0;
int get_error = get_image_requirement_alignment(
device, context, 0, &format, &image_desc,
device, context, flag, &format, &image_desc,
&row_pitch_alignment, &slice_pitch_alignment, nullptr);
if (TEST_PASS != get_error)
{