From 19552b241d34a483c9fdc03e04fef20788bf67b1 Mon Sep 17 00:00:00 2001
From: Marijn Suijten <marijn@traverseresearch.nl>
Date: Fri, 28 Aug 2020 21:33:01 +0200
Subject: [PATCH] Suggestion: Allocate data in
 get_ray_tracing_shader_group_handles

---
 ash/src/extensions/khr/ray_tracing.rs | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/ash/src/extensions/khr/ray_tracing.rs b/ash/src/extensions/khr/ray_tracing.rs
index dad56371c..325747399 100644
--- a/ash/src/extensions/khr/ray_tracing.rs
+++ b/ash/src/extensions/khr/ray_tracing.rs
@@ -174,18 +174,21 @@ impl RayTracing {
         pipeline: vk::Pipeline,
         first_group: u32,
         group_count: u32,
-        data: &mut [u8],
-    ) -> VkResult<()> {
-        self.ray_tracing_fn
+        data_size: usize,
+    ) -> VkResult<Vec<u8>> {
+        let mut data = Vec::<u8>::with_capacity(data_size);
+        let err_code = self
+            .ray_tracing_fn
             .get_ray_tracing_shader_group_handles_khr(
                 self.handle,
                 pipeline,
                 first_group,
                 group_count,
-                data.len(),
+                data_size,
                 data.as_mut_ptr() as *mut std::ffi::c_void,
-            )
-            .into()
+            );
+        data.set_len(data_size);
+        err_code.result_with_success(data)
     }
 
     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureHandleKHR.html>"]