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

Reply via email to