mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
Only commit hopefully (#8140)
This commit is contained in:
parent
57368b374f
commit
24a31c494a
@ -128,11 +128,8 @@ impl super::Device {
|
||||
primitive_class: MTLPrimitiveTopologyClass,
|
||||
naga_stage: naga::ShaderStage,
|
||||
) -> Result<CompiledShader, crate::PipelineError> {
|
||||
let naga_shader = if let ShaderModuleSource::Naga(naga) = &stage.module.source {
|
||||
naga
|
||||
} else {
|
||||
panic!("load_shader required a naga shader");
|
||||
};
|
||||
match stage.module.source {
|
||||
ShaderModuleSource::Naga(ref naga_shader) => {
|
||||
let stage_bit = map_naga_stage(naga_stage);
|
||||
let (module, module_info) = naga::back::pipeline_constants::process_overrides(
|
||||
&naga_shader.module,
|
||||
@ -140,7 +137,9 @@ impl super::Device {
|
||||
Some((naga_stage, stage.entry_point)),
|
||||
stage.constants,
|
||||
)
|
||||
.map_err(|e| crate::PipelineError::PipelineConstants(stage_bit, format!("MSL: {e:?}")))?;
|
||||
.map_err(|e| {
|
||||
crate::PipelineError::PipelineConstants(stage_bit, format!("MSL: {e:?}"))
|
||||
})?;
|
||||
|
||||
let ep_resources = &layout.per_stage_map[naga_stage];
|
||||
|
||||
@ -191,8 +190,12 @@ impl super::Device {
|
||||
vertex_buffer_mappings: vertex_buffer_mappings.to_vec(),
|
||||
};
|
||||
|
||||
let (source, info) =
|
||||
naga::back::msl::write_string(&module, &module_info, &options, &pipeline_options)
|
||||
let (source, info) = naga::back::msl::write_string(
|
||||
&module,
|
||||
&module_info,
|
||||
&options,
|
||||
&pipeline_options,
|
||||
)
|
||||
.map_err(|e| crate::PipelineError::Linkage(stage_bit, format!("MSL: {e:?}")))?;
|
||||
|
||||
log::debug!(
|
||||
@ -274,7 +277,8 @@ impl super::Device {
|
||||
}
|
||||
|
||||
let mut dynamic_array_container_ty = var.ty;
|
||||
if let naga::TypeInner::Struct { ref members, .. } = module.types[var.ty].inner
|
||||
if let naga::TypeInner::Struct { ref members, .. } =
|
||||
module.types[var.ty].inner
|
||||
{
|
||||
dynamic_array_container_ty = members.last().unwrap().ty;
|
||||
}
|
||||
@ -299,6 +303,20 @@ impl super::Device {
|
||||
immutable_buffer_mask,
|
||||
})
|
||||
}
|
||||
ShaderModuleSource::Passthrough(ref shader) => Ok(CompiledShader {
|
||||
library: shader.library.clone(),
|
||||
function: shader.function.clone(),
|
||||
wg_size: MTLSize {
|
||||
width: shader.num_workgroups.0 as u64,
|
||||
height: shader.num_workgroups.1 as u64,
|
||||
depth: shader.num_workgroups.2 as u64,
|
||||
},
|
||||
wg_memory_sizes: vec![],
|
||||
sized_bindings: vec![],
|
||||
immutable_buffer_mask: 0,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
fn set_buffers_mutability(
|
||||
buffers: &metal::PipelineBufferDescriptorArrayRef,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user