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)?;