From 24b138a956c31ec18ff9a2898b6ad914ec4284b5 Mon Sep 17 00:00:00 2001 From: Josh Palmer <1253239+Shfty@users.noreply.github.com> Date: Wed, 22 Mar 2023 03:18:05 +0000 Subject: [PATCH] Add safety comment to create_shader_module_spirv invocation --- .../bevy_render/src/renderer/render_device.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/crates/bevy_render/src/renderer/render_device.rs b/crates/bevy_render/src/renderer/render_device.rs index caebbaf000a8a7..a4bf8f226a4d17 100644 --- a/crates/bevy_render/src/renderer/render_device.rs +++ b/crates/bevy_render/src/renderer/render_device.rs @@ -51,13 +51,18 @@ impl RenderDevice { if self .features() .contains(wgpu::Features::SPIRV_SHADER_PASSTHROUGH) => - unsafe { - self.device - .create_shader_module_spirv(&wgpu::ShaderModuleDescriptorSpirV { - label: desc.label, - source: source.clone(), - }) - }, + { + // SAFETY: + // This call passes binary data to the backend as-is and can potentially result in a driver crash or bogus behaviour. + // No attempt is made to ensure that data is valid SPIR-V. + unsafe { + self.device + .create_shader_module_spirv(&wgpu::ShaderModuleDescriptorSpirV { + label: desc.label, + source: source.clone(), + }) + } + } _ => self.device.create_shader_module(desc), }