PhantomData<T> should be DeviceCopy for all T since it is a ZST and no T will actually need to be copied.
UnsafeCell<T> is a ABI-transparent wrapper type which should be DeviceCopy for all T: DeviceCopy.
I may throw more into this PR later but these are just the first two things I stubbed my toe on trying to improve the soundness of my path tracer kernel.
PhantomData<T>
should beDeviceCopy
for allT
since it is a ZST and noT
will actually need to be copied.UnsafeCell<T>
is a ABI-transparent wrapper type which should beDeviceCopy
for allT: DeviceCopy
.I may throw more into this PR later but these are just the first two things I stubbed my toe on trying to improve the soundness of my path tracer kernel.
(this crate + ptx_builder is awesome BTW)