Extended inline PTX to support multiple output and by-ref parameters. #760
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to MoFtZ/ILGPU.OptiX#2.
The current implementation of
CudaAsm
supports anEmit
function that accepts up to 10 parameters, with the first parameter allowed to be an output variable. Unfortunately, this does not support more complex scenarios likeoptixTrace
which has up to 44 argument, with up to 32 by-reference parameters.This PR introduces the new
EmitRef
function that accepts up to 44 parameters, and passes all parameters by-reference. Each parameter can be one ofInput<T>
,Output<T>
orRef<T>
, whereT
isstruct
(rather thanunmanaged
) in order to supportbool
.This should then allow the implementation of
optixTrace
.