hal/metal/msl/tests.lisp
A 64-bit field masks with a 64-bit literal, a 32-bit one with a 32-bit literal, and a field reaching the top bit needs no mask.
(name options &body body)Convert one scalar float or unsigned value to a 32-bit unsigned integer.
Load one exact two-dimensional texel at an unsigned integer coordinate.
Select and reorder vector components by a designator such as :XYZ or :RGB.
Addition over compatible quantities.
The non-negative remainder of integer division.
Division of two represented quantities.
Convert one scalar float or unsigned value to a 32-bit float.
(name parameters &body body)Define a reusable typed shader expression with ordinary source syntax. The body is parsed at each call site, so argument types and quantity meanings flow through the same operator protocol as handwritten shader expressions. LET* is lexical inside the function. The definition macro records source; its body does not…
(name &body fields)Test whether two compatible scalars are equal.
Convert one scalar float or unsigned value to a 64-bit unsigned integer.
Test whether one compatible scalar is less than another.
Read one indexed element of the task payload shared with a mesh shader.
(name specification)(object)(name objects name-function)An open document and the context it was opened in.
(specification &optional (target *metal-4-target*))PROPERTY: VALUES; -- the property a keyword, the values a list written space-separated.
(name options body)(binding)(specification)(target specification)Lower SPECIFICATION for TARGET without changing its source graph. TARGET participates in ordinary CLOS dispatch so each backend can own its structured product and source provenance. #JDLQPN
Logical conjunction of tests and raw truth values.
One local declaration retaining its semantic shader binding.
One output assignment retaining its semantic shader assignment.
(operator context expression)Lower EXPRESSION into CONTEXT's target product and return its value. Target context deliberately precedes operator identity in method selection: an operator implemented only for one backend must not capture another backend's context before its source-located unsupported-operation method.
The shared camera graph uses Vulkan framebuffer orientation. Metal's target boundary owns the one required clip-space Y conversion.