NetBSD support
Hi,
Background: https://github.com/bevyengine/bevy/discussions/21840 Additional information: NetBSD doesn't support Vulkan.
I've added target_os = "netbsd" where it was appropriated and executed the tests; halmark, raw-gles, ray-traced-triangle, hello_compute, hello_window and custom_backend.
raw-gles and hello_window worked (attached)
halmark and ray-traced-triangle want Vulkan; hello_compute shows Mesa version information and the crashes and custom_backend does nothing.
Any hints on what to do next? Are two test enough for a pull-request adding NetBSD support?
When you say you executed the tests, then did you actually run the tests as described in detail here? Doesn't sound like it ;) A pull request adding NetBSD should also make sure the CI is testing that target, otherwise it will inevitably break again.
Not all features are supported on OpenGL, so raytracing not working is expected. Whether compute shaders are supported depends on the OpenGL driver.
@Wumpf I'll do it again according to the linked docs and report back, thanks.
I'll look at the CI tests if the outcome of the above is OK.
@Wumpf Thought I had sometime to run the tests today ~~but, I'm getting:~~
~> cargo xtask test
Compiling wgpu-info v27.0.0 (/home/pin/Git/wgpu/wgpu-info)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 24s
Running `target/debug/wgpu-info --json -o .gpuconfig`
Error: Failed to run wgpu-info to generate .gpuconfig
Caused by:
command was terminated by a signal `cargo run --bin wgpu-info -- --json -o .gpuconfig`: 11
~~Any further hints?~~
EDIT: My bad ... forget about this, my mistake. Running now.
@Wumpf Is this good enough for a platform that doesn't support Vulkan?
Regarding the CI, I've tried to add NetBSD equivalent support to the existing OpenBSD support. I don't see OpenBSD in wgpu/.github/workflows/ci.yml, only FreeBSD.
Nextest run ID 0b3329df-0093-44a1-b74d-538f5b12a080 with nextest profile: default
Starting 459 tests across 33 binaries
PASS [ 0.046s] naga arena::tests::append_non_unique
PASS [ 0.050s] naga arena::tests::append_unique
PASS [ 0.043s] naga arena::tests::fetch_or_append_unique
PASS [ 0.046s] naga arena::tests::fetch_or_append_non_unique
PASS [ 0.044s] naga back::pipeline_constants::test_map_value_to_literal
PASS [ 0.056s] naga back::msl::test_error_size
PASS [ 0.045s] naga back::spv::layout::test_logical_layout_in_words
PASS [ 0.040s] naga back::spv::layout::test_physical_layout_in_words
PASS [ 0.041s] naga back::spv::writer::test_write_physical_layout
PASS [ 0.040s] naga compact::array_length_expression
PASS [ 0.041s] naga compact::array_length_override_mutual
PASS [ 0.058s] naga compact::array_length_override
PASS [ 0.057s] naga compact::global_expression_override
PASS [ 0.057s] naga compact::local_expression_override
PASS [ 0.365s] player::player test_api
PASS [ 0.046s] naga compact::type_expression_interdependence
PASS [ 0.052s] naga compact::unnamed_constant_type
PASS [ 0.046s] naga compact::unnamed_override_type
PASS [ 0.039s] naga error::test_replace_control_chars
PASS [ 0.043s] naga front::glsl::parser_tests::control_flow
PASS [ 0.074s] naga front::glsl::lex::tests::lex_tokens
PASS [ 0.097s] naga front::glsl::parser_tests::constants
PASS [ 0.055s] naga front::glsl::parser_tests::declarations
PASS [ 0.054s] naga front::glsl::parser_tests::expressions
PASS [ 0.045s] naga front::glsl::parser_tests::function_overloading
PASS [ 0.049s] naga front::glsl::parser_tests::implicit_conversions
PASS [ 0.066s] naga front::glsl::parser_tests::functions
PASS [ 0.044s] naga front::glsl::parser_tests::swizzles
PASS [ 0.057s] naga front::glsl::parser_tests::structs
PASS [ 0.069s] naga front::glsl::parser_tests::textures
PASS [ 0.062s] naga front::spv::test::parse
PASS [ 0.075s] naga front::glsl::parser_tests::version
PASS [ 0.042s] naga front::wgsl::parse::directive::language_extension::test_manual_variants_array_is_correct
PASS [ 0.050s] naga front::wgsl::parse::directive::test::directive_after_global_decl
PASS [ 0.042s] naga front::wgsl::parse::lexer::double_floats
PASS [ 0.054s] naga front::wgsl::parse::lexer::test_comments
PASS [ 0.045s] naga front::wgsl::parse::lexer::test_doc_comment_long_character
PASS [ 0.047s] naga front::wgsl::parse::lexer::test_doc_comment_nested
PASS [ 0.051s] naga front::wgsl::parse::lexer::test_doc_comments
PASS [ 0.037s] naga front::wgsl::parse::lexer::test_doc_comments_module
PASS [ 0.055s] naga front::wgsl::parse::lexer::test_numbers
PASS [ 0.036s] naga front::wgsl::parse::lexer::test_variable_decl
PASS [ 0.066s] naga front::wgsl::parse::lexer::test_tokens
PASS [ 0.087s] naga front::wgsl::tests::diagnostic_filter::attribute_conflict::unknown_rules
PASS [ 0.103s] naga front::wgsl::tests::binary_expression_mixed_scalar_and_vector_operands
PASS [ 0.114s] naga front::wgsl::tests::diagnostic_filter::attribute_conflict::user_rules
PASS [ 0.061s] naga front::wgsl::tests::diagnostic_filter::directive_conflict::unknown_rules
PASS [ 0.059s] naga front::wgsl::tests::diagnostic_filter::directive_conflict::user_rules
PASS [ 0.039s] naga front::wgsl::tests::diagnostic_filter::intended_global_directive
PASS [ 0.055s] naga front::wgsl::tests::diagnostic_filter::parse_sites_not_yet_supported::user_rules
PASS [ 0.084s] naga front::wgsl::tests::diagnostic_filter::parse_sites_not_yet_supported::unknown_rules
PASS [ 0.074s] naga front::wgsl::tests::parse_alias
PASS [ 0.043s] naga front::wgsl::tests::parse_array_length
PASS [ 0.053s] naga front::wgsl::tests::parse_assignment_statements
PASS [ 0.056s] naga front::wgsl::tests::parse_expressions
PASS [ 0.062s] naga front::wgsl::tests::parse_comment
PASS [ 0.042s] naga front::wgsl::tests::parse_if
PASS [ 0.050s] naga front::wgsl::tests::parse_missing_workgroup_size
PASS [ 0.061s] naga front::wgsl::tests::parse_loop
PASS [ 0.048s] naga front::wgsl::tests::parse_parentheses_if
PASS [ 0.047s] naga front::wgsl::tests::parse_pointers
PASS [ 0.060s] naga front::wgsl::tests::parse_postfix
PASS [ 0.083s] naga front::wgsl::tests::parse_parentheses_switch
PASS [ 0.046s] naga front::wgsl::tests::parse_repeated_attributes
PASS [ 0.046s] naga front::wgsl::tests::parse_standard_fun
PASS [ 0.052s] naga front::wgsl::tests::parse_statement
PASS [ 0.045s] naga front::wgsl::tests::parse_storage_buffers
PASS [ 0.045s] naga front::wgsl::tests::parse_struct
PASS [ 0.046s] naga front::wgsl::tests::parse_switch
PASS [ 0.061s] naga front::wgsl::tests::parse_struct_instantiation
PASS [ 0.041s] naga front::wgsl::tests::parse_switch_default_in_case
PASS [ 0.051s] naga front::wgsl::tests::parse_switch_optional_colon_in_case
PASS [ 0.054s] naga front::wgsl::tests::parse_texture_load
PASS [ 0.045s] naga front::wgsl::tests::parse_texture_load_store_expecting_four_args
PASS [ 0.050s] naga front::wgsl::tests::parse_texture_query
PASS [ 0.053s] naga front::wgsl::tests::parse_texture_store
PASS [ 0.056s] naga front::wgsl::tests::parse_type_cast
PASS [ 0.044s] naga front::wgsl::tests::parse_type_coercion
PASS [ 0.047s] naga front::wgsl::tests::parse_types
PASS [ 0.053s] naga non_max_u32::size
PASS [ 0.043s] naga proc::constant_evaluator::first_leading_bit_smoke
PASS [ 0.098s] naga front::wgsl::tests::parse_type_inference
PASS [ 0.044s] naga proc::constant_evaluator::tests::access
PASS [ 0.076s] naga proc::constant_evaluator::first_trailing_bit_smoke
PASS [ 0.073s] naga proc::constant_evaluator::tests::cast
PASS [ 0.046s] naga proc::constant_evaluator::tests::compose_of_constants
PASS [ 0.049s] naga proc::constant_evaluator::tests::splat_of_constant
PASS [ 0.042s] naga proc::constant_evaluator::tests::unary_op
PASS [ 0.066s] naga proc::constant_evaluator::tests::splat_of_zero_value
PASS [ 0.048s] naga proc::namer::test
PASS [ 0.049s] naga proc::overloads::one_bits_iter::all
PASS [ 0.049s] naga proc::overloads::one_bits_iter::empty
PASS [ 0.045s] naga proc::overloads::one_bits_iter::first
PASS [ 0.046s] naga proc::overloads::one_bits_iter::in_order
PASS [ 0.062s] naga proc::overloads::one_bits_iter::last
PASS [ 0.047s] naga proc::overloads::regular::test::binary_vec_or_scalar_numeric_scalar
PASS [ 0.045s] naga proc::overloads::regular::test::binary_vec_or_scalar_numeric_vector
PASS [ 0.055s] naga proc::overloads::regular::test::binary_vec_or_scalar_numeric_vector_abstract
PASS [ 0.043s] naga proc::overloads::regular::test::unary_vec_or_scalar_numeric_matrix
PASS [ 0.051s] naga proc::overloads::regular::test::unary_vec_or_scalar_numeric_scalar
PASS [ 0.049s] naga proc::test_matrix_size
PASS [ 0.068s] naga proc::overloads::regular::test::unary_vec_or_scalar_numeric_vector
PASS [ 0.053s] naga proc::typifier::test_error_size
PASS [ 0.040s] naga valid::analyzer::uniform_control_flow
PASS [ 0.048s] naga span::span_location
PASS [ 0.048s] naga valid::expression::f64_const_literals
PASS [ 0.042s] naga valid::handles::array_size_deps
PASS [ 0.052s] naga valid::expression::f64_runtime_literals
PASS [ 0.048s] naga valid::handles::array_size_override
PASS [ 0.045s] naga valid::handles::constant_deps
PASS [ 0.043s] naga valid::handles::override_init_deps
FAIL [ 0.101s] naga::naga snapshots::convert_snapshots_spv
stdout ───
running 1 test
Assembling '8151-barrier-reorder.spvasm'
test snapshots::convert_snapshots_spv ... FAILED
failures:
failures:
snapshots::convert_snapshots_spv
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.05s
stderr ───
thread 'snapshots::convert_snapshots_spv' (21142) panicked at naga/tests/naga/snapshots.rs:427:14:
Failed to execute spirv-as. It can be installed by installing the Vulkan SDK and adding it to your path.: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
PASS [ 0.773s] naga::naga example_wgsl::parse_example_wgsl
PASS [ 0.071s] naga::naga spirv_capabilities::barycentrics
PASS [ 0.060s] naga::naga spirv_capabilities::cube_array
PASS [ 0.058s] naga::naga spirv_capabilities::f16_io_capabilities
PASS [ 0.073s] naga::naga spirv_capabilities::f16_io_polyfill_codegen
PASS [ 0.065s] naga::naga spirv_capabilities::float16
PASS [ 0.060s] naga::naga spirv_capabilities::float64
PASS [ 0.064s] naga::naga spirv_capabilities::geometry
PASS [ 0.066s] naga::naga spirv_capabilities::image_queries
PASS [ 0.061s] naga::naga spirv_capabilities::int64
PASS [ 0.061s] naga::naga spirv_capabilities::sample_rate_shading
PASS [ 0.060s] naga::naga spirv_capabilities::sampler1d
PASS [ 0.056s] naga::naga spirv_capabilities::storage1d
PASS [ 0.071s] naga::naga spirv_capabilities::storage_image_formats
PASS [ 0.068s] naga::naga validation::arity_check
PASS [ 0.076s] naga::naga validation::bad_texture_dimensions_level
PASS [ 0.056s] naga::naga validation::binding_arrays_cannot_hold_arrays
PASS [ 0.052s] naga::naga validation::binding_arrays_cannot_hold_scalars
PASS [ 0.056s] naga::naga validation::binding_arrays_hold_structs
PASS [ 0.045s] naga::naga validation::builtin_cross_product_args
PASS [ 0.059s] naga::naga validation::emit_workgroup_uniform_load_result
PASS [ 0.053s] naga::naga validation::global_use_array
PASS [ 0.047s] naga::naga validation::global_use_array_index
PASS [ 0.057s] naga::naga validation::global_use_phony
PASS [ 0.053s] naga::naga validation::global_use_scalar
PASS [ 0.069s] naga::naga validation::global_use_unreachable
PASS [ 0.061s] naga::naga validation::incompatible_interpolation_and_sampling_types
PASS [ 0.062s] naga::naga validation::no_flat_first_in_glsl
PASS [ 0.068s] naga::naga validation::override_in_array_size
PASS [ 0.065s] naga::naga validation::override_in_entrypoint
PASS [ 0.058s] naga::naga validation::override_in_function
PASS [ 0.055s] naga::naga validation::override_in_global_init
PASS [ 0.061s] naga::naga validation::override_in_workgroup_size
PASS [ 0.058s] naga::naga validation::override_in_workgroup_size_nested
PASS [ 0.059s] naga::naga validation::override_with_multiple_globals
PASS [ 0.058s] naga::naga validation::populate_atomic_result
PASS [ 2.927s] naga::naga snapshots::convert_snapshots_glsl
PASS [ 0.055s] naga::naga validation::populate_call_result
PASS [ 0.067s] naga::naga validation::validation_error_messages
PASS [ 0.054s] naga::naga wgsl_errors::assign_to_expr
PASS [ 0.070s] naga::naga wgsl_errors::assign_to_let
PASS [ 0.063s] naga::naga wgsl_errors::bad_for_initializer
PASS [ 0.056s] naga::naga wgsl_errors::bad_texture
PASS [ 0.068s] naga::naga wgsl_errors::bad_texture_sample_type
PASS [ 0.062s] naga::naga wgsl_errors::bad_type_cast
PASS [ 0.052s] naga::naga wgsl_errors::binary_statement
PASS [ 0.057s] naga::naga wgsl_errors::binding_array_local
PASS [ 0.053s] naga::naga wgsl_errors::binding_array_private
PASS [ 0.062s] naga::naga wgsl_errors::break_if_bad_condition
PASS [ 0.054s] naga::naga wgsl_errors::compaction_preserves_spans
PASS [ 0.051s] naga::naga wgsl_errors::const_assert_failed
PASS [ 0.050s] naga::naga wgsl_errors::const_assert_must_be_bool
PASS [ 0.423s] naga::naga wgsl_errors::binding_array_non_struct
PASS [ 0.148s] naga::naga wgsl_errors::const_assert_must_be_const
PASS [ 0.059s] naga::naga wgsl_errors::const_eval_value_errors
PASS [ 0.068s] naga::naga wgsl_errors::constructor_type_error_span
PASS [ 0.131s] naga::naga wgsl_errors::constructor_parameter_type_mismatch
PASS [ 0.061s] naga::naga wgsl_errors::cross_vec2
PASS [ 0.050s] naga::naga wgsl_errors::cross_vec4
PASS [ 0.051s] naga::naga wgsl_errors::cyclic_function
PASS [ 0.052s] naga::naga wgsl_errors::discard_in_wrong_stage
PASS [ 0.057s] naga::naga wgsl_errors::float16_capability_and_enable
PASS [ 0.060s] naga::naga wgsl_errors::float16_in_atomic
PASS [ 0.055s] naga::naga wgsl_errors::float16_in_push_constant
PASS [ 0.054s] naga::naga wgsl_errors::function_must_use_repeated
PASS [ 0.110s] naga::naga wgsl_errors::function_must_return_value
PASS [ 0.061s] naga::naga wgsl_errors::function_must_use_returns_void
PASS [ 0.057s] naga::naga wgsl_errors::function_must_use_unused
PASS [ 0.053s] naga::naga wgsl_errors::function_param_redefinition_as_local
PASS [ 0.049s] naga::naga wgsl_errors::function_param_redefinition_as_param
PASS [ 0.061s] naga::naga wgsl_errors::function_returns_void
PASS [ 0.052s] naga::naga wgsl_errors::function_without_identifier
PASS [ 0.050s] naga::naga wgsl_errors::global_initialization_type_mismatch
PASS [ 0.064s] naga::naga wgsl_errors::host_shareable_types
PASS [ 0.074s] naga::naga wgsl_errors::inconsistent_binding
PASS [ 0.052s] naga::naga wgsl_errors::inconsistent_type
PASS [ 0.053s] naga::naga wgsl_errors::invalid_access
PASS [ 0.066s] naga::naga wgsl_errors::invalid_arrays
PASS [ 0.163s] naga::naga wgsl_errors::int64_capability
PASS [ 0.067s] naga::naga wgsl_errors::invalid_blend_src
PASS [ 0.076s] naga::naga wgsl_errors::invalid_clip_distances
PASS [ 0.055s] naga::naga wgsl_errors::invalid_float
PASS [ 0.051s] naga::naga wgsl_errors::invalid_integer
PASS [ 0.067s] naga::naga wgsl_errors::invalid_functions
PASS [ 0.050s] naga::naga wgsl_errors::invalid_local_vars
PASS [ 0.056s] naga::naga wgsl_errors::invalid_return_type
PASS [ 0.054s] naga::naga wgsl_errors::invalid_runtime_sized_arrays
PASS [ 0.067s] naga::naga wgsl_errors::invalid_structs
PASS [ 0.057s] naga::naga wgsl_errors::invalid_texture_sample_type
PASS [ 0.072s] naga::naga wgsl_errors::io_shareable_types
PASS [ 0.056s] naga::naga wgsl_errors::issue7165
PASS [ 0.126s] naga::naga wgsl_errors::limit_braced_statement_nesting
PASS [ 0.052s] naga::naga wgsl_errors::local_const_from_global_var
PASS [ 0.227s] naga::naga wgsl_errors::let_type_mismatch
PASS [ 0.056s] naga::naga wgsl_errors::local_const_from_let
PASS [ 0.071s] naga::naga wgsl_errors::local_const_from_override
PASS [ 0.093s] naga::naga wgsl_errors::local_const_from_var
PASS [ 0.054s] naga::naga wgsl_errors::local_const_wrong_type
PASS [ 0.072s] naga::naga wgsl_errors::local_var_missing_type
PASS [ 0.065s] naga::naga wgsl_errors::matrix_constructor_inferred
PASS [ 0.070s] naga::naga wgsl_errors::matrix_vector_pointers
PASS [ 0.059s] naga::naga wgsl_errors::matrix_with_bad_type
PASS [ 0.062s] naga::naga wgsl_errors::max_type_size_array_in_struct
PASS [ 0.052s] naga::naga wgsl_errors::max_type_size_array_of_structs
PASS [ 0.078s] naga::naga wgsl_errors::max_type_size_array_of_arrays
PASS [ 0.086s] naga::naga wgsl_errors::max_type_size_override_array
PASS [ 0.117s] naga::naga wgsl_errors::max_type_size_large_array
PASS [ 0.053s] naga::naga wgsl_errors::misplaced_break_if
PASS [ 0.170s] naga::naga wgsl_errors::max_type_size_two_arrays_in_struct
PASS [ 0.122s] naga::naga wgsl_errors::missing_bindings
PASS [ 0.055s] naga::naga wgsl_errors::missing_bindings2
PASS [ 0.059s] naga::naga wgsl_errors::missing_default_case
PASS [ 0.057s] naga::naga wgsl_errors::module_scope_identifier_redefinition
PASS [ 0.069s] naga::naga wgsl_errors::more_inconsistent_type
PASS [ 0.071s] naga::naga wgsl_errors::multiple_enables_valid
PASS [ 0.059s] naga::naga wgsl_errors::only_one_swizzle_type
PASS [ 0.057s] naga::naga wgsl_errors::ray_query_enable_extension
PASS [ 0.059s] naga::naga wgsl_errors::ray_query_vertex_return_enable_extension
PASS [ 0.183s] naga::naga wgsl_errors::pointer_type_equivalence
PASS [ 0.054s] naga::naga wgsl_errors::recognized_but_unimplemented_enable_extension
PASS [ 0.058s] naga::naga wgsl_errors::recursive_function
PASS [ 0.054s] naga::naga wgsl_errors::reject_utf8_bom
PASS [ 0.054s] naga::naga wgsl_errors::reserved_identifier_prefix
PASS [ 0.062s] naga::naga wgsl_errors::reserved_keyword
PASS [ 0.055s] naga::naga wgsl_errors::source_with_control_char
PASS [ 0.061s] naga::naga wgsl_errors::struct_member_align_too_low
PASS [ 0.055s] naga::naga wgsl_errors::struct_member_must_use
PASS [ 0.102s] naga::naga wgsl_errors::struct_member_non_po2_align
PASS [ 0.334s] naga::naga wgsl_errors::select
PASS [ 0.103s] naga::naga wgsl_errors::struct_member_redefinition
PASS [ 0.066s] naga::naga wgsl_errors::struct_member_size_too_low
PASS [ 0.083s] naga::naga wgsl_errors::struct_names_in_argument_errors
PASS [ 0.069s] naga::naga wgsl_errors::struct_names_in_conversion_errors
PASS [ 0.060s] naga::naga wgsl_errors::struct_names_in_init_errors
PASS [ 0.065s] naga::naga wgsl_errors::struct_redefinition
PASS [ 0.047s] naga::naga wgsl_errors::struct_type_mismatch_in_argument
PASS [ 0.078s] naga::naga wgsl_errors::struct_type_mismatch_in_assignment
PASS [ 0.218s] naga::naga wgsl_errors::struct_type_mismatch_in_global_const
PASS [ 0.176s] naga::naga wgsl_errors::struct_type_mismatch_in_global_var
PASS [ 0.188s] naga::naga wgsl_errors::struct_type_mismatch_in_let_decl
PASS [ 0.183s] naga::naga wgsl_errors::struct_type_mismatch_in_return_value
PASS [ 0.052s] naga::naga wgsl_errors::subgroup_capability
PASS [ 0.166s] naga::naga wgsl_errors::subgroup_invalid_broadcast
PASS [ 0.118s] naga::naga wgsl_errors::switch_invalid_type
PASS [ 0.054s] naga::naga wgsl_errors::switch_non_const_case
PASS [ 0.068s] naga::naga wgsl_errors::switch_signed_unsigned_mismatch
PASS [ 0.067s] naga::naga wgsl_errors::too_many_arguments
PASS [ 0.084s] naga::naga wgsl_errors::swizzle_assignment
PASS [ 0.057s] naga::naga wgsl_errors::too_many_unclosed_loops
PASS [ 0.057s] naga::naga wgsl_errors::too_many_arguments_2
PASS [ 0.054s] naga::naga wgsl_errors::type_not_constructible
PASS [ 0.060s] naga::naga wgsl_errors::type_not_inferable
PASS [ 0.049s] naga::naga wgsl_errors::unknown_access
PASS [ 0.061s] naga::naga wgsl_errors::unexpected_constructor_parameters
PASS [ 0.080s] naga::naga wgsl_errors::unknown_attribute
PASS [ 0.074s] naga::naga wgsl_errors::unknown_built_in
PASS [ 0.049s] naga::naga wgsl_errors::unknown_conservative_depth
PASS [ 0.055s] naga::naga wgsl_errors::unknown_ident
PASS [ 0.047s] naga::naga wgsl_errors::unknown_identifier
PASS [ 0.053s] naga::naga wgsl_errors::unknown_local_function
PASS [ 0.042s] naga::naga wgsl_errors::unknown_storage_class
PASS [ 0.058s] naga::naga wgsl_errors::unknown_storage_format
PASS [ 0.101s] naga::naga wgsl_errors::unknown_scalar_type
PASS [ 0.126s] naga::naga wgsl_errors::unknown_type
PASS [ 0.050s] naga::naga wgsl_errors::var_init
PASS [ 0.074s] naga::naga wgsl_errors::valid_access
PASS [ 0.052s] naga::naga wgsl_errors::vector_constructor_incorrect_component_count
PASS [ 0.108s] naga::naga wgsl_errors::var_type_mismatch
PASS [ 0.047s] naga::naga wgsl_errors::very_negative_integers
PASS [ 0.049s] naga::naga wgsl_errors::wrong_access_mode
PASS [ 0.047s] naga::naga wgsl_errors::wrong_argument_count
PASS [ 0.033s] wgpu api::buffer::tests::check_buffer_bounds_panics_for_end_over_size
PASS [ 0.035s] wgpu api::buffer::tests::check_buffer_bounds_panics_for_end_wraparound
PASS [ 0.031s] wgpu api::buffer::tests::check_buffer_bounds_works_for_end_in_range
PASS [ 0.034s] wgpu api::buffer::tests::range_overlapping
PASS [ 0.466s] naga::naga wgsl_errors::vector_logical_ops
PASS [ 0.216s] wgpu api::buffer::tests::range_to_offset_size_panics_for_empty_range
PASS [ 0.074s] wgpu api::buffer::tests::range_to_offset_size_panics_for_unbounded_empty_range
PASS [ 0.032s] wgpu macros::make_spirv_be_pass
PASS [ 0.035s] wgpu api::buffer::tests::range_to_offset_size_works
PASS [ 0.030s] wgpu macros::make_spirv_le_pass
PASS [ 0.036s] wgpu macros::test_vertex_attr_array
PASS [ 0.035s] wgpu util::make_spirv_be_fail
PASS [ 0.030s] wgpu util::make_spirv_empty
PASS [ 0.036s] wgpu util::make_spirv_le_fail
FAIL [ 0.371s] wgpu-benchmark::bench/wgpu-benchmark Computepass Encoding
stdout ───
Running benchmark: Computepass Encoding
stderr ───
thread 'main' (22891) panicked at benches/benches/wgpu-benchmark/main.rs:38:10:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FAIL [ 0.382s] wgpu-benchmark::bench/wgpu-benchmark Device::create_bind_group
stdout ───
Running benchmark: Device::create_bind_group
stderr ───
thread 'main' (23344) panicked at benches/benches/wgpu-benchmark/main.rs:38:10:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FAIL [ 0.344s] wgpu-benchmark::bench/wgpu-benchmark Device::create_buffer
stdout ───
Running benchmark: Device::create_buffer
stderr ───
thread 'main' (19311) panicked at benches/benches/wgpu-benchmark/main.rs:38:10:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FAIL [ 0.350s] wgpu-benchmark::bench/wgpu-benchmark Renderpass Encoding
stdout ───
Running benchmark: Renderpass Encoding
stderr ───
thread 'main' (25723) panicked at benches/benches/wgpu-benchmark/main.rs:38:10:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
PASS [ 1.617s] wgpu-benchmark::bench/wgpu-benchmark naga::compact
PASS [ 2.714s] wgpu-benchmark::bench/wgpu-benchmark naga::back
PASS [ 13.784s] naga::naga snapshots::convert_snapshots_wgsl
PASS [ 0.034s] wgpu-core id::test_id
PASS [ 0.039s] wgpu-core identity::test_epoch_end_of_life
PASS [ 0.034s] wgpu-core init_tracker::test::check_for_drained_tracker
PASS [ 0.160s] wgpu-core init_tracker::test::check_for_newly_created_tracker
PASS [ 0.035s] wgpu-core init_tracker::test::check_for_partially_filled_tracker
PASS [ 0.055s] wgpu-core init_tracker::test::discard_adds_range_on_cleared
PASS [ 0.028s] wgpu-core init_tracker::test::discard_does_nothing_on_uncleared
PASS [ 0.031s] wgpu-core init_tracker::test::discard_extends_ranges
PASS [ 0.460s] wgpu-core init_tracker::test::discard_merges_ranges
PASS [ 3.394s] wgpu-benchmark::bench/wgpu-benchmark naga::front
PASS [ 0.032s] wgpu-core init_tracker::test::drain_already_drained
PASS [ 0.035s] wgpu-core init_tracker::test::drain_never_returns_ranges_twice_for_same_range
PASS [ 0.032s] wgpu-core init_tracker::test::drain_splits_ranges_correctly
PASS [ 0.089s] wgpu-core instance::downlevel_default_limits_less_than_default_limits
PASS [ 0.066s] wgpu-core lock::ranked::forbidden_skip
PASS [ 0.152s] wgpu-core lock::ranked::forbidden_unrelated
PASS [ 0.060s] wgpu-core lock::ranked::permitted
PASS [ 0.036s] wgpu-core lock::ranked::stack_like
PASS [ 0.330s] wgpu-core lock::ranked::non_stack_like
PASS [ 0.080s] wgpu-core pipeline_cache::tests::invalid_magic
PASS [ 0.224s] wgpu-core pipeline_cache::tests::not_no_data
PASS [ 0.212s] wgpu-core pipeline_cache::tests::too_little_data
PASS [ 0.041s] wgpu-core pipeline_cache::tests::valid_data
PASS [ 0.042s] wgpu-core pipeline_cache::tests::too_much_data
PASS [ 0.035s] wgpu-core pipeline_cache::tests::written_header
PASS [ 0.069s] wgpu-core pipeline_cache::tests::wrong_abi
PASS [ 0.043s] wgpu-core pipeline_cache::tests::wrong_adapter
PASS [ 0.040s] wgpu-core pipeline_cache::tests::wrong_backend
PASS [ 0.048s] wgpu-core pipeline_cache::tests::wrong_hash
PASS [ 0.037s] wgpu-core pipeline_cache::tests::wrong_validation
PASS [ 0.247s] wgpu-core pipeline_cache::tests::wrong_version
PASS [ 0.295s] wgpu-core pool::tests::concurrent_creation_2_threads
PASS [ 0.293s] wgpu-core pool::tests::create_while_drop_2_threads
PASS [ 4.070s] wgpu-benchmark::bench/wgpu-benchmark naga::valid
PASS [ 0.044s] wgpu-core pool::tests::deduplication
PASS [ 0.034s] wgpu-core tests::test_gcd
PASS [ 0.035s] wgpu-core timestamp_normalization::tests::compute_timestamp_period
PASS [ 0.092s] wgpu-core registry::tests::simultaneous_registration
PASS [ 0.031s] wgpu-core track::range::test::coalesce
PASS [ 0.036s] wgpu-core track::range::test::isolate
PASS [ 0.046s] wgpu-core track::range::test::sane_empty
PASS [ 0.040s] wgpu-core track::range::test::sane_good
PASS [ 0.123s] wgpu-core tests::test_lcd
PASS [ 0.032s] wgpu-hal gles::adapter::tests::test_version_parse
PASS [ 0.037s] wgpu-hal test_default_limits
PASS [ 0.125s] wgpu-core track::range::test::sane_intersect
PASS [ 0.085s] wgpu-hal vulkan::command::check_dst_image_layout
PASS [ 0.075s] wgpu-info::bin/wgpu-info texture::test_compute_render_extent
PASS [ 0.038s] wgpu-info::bin/wgpu-info texture::test_uniqueness_in_texture_format_list
PASS [ 0.051s] wgpu-test expectations::test::matches_multiple_errors
PASS [ 0.054s] wgpu-test expectations::test::ignore_flaky
PASS [ 0.053s] wgpu-test expectations::test::multi_reason_error
PASS [ 0.039s] wgpu-test expectations::test::simple_match
PASS [ 0.380s] wgpu-test expectations::test::substring_match
PASS [ 2.168s] wgpu-test::wgpu-dependency apple_with_angle_depends_on_glow_and_renderdoc_sys
PASS [ 2.875s] wgpu-test::wgpu-dependency apple_with_gles_does_not_depend_on_glow
PASS [ 0.698s] wgpu-test::wgpu-dependency apple_with_vulkan_does_not_depend_on_ash
PASS [ 2.701s] wgpu-test::wgpu-dependency apple_with_no_features_does_not_depend_on_renderdoc_sys
PASS [ 5.685s] wgpu-test::wgpu-dependency emscripten_with_gles_depends_on_glow
PASS [ 5.552s] wgpu-test::wgpu-dependency emscripten_with_webgl_does_not_depend_on_glow
PASS [ 5.955s] wgpu-test::wgpu-dependency apple_with_vulkan_portability_depends_on_ash_and_renderdoc_sys
PASS [ 1.949s] wgpu-test::wgpu-dependency wasm32_with_only_custom_backend_does_not_depend_on_web_specifics
PASS [ 2.018s] wgpu-test::wgpu-dependency wasm32_with_webgl_backend_does_depend_on_web_specifics
PASS [ 0.651s] wgpu-test::wgpu-dependency wasm32_with_webgl_depends_on_glow
PASS [ 2.669s] wgpu-test::wgpu-dependency ppc32_does_depend_on_portable_atomic
PASS [ 1.560s] wgpu-test::wgpu-dependency wasm32_without_webgl_or_noop_does_not_depend_on_wgpu_core
PASS [ 1.658s] wgpu-test::wgpu-dependency wasm32_with_webgpu_backend_does_depend_on_web_specifics
PASS [ 2.208s] wgpu-test::wgpu-dependency wasm32_with_webgpu_and_wgsl_does_not_depend_on_naga
PASS [ 1.911s] wgpu-test::wgpu-dependency windows_with_no_features_does_not_depend_on_glow_windows_or_ash
PASS [ 12.555s] wgpu-test::wgpu-dependency windows_with_webgl_does_not_depend_on_glow
PASS [ 13.076s] wgpu-test::wgpu-dependency windows_with_no_features_depends_on_renderdoc_sys
PASS [ 0.104s] wgpu-test::wgpu-validation api::binding_arrays::dynamic_offset
PASS [ 0.087s] wgpu-test::wgpu-validation api::binding_arrays::uniform_buffer
PASS [ 0.136s] wgpu-test::wgpu-validation api::buffer::destroyed_buffer
PASS [ 0.202s] wgpu-test::wgpu-validation api::buffer_mapping::full_immutable_binding
PASS [ 0.149s] wgpu-test::wgpu-validation api::buffer_mapping::full_mut_binding
PASS [ 0.207s] wgpu-test::wgpu-validation api::buffer_mapping::not_mapped
PASS [ 0.106s] wgpu-test::wgpu-validation api::buffer_mapping::overlapping_mut_binding
PASS [ 0.212s] wgpu-test::wgpu-validation api::buffer_mapping::overlapping_ref_binding
PASS [ 0.139s] wgpu-test::wgpu-validation api::buffer_mapping::partially_mapped
PASS [ 0.112s] wgpu-test::wgpu-validation api::buffer_mapping::split_immutable_binding
PASS [ 0.178s] wgpu-test::wgpu-validation api::buffer_mapping::split_mut_binding
PASS [ 0.122s] wgpu-test::wgpu-validation api::buffer_mapping::unmap_while_visible
PASS [ 0.157s] wgpu-test::wgpu-validation api::buffer_slice::getters
PASS [ 0.094s] wgpu-test::wgpu-validation api::buffer_slice::into_buffer_binding
PASS [ 0.110s] wgpu-test::wgpu-validation api::buffer_slice::reslice_out_of_bounds
PASS [ 0.102s] wgpu-test::wgpu-validation api::buffer_slice::reslice_success
PASS [ 0.109s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_both_callbacks_fire_after_submit
PASS [ 0.104s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_deferred_map_runs_before_on_submitted_work_done
PASS [ 0.122s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_map_buffer_on_submit_defers_until_submit
PASS [ 0.119s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_map_buffer_on_submit_empty_range_panics_immediately
PASS [ 0.115s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_map_buffer_on_submit_out_of_bounds_panics_on_submit
PASS [ 0.119s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_map_buffer_on_submit_panics_if_already_mapped_on_submit
PASS [ 0.116s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_map_buffer_on_submit_panics_if_usage_invalid_on_submit
PASS [ 0.080s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_multiple_map_buffer_on_submit_callbacks_fire
PASS [ 0.120s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_multiple_on_submitted_callbacks_fire
PASS [ 0.285s] wgpu-test::wgpu-validation api::command_buffer_actions::encoder_on_submitted_work_done_defers_until_submit
PASS [ 0.111s] wgpu-test::wgpu-validation api::device::recursive_uncaptured_error
PASS [ 14.994s] wgpu-test::wgpu-dependency windows_with_webgpu_webgl_backend_does_not_depend_on_web_specifics
PASS [ 0.103s] wgpu-test::wgpu-validation api::encoding::as_hal
PASS [ 0.100s] wgpu-test::wgpu-validation api::encoding::encoding_error_contains_label_of_encoder
PASS [ 0.112s] wgpu-test::wgpu-validation api::encoding::mix_apis_hal_then_wgpu
PASS [ 0.114s] wgpu-test::wgpu-validation api::encoding::mix_apis_wgpu_then_hal
PASS [ 0.107s] wgpu-test::wgpu-validation api::experimental::request_experimental_features
PASS [ 0.045s] wgpu-test::wgpu-validation api::experimental::request_multiple_experimental_features_when_not_enabled
PASS [ 0.055s] wgpu-test::wgpu-validation api::experimental::request_experimental_features_when_not_enabled
PASS [ 0.104s] wgpu-test::wgpu-validation api::experimental::request_no_experimental_features
PASS [ 0.152s] wgpu-test::wgpu-validation api::external_texture::create_external_texture
PASS [ 0.099s] wgpu-test::wgpu-validation api::external_texture::destroyed_external_texture_plane
PASS [ 0.118s] wgpu-test::wgpu-validation api::external_texture::external_texture_binding
PASS [ 0.116s] wgpu-test::wgpu-validation api::external_texture::external_texture_binding_texture_view
FAIL [ 0.070s] wgpu-test::wgpu-validation api::instance::multi_instance::multi_instance
stdout ───
running 1 test
test api::instance::multi_instance::multi_instance ... FAILED
failures:
failures:
api::instance::multi_instance::multi_instance
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 61 filtered out; finished in 0.03s
stderr ───
thread 'api::instance::multi_instance::multi_instance' (480) panicked at tests/tests/wgpu-validation/api/instance.rs:13:18:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
PASS [ 0.042s] wgpu-test::wgpu-validation api::instance::request_adapter_error::no_compiled_support
PASS [ 0.102s] wgpu-test::wgpu-validation api::instance::request_adapter_error::no_backends_requested
PASS [ 0.060s] wgpu-test::wgpu-validation api::instance::request_adapter_error::noop_not_enabled
PASS [ 5.017s] wgpu-test::wgpu-dependency x86_64_does_not_depend_on_portable_atomic
PASS [ 0.115s] wgpu-test::wgpu-validation api::render_pipeline::reject_fragment_shader_output_over_max_color_attachments
PASS [ 0.116s] wgpu-test::wgpu-validation api::texture::copy_buffer_to_texture_forbidden_format_aspect
PASS [ 0.211s] wgpu-test::wgpu-validation api::texture::copy_buffer_to_texture_forbidden_format
PASS [ 0.166s] wgpu-test::wgpu-validation api::texture::destroyed_texture
PASS [ 0.166s] wgpu-test::wgpu-validation api::texture::copy_texture_to_buffer_forbidden_format_aspect
PASS [ 0.100s] wgpu-test::wgpu-validation api::texture::planar_texture_bad_size
PASS [ 0.091s] wgpu-test::wgpu-validation api::texture::planar_texture_bad_view_format
PASS [ 0.243s] wgpu-test::wgpu-validation api::texture::non_planar_texture_view_plane
PASS [ 0.087s] wgpu-test::wgpu-validation api::texture::planar_texture_render_attachment_unsupported
PASS [ 0.188s] wgpu-test::wgpu-validation api::texture::planar_texture_render_attachment
PASS [ 0.093s] wgpu-test::wgpu-validation api::texture::planar_texture_view_plane
PASS [ 0.651s] wgpu-test::wgpu-validation api::texture::copy_texture_to_buffer_forbidden_format
PASS [ 0.100s] wgpu-test::wgpu-validation api::texture::planar_texture_view_plane_out_of_bounds
PASS [ 0.112s] wgpu-test::wgpu-validation api::texture::transient_invalid_storeop
PASS [ 0.090s] wgpu-test::wgpu-validation noop::device_and_buffers
PASS [ 0.047s] wgpu-test::wgpu-validation noop::device_is_available_when_requested
PASS [ 0.050s] wgpu-test::wgpu-validation noop::device_is_not_available_by_default
PASS [ 0.029s] wgpu-types features::tests::check_features_bits
PASS [ 0.031s] wgpu-types features::tests::check_features_display
PASS [ 0.033s] wgpu-types features::tests::check_hex
PASS [ 0.035s] wgpu-types features::tests::create_features_from_parts
PASS [ 0.202s] wgpu-test::wgpu-validation util::staging_belt_random_test
PASS [ 0.036s] wgpu-types features::tests::experimental_features_part_of_experimental_mask
PASS [ 0.030s] wgpu-types test_physical_size
PASS [ 0.037s] wgpu-types test_max_mips
PASS [ 0.030s] wgpu-types texture_format_deserialize
PASS [ 0.031s] wgpu-types texture_format_serialize
PASS [ 0.033s] wgpu-types transfers::tests::linear_texture_data_1d_copy
PASS [ 0.035s] wgpu-types transfers::tests::linear_texture_data_2d_3d_compressed_copy
PASS [ 0.031s] wgpu-types transfers::tests::linear_texture_data_2d_3d_copy
PASS [ 0.034s] wgpu-xtask::bin/wgpu-xtask changelog::test_hunks_in_a_released_section::all_reject_and_not_reject_cases_at_once
PASS [ 0.036s] wgpu-xtask::bin/wgpu-xtask changelog::test_hunks_in_a_released_section::change_above_unreleased_not_rejected
PASS [ 0.036s] wgpu-xtask::bin/wgpu-xtask changelog::test_hunks_in_a_released_section::change_in_a_release_section_rejects
PASS [ 0.036s] wgpu-xtask::bin/wgpu-xtask changelog::test_hunks_in_a_released_section::change_in_unreleased_not_rejected
PASS [ 0.034s] wgpu-xtask::bin/wgpu-xtask changelog::test_hunks_in_a_released_section::rejection_ranges
PASS [ 0.034s] wgpu-xtask::bin/wgpu-xtask changelog::test_split_prefix_inclusive::it_works
PASS [ 0.055s] wgpu-xtask::bin/wgpu-xtask util::test_git_version_parsing
PASS [ 0.649s] wgpu-test::wgpu-validation api::texture::transient_invalid_usage
PASS [ 147.726s] wgpu-test::wgpu-compile compile_fail
────────────
Summary [ 147.752s] 459 tests run: 453 passed, 6 failed, 0 skipped
FAIL [ 0.101s] naga::naga snapshots::convert_snapshots_spv
FAIL [ 0.371s] wgpu-benchmark::bench/wgpu-benchmark Computepass Encoding
FAIL [ 0.382s] wgpu-benchmark::bench/wgpu-benchmark Device::create_bind_group
FAIL [ 0.344s] wgpu-benchmark::bench/wgpu-benchmark Device::create_buffer
FAIL [ 0.350s] wgpu-benchmark::bench/wgpu-benchmark Renderpass Encoding
FAIL [ 0.070s] wgpu-test::wgpu-validation api::instance::multi_instance::multi_instance
error: test run failed
Error: Tests failed
Caused by:
command exited with non-zero code `cargo nextest run --benches --tests --all-features`: 100
At least in theory none of the tests should be failing as they are automatically gated on the features available on each device. Benchmarks and the pretty new multi_instance are probably just missing some kind of feature restriction, haven't looked at the output. Had a brief look at multi_instance output and it looks kinda weird:
thread 'api::instance::multi_instance::multi_instance' (480) panicked at tests/tests/wgpu-validation/api/instance.rs:13:18:
called `Result::unwrap()` on an `Err` value: NotFound { active_backends: Backends(0x0), requested_backends: Backends(NOOP | VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU), supported_backends: Backends(NOOP), no_fallback_backends: Backends(0x0), no_adapter_backends: Backends(0x0), incompatible_surface_backends: Backends(0x0) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Sound like only NOOP was supported? That would be a problem, we expect GL at least. But maybe that's just what happens when test requirements are misconfigured, worth a look
convert_snapshots_spv failed reporting that there's no Vulkan SDK, so we can probably ignore that.
All that said, unless you figure something out how we can run tests on CI for netbsd, we'd add netbsd only as "tier 2" platform on ci (just like freebsd), which implies compiling only.
I don't see OpenBSD in wgpu/.github/workflows/ci.yml, only FreeBSD.
platforms are oriented around Rust toolchains and it doesn't seem there is an active dedicated openbsd toolchain, see https://rust-lang.github.io/rustup-components-history/
@Wumpf I get this one failing, as said, we don't have Vulkan
FAIL [ 0.101s] naga::naga snapshots::convert_snapshots_spv
stdout ───
running 1 test
Assembling '8151-barrier-reorder.spvasm'
test snapshots::convert_snapshots_spv ... FAILED
failures:
failures:
snapshots::convert_snapshots_spv
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.05s
stderr ───
thread 'snapshots::convert_snapshots_spv' (21142) panicked at naga/tests/naga/snapshots.rs:427:14:
Failed to execute spirv-as. It can be installed by installing the Vulkan SDK and adding it to your path.: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
But the others ... ? We do have OpenGL in the base OS.
~> uname -a
NetBSD mybox 11.99.4 NetBSD 11.99.4 (GENERIC) #0: Fri Nov 21 21:46:20 UTC 2025 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC amd64
~> glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2) (0xa16)
Version: 21.3.7
Accelerated: yes
Video memory: 1536MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.5
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.3.7
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.0 Mesa 21.3.7
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 21.3.7
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
See also the output of glxinfo -l here
Although, it's in /usr/X11R7/include. I wonder if I need to add this path to ~/.cargo/config.toml, right now I have only this
Should I give it another try with the include path?
unless you figure something out how we can run tests on CI for netbsd, we'd add netbsd only as "tier 2" platform on ci (just like freebsd), which implies compiling only.
For now, I would be fine with that.
But maybe that's just what happens when test requirements are misconfigured, worth a look
Did you find anything obvious?
@Wumpf I get this one failing, as said, we don't have Vulkan
yes, as pointed out we can ignore that. Although I think it would be good to have the test handle that better. But whatever, since we won't be able to setup up a test runner on ci anyways we can ignore it for now.
But the others ... ? We do have OpenGL in the base OS. Did you find anything obvious?
Well I don't have a NetBSD installation. I'd hope you figure it out with the pointers I've given so far ;-). Well, most almost all tests pass and while I haven't looked through the list in detail whether something was falsely filtered out that seems promising :).
As I wrote really only the multi_instance one is "interesting". Again that is a feature that afaik you won't be able to support here but the test should detect that and then not run in the first place. The rest is benchmarking and if you don't have time and energy to investigate those we can also let them slide as well, as is it doesn't look like we'll be able to run any benchmarks on this platform too.
So long story short, it would be great to check why wgpu-test::wgpu-validation api::instance::multi_instance::multi_instance is running in the first place. But otherwise we're probably good :)
@Wumpf I've tried to look at this ...
So long story short, it would be great to check why wgpu-test::wgpu-validation api::instance::multi_instance::multi_instance is running in the first place. But otherwise we're probably good :)
but the only cfg target I see in tests/tests/wgpu-validation/api/instance.rs is wasm. I'm unsure on how to proceed 😞
if you don't have time and energy to investigate those we can also let them slide as well, as is it doesn't look like we'll be able to run any benchmarks on this platform too.
I think the main issue here is not time/energy related, rather knowledge related 🤔
I'll open a PR adding basic support and hope others can build further.
@Wumpf I don't get why this clippy run only fails on NetBSD and not on other platforms.
Else, all checks are successful.
EDIT: On Void Linux, I get a different warning using Rust-1.91.1
[Tue Dec 09 20:52] pin@muslbox ~$ cd Git/
[Tue Dec 09 20:52] pin@muslbox ~/Git$ git clone https://github.com/gfx-rs/wgpu
Cloning into 'wgpu'...
remote: Enumerating objects: 110059, done.
remote: Counting objects: 100% (110/110), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 110059 (delta 68), reused 61 (delta 61), pack-reused 109949 (from 2)
Receiving objects: 100% (110059/110059), 73.66 MiB | 18.66 MiB/s, done.
Resolving deltas: 100% (80710/80710), done.
[Tue Dec 09 20:53] pin@muslbox ~/Git$ uname -a
Linux muslbox 6.12.60_1 #1 SMP PREEMPT_DYNAMIC Mon Dec 1 22:36:17 UTC 2025 x86_64 GNU/Linux
[Tue Dec 09 20:53] pin@muslbox ~/Git$ cd wgpu
[Tue Dec 09 20:53] pin@muslbox ~/Git/wgpu$ cargo clippy
[...]
warning: this lint expectation is unfulfilled
--> wgpu-core/src/resource.rs:878:59
|
878 | #[cfg_attr(not(feature = "trace"), expect(clippy::collapsible_if))]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unfulfilled_lint_expectations)]` on by default
Checking encase v0.12.0
warning: `wgpu-core` (lib) generated 1 warning
[...]
[Tue Dec 09 20:59] pin@muslbox ~/Git$ rustc -V
rustc 1.91.1 (ed61e7d7e 2025-11-07) (Void Linux)
On macOS aarch64 with Rust-1.92-beta it tries to first downgrade Rust to 1.88, so I've stopped the clippy run.
Could this simply be related to which Rust version is being used?