mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-25 00:03:29 +00:00
test: ensure render pipelines have at least 1 target
This commit is contained in:
parent
447e3eee8d
commit
18b758e388
@ -35,3 +35,46 @@ static PIPELINE_DEFAULT_LAYOUT_BAD_MODULE: GpuTestConfiguration = GpuTestConfigu
|
||||
pipeline.get_bind_group_layout(0);
|
||||
});
|
||||
});
|
||||
|
||||
const TRIVIAL_VERTEX_SHADER_DESC: wgpu::ShaderModuleDescriptor = wgpu::ShaderModuleDescriptor {
|
||||
label: Some("trivial vertex shader"),
|
||||
source: wgpu::ShaderSource::Wgsl(std::borrow::Cow::Borrowed(
|
||||
"@vertex fn main() -> @builtin(position) vec4<f32> { return vec4<f32>(0); }",
|
||||
)),
|
||||
};
|
||||
|
||||
#[gpu_test]
|
||||
static NO_TARGETLESS_RENDER: GpuTestConfiguration = GpuTestConfiguration::new()
|
||||
.parameters(TestParameters::default())
|
||||
.run_sync(|ctx| {
|
||||
fail(&ctx.device, || {
|
||||
// Testing multisampling is important, because some backends don't behave well if one
|
||||
// tries to compile code in an unsupported multisample count. Failing to validate here
|
||||
// has historically resulted in requesting the back end to compile code.
|
||||
for power_of_two in [1, 2, 4, 8, 16, 32, 64] {
|
||||
ctx.device
|
||||
.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
|
||||
label: None,
|
||||
layout: None,
|
||||
vertex: wgpu::VertexState {
|
||||
module: &ctx.device.create_shader_module(TRIVIAL_VERTEX_SHADER_DESC),
|
||||
entry_point: "main",
|
||||
compilation_options: Default::default(),
|
||||
buffers: &[],
|
||||
},
|
||||
primitive: Default::default(),
|
||||
depth_stencil: None,
|
||||
multisample: wgpu::MultisampleState {
|
||||
count: power_of_two,
|
||||
..Default::default()
|
||||
},
|
||||
fragment: None,
|
||||
multiview: None,
|
||||
cache: None,
|
||||
});
|
||||
}
|
||||
})
|
||||
// TODO: concrete error message:
|
||||
// At least one color attachment or depth-stencil attachment was expected, but no
|
||||
// render target for the pipeline was specified.
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user