Skip to content

Commit c9bd143

Browse files
authored
Validate MTLBuffer storage mode (#733)
1 parent 98a837b commit c9bd143

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/mtl/buffer.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ end
1818
## allocation
1919

2020
function MTLBuffer(dev::Union{MTLDevice,MTLHeap}, bytesize::Integer;
21-
storage=PrivateStorage, hazard_tracking=DefaultTracking,
21+
storage::Type{<:StorageMode}=PrivateStorage, hazard_tracking=DefaultTracking,
2222
cache_mode=DefaultCPUCache)
2323
opts = convert(MTLResourceOptions, storage) | hazard_tracking | cache_mode
2424

@@ -29,7 +29,7 @@ function MTLBuffer(dev::Union{MTLDevice,MTLHeap}, bytesize::Integer;
2929
end
3030

3131
function MTLBuffer(dev::MTLDevice, bytesize::Integer, ptr::Ptr;
32-
nocopy=false, storage=SharedStorage, hazard_tracking=DefaultTracking,
32+
nocopy=false, storage::Type{<:StorageMode}=SharedStorage, hazard_tracking=DefaultTracking,
3333
cache_mode=DefaultCPUCache)
3434
storage == PrivateStorage && error("Cannot allocate-and-initialize a PrivateStorage buffer")
3535
opts = convert(MTLResourceOptions, storage) | hazard_tracking | cache_mode

test/mtl/metal.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,9 @@ end
265265

266266
dev = first(devices())
267267

268+
# JuliaGPU/Metal.jl#732
269+
@test_throws TypeError MTLBuffer(dev, 8; storage=2)
270+
268271
buf = MTLBuffer(dev, 8; storage=SharedStorage)
269272

270273
@test buf.length == 8

0 commit comments

Comments
 (0)