gpu-probe: say whether each adapter has compute, not just the preferred one
Compute is a downlevel capability rather than a feature -- unconditional on any Vulkan 1.0 device, GLES 3.1 and up -- so the question shadows and blur raise is what the *weakest* adapter iris can fall back to offers. Both here answer yes: Venus and virgl each report COMPUTE_SHADERS, 1024 invocations per workgroup and 64 KB of workgroup storage, virgl because it is ES 3.2. The only no-compute machine in this project is the emulator's SwiftShader software GL at ES 3.0. RUST.md gains that table, why DRM native context is unrelated to it, and what each of shadows/blur/paths actually needs -- only vello proper turns the compute question on.
This commit is contained in:
1 parent
b9924e7617
commit
db0a41a7cd
2 files changed
+81
No files matched your search
@@ -79,6 +79,21 @@ fn main() {
|
||||
" {:?} {} ({:?})",
|
||||
info.backend, info.name, info.device_type
|
||||
);
|
||||
// Compute is a *downlevel* capability, not a feature: Vulkan
|
||||
// grants it to any 1.0 device, and GLES only from ES 3.1. So
|
||||
// "can iris use a compute pass here" is this flag on every
|
||||
// adapter iris might fall back to, not just the preferred one.
|
||||
let down = adapter.get_downlevel_capabilities();
|
||||
let limits = adapter.limits();
|
||||
println!(
|
||||
" compute shaders: {} (shader model {:?})",
|
||||
down.flags.contains(DownlevelFlags::COMPUTE_SHADERS),
|
||||
down.shader_model
|
||||
);
|
||||
println!(
|
||||
" max compute invocations/workgroup: {}, workgroup storage: {} bytes",
|
||||
limits.max_compute_invocations_per_workgroup, limits.max_compute_workgroup_storage_size
|
||||
);
|
||||
}
|
||||
|
||||
let Some(adapter) = pollster::block_on(instance.request_adapter(&RequestAdapterOptions {
|
||||
|
||||
Reference in new issue
Block a user