On 06/04/2016 04:18 AM, Francisco Jerez wrote:
Serge Martin <edb+m...@sigluy.net> writes:
From: Vedran Miletić <ved...@miletic.net>
Make sure that a struct argument did not get compiled into a pointer
type with the byval attribute. If we try to handle the pointer with
byval, we end up with the pointer size instead of the struct size.
Ugh, is that a bug in the code below? How are byval pointers supposed
to be handled here? Exactly as if the argument wasn't a pointer at all
by providing a copy of the pointed-to object as-is in the kernel input
buffer? In that case wouldn't the code below need to pass the correct
size of the pointed-to object as target/api size rather than the size of
the pointer?
Yes, byval+pointer should be handled as there is no pointer at all.
I have tried passing the correct size, but IIRC LLVM AMDGPU backend does
not generate correct asm for byval+pointer variant. The simple solution
is to fail with an assert here unless Clang generates code both Clover
and the backend can handle.
Regards,
Vedran
--
Vedran Miletić
vedran.miletic.net
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev