Slang
Docs
Slang Standard Modules Reference
Table of Contents
Slang Standard Library Reference
Interfaces
IArithmetic
add
div
init
mod
mul
neg
sub
IArithmeticAtomicable
IArray
getCount
subscript
IAtomicable
IBitAtomicable
IBufferDataLayout
IComparable
equals
lessThan
lessThanOrEquals
IDefaultInitializable
init
IDiffTensorWrapper
loadOnce_backward
loadOnce_forward
load_backward
load_forward
storeOnce_backward
storeOnce_forward
store_backward
store_forward
IDifferentiable
dadd
dmul
dzero
IDifferentiableFunc
operator()
IDifferentiableMutatingFunc
operator()
IDifferentiablePtrType
IFloat
add
div
init
mod
mul
neg
scale
sub
toFloat
IFunc
operator()
IInteger
init
toInt
toInt64
toUInt
toUInt64
ILogical
and
bitAnd
bitNot
bitOr
bitXor
init
not
or
shl
shr
IMutatingFunc
operator()
IRWArray
subscript
IRangedValue
maxValue
minValue
__BuiltinArithmeticType
__BuiltinFloatingPointType
getPi
__BuiltinIntegerType
__BuiltinLogicalType
__ITextureShape
dimensions
flavor
planeDimensions
__ITextureShape1D2D3D
Types
Buffer types
AppendStructuredBuffer
Append
GetDimensions
ByteAddressBuffer
GetDimensions
Load
Load2
Load2Aligned
Load3
Load3Aligned
Load4
Load4Aligned
LoadAligned
ConsumeStructuredBuffer
Consume
GetDimensions
RWByteAddressBuffer
GetDimensions
InterlockedAdd
InterlockedAdd64
InterlockedAddF16
InterlockedAddF16Emulated
InterlockedAddF32
InterlockedAddF64
InterlockedAddI64
InterlockedAddU64
InterlockedAnd
InterlockedAnd64
InterlockedAndU64
InterlockedCompareExchange
InterlockedCompareExchange64
InterlockedCompareExchangeFloatBitwise
InterlockedCompareExchangeU64
InterlockedCompareStore
InterlockedCompareStore64
InterlockedCompareStoreFloatBitwise
InterlockedExchange
InterlockedExchange64
InterlockedExchangeFloat
InterlockedExchangeU64
InterlockedMax
InterlockedMax64
InterlockedMaxU64
InterlockedMin
InterlockedMin64
InterlockedMinU64
InterlockedOr
InterlockedOr64
InterlockedOrU64
InterlockedXor
InterlockedXor64
InterlockedXorU64
Load
Load2
Load2Aligned
Load3
Load3Aligned
Load4
Load4Aligned
LoadAligned
Store
Store2
Store2Aligned
Store3
Store3Aligned
Store4
Store4Aligned
StoreAligned
_NvInterlockedAddFp16x2
RWStructuredBuffer
DecrementCounter
GetDimensions
IncrementCounter
Load
subscript
RasterizerOrderedByteAddressBuffer
GetDimensions
InterlockedAdd
InterlockedAnd
InterlockedCompareExchange
InterlockedCompareStore
InterlockedExchange
InterlockedMax
InterlockedMin
InterlockedOr
InterlockedXor
Load
Load2
Load2Aligned
Load3
Load3Aligned
Load4
Load4Aligned
LoadAligned
Store
Store2
Store2Aligned
Store3
Store3Aligned
Store4
Store4Aligned
StoreAligned
RasterizerOrderedStructuredBuffer
DecrementCounter
GetDimensions
IncrementCounter
Load
subscript
StructuredBuffer
GetDimensions
Load
subscript
Math types
matrix
Differential
T
add
dadd
div
dmul
dzero
equals
getCount
init
lessThan
lessThanOrEquals
mod
mul
neg
scale
sub
toFloat
vector
Differential
Element
add
and
bitAnd
bitNot
bitOr
bitXor
dadd
div
dmul
dzero
equals
getCount
init
lessThan
lessThanOrEquals
mod
mul
neg
not
or
scale
shl
shr
sub
toFloat
toInt
toInt64
toUInt
toUInt64
Miscelaneous types
DefaultDataLayout
MemoryOrder
NativeString
getBuffer
getLength
init
length
ScalarDataLayout
SideEffectBehavior
Std140DataLayout
Std430DataLayout
__Shape1D
dimensions
flavor
planeDimensions
__Shape2D
dimensions
flavor
planeDimensions
__Shape3D
dimensions
flavor
planeDimensions
__ShapeBuffer
dimensions
flavor
planeDimensions
__ShapeCube
dimensions
flavor
planeDimensions
string
Ray-tracing
BuiltInTriangleIntersectionAttributes
barycentrics
CANDIDATE_TYPE
COMMITTED_STATUS
HitObject
GetAttributes
GetCurrentTime
GetGeometryIndex
GetHitKind
GetInstanceID
GetInstanceIndex
GetObjectRayDirection
GetObjectRayOrigin
GetObjectToWorld
GetPrimitiveIndex
GetRayDesc
GetShaderRecordBufferHandle
GetShaderTableIndex
GetWorldToObject
Invoke
IsHit
IsMiss
IsNop
LoadLocalRootTableConstant
MakeHit
MakeMiss
MakeMotionHit
MakeMotionMiss
MakeNop
TraceMotionRay
TraceRay
init
RAY_FLAG
RayDesc
Direction
Origin
TMax
TMin
RayQuery
Abort
CandidateGeometryIndex
CandidateGetIntersectionTriangleVertexPositions
CandidateInstanceContributionToHitGroupIndex
CandidateInstanceID
CandidateInstanceIndex
CandidateObjectRayDirection
CandidateObjectRayOrigin
CandidateObjectToWorld3x4
CandidateObjectToWorld4x3
CandidatePrimitiveIndex
CandidateProceduralPrimitiveNonOpaque
CandidateRayBarycentrics
CandidateRayFrontFace
CandidateRayGeometryIndex
CandidateRayInstanceCustomIndex
CandidateRayInstanceId
CandidateRayInstanceShaderBindingTableRecordOffset
CandidateRayObjectRayDirection
CandidateRayObjectRayOrigin
CandidateRayObjectToWorld
CandidateRayPrimitiveIndex
CandidateRayWorldToObject
CandidateTriangleBarycentrics
CandidateTriangleFrontFace
CandidateTriangleRayT
CandidateType
CandidateWorldToObject3x4
CandidateWorldToObject4x3
CommitNonOpaqueTriangleHit
CommitProceduralPrimitiveHit
CommittedGeometryIndex
CommittedGetIntersectionTriangleVertexPositions
CommittedInstanceContributionToHitGroupIndex
CommittedInstanceID
CommittedInstanceIndex
CommittedObjectRayDirection
CommittedObjectRayOrigin
CommittedObjectToWorld3x4
CommittedObjectToWorld4x3
CommittedPrimitiveIndex
CommittedRayBarycentrics
CommittedRayFrontFace
CommittedRayGeometryIndex
CommittedRayInstanceCustomIndex
CommittedRayInstanceId
CommittedRayInstanceShaderBindingTableRecordOffset
CommittedRayObjectRayDirection
CommittedRayObjectRayOrigin
CommittedRayObjectToWorld
CommittedRayPrimitiveIndex
CommittedRayT
CommittedRayWorldToObject
CommittedStatus
CommittedTriangleBarycentrics
CommittedTriangleFrontFace
CommittedWorldToObject3x4
CommittedWorldToObject4x3
Proceed
RayFlags
RayTMin
TraceRayInline
WorldRayDirection
WorldRayOrigin
init
RaytracingAccelerationStructure
Sampler types
SamplerComparisonState
SamplerState
Scalar types
float16_t
float32_t
float64_t
int32_t
size_t
ssize_t
uint32_t
usize_t
Stage IO types
InputPatch
subscript
LineStream
Append
RestartStrip
OutputIndices
subscript
OutputPatch
subscript
OutputPrimitives
subscript
OutputVertices
_metalSetVertex
_setVertex
subscript
PointStream
Append
RestartStrip
SubpassInput
SubpassInputMS
TextureFootprint
_isSingleLevel
isSingleLevel
TextureFootprint2D
TextureFootprint3D
TriangleStream
Append
RestartStrip
Texture types
Buffer
FeedbackTexture2D
FeedbackTexture2DArray
RWBuffer
RWSampler1D
RWSampler1DArray
RWSampler2D
RWSampler2DArray
RWSampler2DMS
RWSampler2DMSArray
RWSampler3D
RWTexture1D
RWTexture1DArray
RWTexture2D
RWTexture2DArray
RWTexture2DMS
RWTexture2DMSArray
RWTexture3D
RasterizerOrderedBuffer
RasterizerOrderedSampler1D
RasterizerOrderedSampler1DArray
RasterizerOrderedSampler2D
RasterizerOrderedSampler2DArray
RasterizerOrderedSampler3D
RasterizerOrderedTexture1D
RasterizerOrderedTexture1DArray
RasterizerOrderedTexture2D
RasterizerOrderedTexture2DArray
RasterizerOrderedTexture3D
SAMPLER_FEEDBACK_MIN_MIP
SAMPLER_FEEDBACK_MIP_REGION_USED
Sampler1D
Sampler1DArray
Sampler2D
Sampler2DArray
Sampler2DMS
Sampler2DMSArray
Sampler3D
SamplerCube
SamplerCubeArray
Texture1D
Texture1DArray
Texture2D
Texture2DArray
Texture2DMS
Texture2DMSArray
Texture3D
TextureBuffer
TextureCube
TextureCubeArray
WSampler1D
WSampler1DArray
WSampler2D
WSampler2DArray
WSampler3D
WTexture1D
WTexture1DArray
WTexture2D
WTexture2DArray
WTexture3D
_Texture
CalculateLevelOfDetail
CalculateLevelOfDetailUnclamped
Coords
Footprint
FootprintGranularity
Gather
GatherAlpha
GatherBlue
GatherCmp
GatherCmpAlpha
GatherCmpBlue
GatherCmpGreen
GatherCmpRed
GatherGreen
GatherRed
GetDimensions
GetSamplePosition
InterlockedAddF32
Load
Sample
SampleBias
SampleCmp
SampleCmpLevelZero
SampleGrad
SampleLevel
Store
TextureCoord
WriteSamplerFeedback
WriteSamplerFeedbackBias
WriteSamplerFeedbackGrad
WriteSamplerFeedbackLevel
queryFootprintCoarse
queryFootprintCoarseBias
queryFootprintCoarseBiasClamp
queryFootprintCoarseClamp
queryFootprintCoarseGrad
queryFootprintCoarseGradClamp
queryFootprintCoarseLevel
queryFootprintFine
queryFootprintFineBias
queryFootprintFineBiasClamp
queryFootprintFineClamp
queryFootprintFineGrad
queryFootprintFineGradClamp
queryFootprintFineLevel
subscript
Array
Differential
dadd
dmul
dzero
getCount
Atomic
add
and
compareExchange
decrement
exchange
increment
load
max
min
or
store
sub
xor
AtomicAdd
diff
loadOnce_backward
loadOnce_forward
load_backward
load_forward
storeOnce_backward
storeOnce_forward
store_backward
store_forward
ConstantBuffer
DiffTensorView
diff
dims
init
load
loadOnce
primal
size
store
storeOnce
stride
subscript
DifferentialPair
Differential
DifferentialElementType
d
dadd
dmul
dzero
getDifferential
getPrimal
init
p
v
DifferentialPtrPair
Differential
DifferentialElementType
d
init
p
v
NullDifferential
Differential
dadd
dmul
dummy
dzero
Optional
hasValue
init
value
ParameterBlock
Ptr
init
subscript
String
getLength
init
length
TensorView
InterlockedAdd
InterlockedAnd
InterlockedCompareExchange
InterlockedExchange
InterlockedMax
InterlockedMin
InterlockedOr
InterlockedXor
data_ptr
data_ptr_at
dims
init
load
size
store
stride
subscript
TorchTensor
alloc
data_ptr
dims
emptyLike
fillValue
fillZero
getView
size
stride
zerosLike
Tuple
Differential
dadd
dmul
dzero
equals
init
lessThan
lessThanOrEquals
_AttributeTargets
Attributes
AutoPyBindCUDA
BackwardDerivative
BackwardDerivativeOf
BackwardDifferentiable
COM
CUDADeviceExport
CUDAHost
CUDAKernel
CudaDeviceExport
CudaHost
CudaKernel
DerivativeGroupLinear
DerivativeGroupQuad
DerivativeMember
Differentiable
DllExport
DllImport
Flags
ForceInline
ForceUnroll
ForwardDerivative
ForwardDerivativeOf
ForwardDifferentiable
KnownBuiltin
MaxIters
NoDiffThis
NonUniformReturn
NumThreads
OverloadRank
PreferCheckpoint
PreferRecompute
PrimalSubstitute
PrimalSubstituteOf
PyExport
RequirePrelude
Shader
SpecializationConstant
Specialize
TorchEntryPoint
TreatAsDifferentiable
UnscopedEnum
WaveSize
allow
allow_uav_condition
anyValueSize
branch
builtin
call
constref
deprecated
disable_array_flattening
domain
earlydepthstencil
fastopt
flatten
forcecase
format
gl_binding
instance
loop
maxtessfactor
maxvertexcount
mutating
noRefInline
noinline
nonmutating
numthreads
open
outputcontrolpoints
outputtopology
partitioning
patchconstantfunc
payload
push_constant
require
sealed
shader
shader_record
spv_target_env_1_3
unroll
vk_binding
vk_constant_id
vk_image_format
vk_location
vk_push_constant
vk_shader_record
vk_specialization_constant
vk_spirv_instruction
Global Declarations
Atomic functions
InterlockedAdd
InterlockedAnd
InterlockedCompareExchange
InterlockedCompareExchangeFloatBitwise
InterlockedCompareStore
InterlockedCompareStoreFloatBitwise
InterlockedExchange
InterlockedMax
InterlockedMin
InterlockedOr
InterlockedXor
Memory and control barriers
AllMemoryBarrier
AllMemoryBarrierWithGroupSync
DeviceMemoryBarrier
DeviceMemoryBarrierWithGroupSync
GroupMemoryBarrier
GroupMemoryBarrierWithGroupSync
Bit operation functions
countbits
firstbithigh
firstbitlow
reversebits
Conversion functions
asdouble
asfloat
asfloat16
asint
asint16
asuint
asuint16
bit_cast
f16tof32
f32tof16
f32tof16_
reinterpret
Derivative functions
ddx
ddx_coarse
ddx_fine
ddy
ddy_coarse
ddy_fine
fwidth
Math functions
abs
acos
acosh
asin
asinh
atan
atan2
atanh
ceil
clamp
copysign
copysign_double
copysign_float
copysign_half
cos
cosh
cospi
cross
degrees
determinant
distance
divide
dot
dot2add
dot4add_i8packed
dot4add_u8packed
dst
exp
exp10
exp2
fabs
faceforward
fdim
floor
fma
fmax
fmax3
fmedian3
fmin
fmin3
fmod
frac
fract
frexp
isfinite
isinf
isnan
ldexp
length
lerp
lit
log
log10
log2
mad
max
max3
median3
min
min3
modf
msad4
mul
noise
normalize
pow
powr
radians
rcp
reflect
refract
rint
round
rsqrt
saturate
sign
sin
sincos
sinh
sinpi
smoothstep
sqrt
step
tan
tanh
tanpi
transpose
trunc
Mesh shading
DispatchMesh
SetMeshOutputCounts
Ray-tracing
AcceptHitAndEndSearch
CANDIDATE_NON_OPAQUE_TRIANGLE
CANDIDATE_PROCEDURAL_PRIMITIVE
COMMITTED_NOTHING
COMMITTED_PROCEDURAL_PRIMITIVE_HIT
COMMITTED_TRIANGLE_HIT
CallShader
DispatchRaysDimensions
DispatchRaysIndex
GeometryIndex
HIT_KIND_TRIANGLE_BACK_FACE
HIT_KIND_TRIANGLE_FRONT_FACE
HitKind
HitTriangleVertexPosition
IgnoreHit
InstanceID
InstanceIndex
ObjectRayDirection
ObjectRayOrigin
ObjectToWorld
ObjectToWorld3x4
ObjectToWorld4x3
PrimitiveIndex
RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH
RAY_FLAG_CULL_BACK_FACING_TRIANGLES
RAY_FLAG_CULL_FRONT_FACING_TRIANGLES
RAY_FLAG_CULL_NON_OPAQUE
RAY_FLAG_CULL_OPAQUE
RAY_FLAG_FORCE_NON_OPAQUE
RAY_FLAG_FORCE_OPAQUE
RAY_FLAG_NONE
RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES
RAY_FLAG_SKIP_TRIANGLES
RayCurrentTime
RayFlags
RayTCurrent
RayTMin
ReportHit
ReportHitOptix
TraceMotionRay
TraceRay
WorldRayDirection
WorldRayOrigin
WorldToObject
WorldToObject3x4
WorldToObject4x3
Tessellation functions
Process2DQuadTessFactorsAvg
Process2DQuadTessFactorsMax
Process2DQuadTessFactorsMin
ProcessIsolineTessFactors
ProcessQuadTessFactorsAvg
ProcessQuadTessFactorsMax
ProcessQuadTessFactorsMin
ProcessTriTessFactorsAvg
ProcessTriTessFactorsMax
ProcessTriTessFactorsMin
Wave and quad functions
QuadReadAcrossDiagonal
QuadReadAcrossX
QuadReadAcrossY
QuadReadLaneAt
WaveActiveAllEqual
WaveActiveAllTrue
WaveActiveAnyTrue
WaveActiveBallot
WaveActiveBitAnd
WaveActiveBitOr
WaveActiveBitXor
WaveActiveCountBits
WaveActiveMax
WaveActiveMin
WaveActiveProduct
WaveActiveSum
WaveBroadcastLaneAt
WaveGetActiveMulti
WaveGetConvergedMulti
WaveGetLaneCount
WaveGetLaneIndex
WaveIsFirstLane
WaveMatch
WaveMultiPrefixBitAnd
WaveMultiPrefixBitOr
WaveMultiPrefixBitXor
WaveMultiPrefixCountBits
WaveMultiPrefixProduct
WaveMultiPrefixSum
WavePrefixCountBits
WavePrefixProduct
WavePrefixSum
WaveReadLaneAt
WaveReadLaneFirst
WaveShuffle
_WaveCountBits
CheckAccessFullyMapped
D3DCOLORtoUBYTE4
EvaluateAttributeAtCentroid
EvaluateAttributeAtSample
EvaluateAttributeSnapped
GetAttributeAtVertex
GetRenderTargetSampleCount
GetRenderTargetSamplePosition
IsHelperLane
NonUniformResourceIndex
ReorderThread
WorkgroupSize
abort
all
any
clip
concat
createDynamicObject
cudaBlockDim
cudaBlockIdx
cudaThreadIdx
debugBreak
detach
diffPair
getRealtimeClock
getRealtimeClockLow
getStringHash
isDifferentialNull
makeArrayFromElement
makeTuple
nextafter
printf
select
static_assert
syncTorchCudaStream
unmodified
unused
updateDiff
updatePair
updatePrimal
workgroupUniformLoad
RayDesc.Origin
Description
Starting point of the ray in world space.
Signature
vector
<
float
, 3>
RayDesc
.
Origin
;