luv

Workshop wiki

probe.lisp

hal/metal/probe.lisp

system luv · 5 definitions · on GitHub

The smallest real Metal object proof through the Objective-C boundary.

in-package#:luv.metal
eval-when
:compile-toplevel:load-toplevel:execute
cffi:define-foreign-librarymetal-framework
:darwin
:framework"Metal"
cffi:define-foreign-librarymetal-fx-framework
:darwin
:framework"MetalFX"
cffi:use-foreign-librarymetal-framework
cffi:use-foreign-librarymetal-fx-framework
cffi:defcfun
"MTLCreateSystemDefaultDevice"%make-system-default-device:librarymetal-framework
:pointer
objc:define-objective-c-messagedevice-name
"name":object:ownership:borrowed:class"NSString"
defunmake-system-default-device

Return the preferred Metal device as one explicitly owned wrapper.

objc:wrap-objective-c-object
objc:with-objective-c-native-environment
%make-system-default-device
:ownership:owned:protocol-name"MTLDevice"
defunprobe-system-default-device

Return bounded, printable evidence from one real native Metal device.

objc:with-autorelease-pool
let
unlessdevice
error"Metal did not provide a system default device."
objc:with-owned-objective-c-object
owned-devicedevice
let
name
device-nameowned-device
list:class
objc:objective-c-object-class-nameowned-device
:protocol
objc:objective-c-object-protocol-nameowned-device
:name:registry-id
device-registry-idowned-device