From efdfd56e0e673d6433657fa94c313182c27fe7eb Mon Sep 17 00:00:00 2001 From: chyyran <ronny@ronnychan.ca> Date: Thu, 15 Feb 2024 19:55:22 -0500 Subject: [PATCH] rt(mtl): don't allow buffers of size 0 --- librashader-runtime-mtl/src/buffer.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/librashader-runtime-mtl/src/buffer.rs b/librashader-runtime-mtl/src/buffer.rs index 0b7fd91..608e58b 100644 --- a/librashader-runtime-mtl/src/buffer.rs +++ b/librashader-runtime-mtl/src/buffer.rs @@ -24,7 +24,7 @@ impl AsRef<ProtocolObject<dyn MTLBuffer>> for MetalBuffer { impl MetalBuffer { pub fn new( device: &ProtocolObject<dyn MTLDevice>, - size: usize, + mut size: usize, label: &str, ) -> error::Result<Self> { let storage_mode = if cfg!(all(target_arch = "aarch64", target_vendor = "apple")) { @@ -33,6 +33,11 @@ impl MetalBuffer { MTLResourceStorageModeManaged }; + // Can't create buffer of size 0. + if size == 0 { + size = 16; + }; + let buffer = device .newBufferWithLength_options(size, storage_mode) .ok_or(FilterChainError::BufferError)?;