mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
55 lines
2.1 KiB
Rust
55 lines
2.1 KiB
Rust
use wgpu_test::{gpu_test, GpuTestConfiguration};
|
|
|
|
use wgpu::*;
|
|
|
|
/// Previously, for every user-defined vertex output a fragment shader had to have a corresponding
|
|
/// user-defined input. This would generate `StageError::InputNotConsumed`.
|
|
///
|
|
/// This requirement was removed from the WebGPU spec. Now, when generating hlsl, wgpu will
|
|
/// automatically remove any user-defined outputs from the vertex shader that are not present in
|
|
/// the fragment inputs. This is necessary for generating correct hlsl:
|
|
/// https://github.com/gfx-rs/wgpu/issues/5553
|
|
#[gpu_test]
|
|
static ALLOW_INPUT_NOT_CONSUMED: GpuTestConfiguration =
|
|
GpuTestConfiguration::new().run_async(|ctx| async move {
|
|
let module = ctx
|
|
.device
|
|
.create_shader_module(include_wgsl!("issue_5553.wgsl"));
|
|
|
|
let pipeline_layout = ctx
|
|
.device
|
|
.create_pipeline_layout(&PipelineLayoutDescriptor {
|
|
label: Some("Pipeline Layout"),
|
|
bind_group_layouts: &[],
|
|
push_constant_ranges: &[],
|
|
});
|
|
|
|
let _ = ctx
|
|
.device
|
|
.create_render_pipeline(&RenderPipelineDescriptor {
|
|
label: Some("Pipeline"),
|
|
layout: Some(&pipeline_layout),
|
|
vertex: VertexState {
|
|
module: &module,
|
|
entry_point: Some("vs_main"),
|
|
compilation_options: Default::default(),
|
|
buffers: &[],
|
|
},
|
|
primitive: PrimitiveState::default(),
|
|
depth_stencil: None,
|
|
multisample: MultisampleState::default(),
|
|
fragment: Some(FragmentState {
|
|
module: &module,
|
|
entry_point: Some("fs_main"),
|
|
compilation_options: Default::default(),
|
|
targets: &[Some(ColorTargetState {
|
|
format: TextureFormat::Rgba8Unorm,
|
|
blend: None,
|
|
write_mask: ColorWrites::all(),
|
|
})],
|
|
}),
|
|
multiview: None,
|
|
cache: None,
|
|
});
|
|
});
|