Skip to content

Commit 5d7055a

Browse files
committed
add version check
1 parent 0f52746 commit 5d7055a

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

src/state.jl

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,29 +47,34 @@ function global_queue(dev::MTLDevice)
4747
@autoreleasepool begin
4848
# NOTE: MTLCommandQueue itself is manually reference-counted,
4949
# the release pool is for resources used during its construction.
50-
log_state_descriptor = MTLLogStateDescriptor()
51-
log_state = MTLLogState(dev, log_state_descriptor)
5250

53-
function log_handler(subSystem, category, logLevel, message)
54-
println(String(message))
55-
return nothing
51+
queue = if macos_version() >= v"15"
52+
log_state_descriptor = MTLLogStateDescriptor()
53+
log_state = MTLLogState(dev, log_state_descriptor)
54+
55+
function log_handler(subSystem, category, logLevel, message)
56+
print(String(message))
57+
return nothing
58+
end
59+
function wrapper(subSystem, category, logLevel, message)
60+
log_handler(subSystem == nil ? nothing : NSString(subSystem),
61+
category == nil ? nothing : NSString(category),
62+
logLevel,
63+
message == nil ? nothing : NSString(message)
64+
)
65+
return nothing
66+
end
67+
68+
block = @objcblock(wrapper, Nothing, (id{NSString}, id{NSString}, MTLLogLevel, id{NSString}))
69+
70+
@objc [log_state::id{MTLLogState} addLogHandler:block::id{NSBlock}]::Nothing
71+
72+
queue_descriptor = MTLCommandQueueDescriptor()
73+
queue_descriptor.logState = log_state
74+
MTLCommandQueue(dev, queue_descriptor)
75+
else
76+
MTLCommandQueue(dev, queue_descriptor)
5677
end
57-
function wrapper(subSystem, category, logLevel, message)
58-
log_handler(subSystem == nil ? nothing : NSString(subSystem),
59-
category == nil ? nothing : NSString(category),
60-
logLevel,
61-
message == nil ? nothing : NSString(message)
62-
)
63-
return nothing
64-
end
65-
66-
block = @objcblock(wrapper, Nothing, (id{NSString}, id{NSString}, MTLLogLevel, id{NSString}))
67-
68-
@objc [log_state::id{MTLLogState} addLogHandler:block::id{NSBlock}]::Nothing
69-
70-
queue_descriptor = MTLCommandQueueDescriptor()
71-
queue_descriptor.logState = log_state
72-
queue = MTLCommandQueue(dev, queue_descriptor)
7378
queue.label = "global_queue($(current_task()))"
7479
global_queues[queue] = nothing
7580
queue

0 commit comments

Comments
 (0)