From 37d094ca070d63fcc197ce46cbe4f45af558124f Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Tue, 20 Jul 2021 02:12:55 -0400 Subject: [PATCH] hlsl-out: omit globals that aren't accessible --- src/back/hlsl/writer.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/back/hlsl/writer.rs b/src/back/hlsl/writer.rs index 64055a698e..2a6f6342f2 100644 --- a/src/back/hlsl/writer.rs +++ b/src/back/hlsl/writer.rs @@ -339,6 +339,18 @@ impl<'a, W: Write> Writer<'a, W> { let global = &module.global_variables[handle]; let inner = &module.types[global.ty].inner; + if let Some(ref binding) = global.binding { + if let Err(err) = self.options.resolve_resource_binding(binding) { + log::info!( + "Skipping global {:?} (name {:?}) for being inaccessible: {}", + handle, + global.name, + err, + ); + return Ok(()); + } + } + // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-variable-register let (storage, register_ty) = match global.class { crate::StorageClass::Function => unreachable!("Function storage class"),