clover/spirv: Properly size 3-component vector args
This resolves clover returning `CL_INVALID_ARG_SIZE` whenever the OpenCL
CTS called `clSetKernelArg()` for 3-component vectors.
Fixes: 2147386505
("clover/spirv: Add functions for parsing arguments, linking programs, etc.")
v2: Remove “api/clsetkernelarg/set kernel argument for cl_int3” from the
expected fails for llvmpipe
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10256>
This commit is contained in:
parent
f69d1c1c56
commit
a6c26a6ad9
|
@ -6,7 +6,6 @@ api/clenqueuemigratememobjects: skip
|
|||
api/clgetextensionfunctionaddressforplatform: skip
|
||||
api/clgetkernelarginfo: skip
|
||||
api/cllinkprogram: skip
|
||||
api/clsetkernelarg/set kernel argument for cl_int3: fail
|
||||
interop/egl_khr_cl_event2: skip
|
||||
program/build/include-directories: fail
|
||||
program/build/math-intrinsics: fail
|
||||
|
|
|
@ -331,9 +331,8 @@ namespace {
|
|||
|
||||
const auto elem_size = types_iter->second.size;
|
||||
const auto elem_nbs = get<uint32_t>(inst, 3);
|
||||
const auto size = elem_size * elem_nbs;
|
||||
const auto align = elem_size * util_next_power_of_two(elem_nbs);
|
||||
types[id] = { module::argument::scalar, size, size, align,
|
||||
const auto size = elem_size * (elem_nbs != 3 ? elem_nbs : 4);
|
||||
types[id] = { module::argument::scalar, size, size, size,
|
||||
module::argument::zero_ext };
|
||||
types[id].info.address_qualifier = CL_KERNEL_ARG_ADDRESS_PRIVATE;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue