[SYCL][E2E] Fix test relating to interoperability between SYCL Bindless Images and DX11 texture (#22137)
Change the image descriptor used for the SYCL image in the
`read_write_unsampled.cpp` test to always be 2-dimensional in order to
match the dimensionality of the texture used in DX11. The test was
previously using images of dimensionality 1, 2 or 3 to access the memory
of the 2D texture which may be undefined behavior. The iteration space,
in other words the range of the kernel, continues to be 1, 2, or 3
dimensional but we do the conversion in the SYCL kernel itself to get a
couple of coordinates (x,y) that we can use to index into the image from
either a single number for a 1D iteration space, 2 numbers for a 2D
iteration space or 3 numbers for a 3D iteration space. The conversion
is:
x -> (x, 0) for 1D iteration space
(x, y) -> (x, y) for 2D iteration space
(x, y, z) -> (x, dim1 * z + y) for a 3D iteration space with dimension
sizes dim0, dim1 and dim2.
Closes: #20384
Closes: #21159