Expand description
SPIR-V Instrinics
This module is intended as a low level abstraction over SPIR-V instructions. These functions will typically map to a single instruction, and will perform no additional safety checks beyond type-checking.
Traits
Index into an array without bounds checking.
Functions
Result is true if all components of
vector
is true, otherwise result is
false.Blocks execution of all threads in a group until all memory accesses have been completed.
Blocks execution of all threads in a group until all memory accesses have been completed and all threads in the group have reached this call.
Result is true if any component of
vector
is true, otherwise result is
false.Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Perform the following steps atomically with respect to any other atomic
accesses within
SCOPE
to the same location:Atomically load through
ptr
using the given SEMANTICS
. All subparts of
the value that is loaded are read atomically with respect to all other
atomic accesses to it within SCOPE
.Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Atomically store through
ptr
using the given SEMANTICS
. All subparts of
value
are written atomically with respect to all other atomic accesses to
it within SCOPE
.Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Perform the following steps atomically with respect to any other atomic
accesses within Scope to the same location:
Wait for other invocations of this module to reach the current point
of execution.
Returns the partial derivative of
component
with respect to the window’s X
coordinate. Returns the same result as either ddx_fine
or
ddx_coarse
, selection of which one is dependent on external factors.Returns the partial derivative of
component
with respect to the window’s X
coordinate. Uses local differencing based on the value of component
for
the current fragment’s neighbors, and possibly, but not necessarily,
includes the value of component
for the current fragment. That is, over a
given area, the implementation can compute X derivatives in fewer unique
locations than would be allowed by ddx_fine
.Returns the partial derivative of
component
with respect to the window’s X
coordinate. Uses local differencing based on the value of component
for
the current fragment’s neighbors, and possibly, but not necessarily,
includes the value of component
for the current fragment. That is, over a
given area, the implementation can compute X derivatives in fewer unique
locations than would be allowed by ddx_fine
.Returns the partial derivative of
component
with respect to the window’s X
coordinate. Uses local differencing based on the value of component
for
the current fragment and its immediate neighbor(s).Returns the partial derivative of
component
with respect to the window’s X
coordinate. Uses local differencing based on the value of component
for
the current fragment and its immediate neighbor(s).Returns the partial derivative of
component
with respect to the window’s X
coordinate. Returns the same result as either ddx_fine
or
ddx_coarse
, selection of which one is dependent on external factors.Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Returns the same result as either ddy_fine
or
ddy_coarse
, selection of which one is dependent on external factors.Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Uses local differencing based on the value of component
for
the current fragment’s neighbors, and possibly, but not necessarily,
includes the value of component
for the current fragment. That is, over a
given area, the implementation can compute Y derivatives in fewer unique
locations than would be allowed by ddy_fine
.Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Uses local differencing based on the value of component
for
the current fragment’s neighbors, and possibly, but not necessarily,
includes the value of component
for the current fragment. That is, over a
given area, the implementation can compute Y derivatives in fewer unique
locations than would be allowed by ddy_fine
.Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Uses local differencing based on the value of component
for
the current fragment and its immediate neighbor(s).Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Uses local differencing based on the value of component
for
the current fragment and its immediate neighbor(s).Returns the partial derivative of
component
with respect to the window’s Y
coordinate. Returns the same result as either ddy_fine
or
ddy_coarse
, selection of which one is dependent on external factors.Demote fragment shader invocation to a helper invocation. Equivalvent to
discard()
in HLSL. Any stores to memory after this instruction are
suppressed and the fragment does not write outputs to the framebuffer.Blocks execution of all threads in a group until all device memory accesses have been completed.
Blocks execution of all threads in a group until all device memory accesses have been completed and all threads in the group have reached this call.
Emits the current values of all output variables to the current output
primitive. After execution, the values of all output variables
are undefined.
Emits the current values of all output variables to the current output
primitive. After execution, the values of all output variables
are undefined. Requires capability
Geometry
.Finish the current primitive and start a new one. No vertex is emitted.
Requires capability
Geometry
.Finish the current primitive and start a new one. No vertex is emitted.
Invoke a callable shader.
Returns the sum of the absolute values of
ddx_coarse
and ddy_coarse
as a single operation.Returns the sum of the absolute values of
ddx_coarse
and ddy_coarse
as a single operation.Ignores the current potential intersection, terminating the invocation that
executes it, and continues the ray traversal. This instruction is allowed
only in
any_hit
execution model.Returns
true
if the invocation is currently a helper invocation, otherwise
result is false
. An invocation is currently a helper invocation if it was
originally invoked as a helper invocation or if it has been demoted to a
helper invocation by demote_to_helper_invocation.Fragment-shader discard. Equivalvent to
discard()
from GLSLControl the order that memory accesses are observed.
Reports an intersection back to the traversal infrastructure.
Compute the maximum of two signed integers via a GLSL extended instruction.
Compute the minimum of two signed integers via a GLSL extended instruction.
Terminates the invocation that executes it, stops the ray traversal, accepts
the current hit, and invokes the
closest_hit
execution model
(if active). This instruction is allowed only in the any_hit
execution model.Compute the maximum of two unsigned integers via a GLSL extended instruction.
Compute the minimum of two unsigned integers via a GLSL extended instruction.
Extract a single, dynamically selected, component of a vector.
Make a copy of a vector, with a single, variably selected,
component modified.
Blocks execution of all threads in a group until all group shared accesses have been completed.
Blocks execution of all threads in a group until all group shared accesses have been completed and all threads in the group have reached this call.