Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

59 tests failing on Dx12/Microsoft Basic Render Driver with Invalid access to memory location #5591

Closed
atlv24 opened this issue Apr 23, 2024 · 8 comments

Comments

@atlv24
Copy link
Collaborator

atlv24 commented Apr 23, 2024

Description
59 tests fail on latest trunk right now

Repro steps
Run cargo xtask test on latest trunk on windows

Expected vs observed behavior
Expected: tests pass
Observed:

     Summary [ 320.906s] 694 tests run: 634 passed (1 flaky), 59 failed, 1 timed out, 0 skipped
   FLAKY 2/3 [   0.836s] wgpu-test::wgpu-test [Executed] [Dx12/NVIDIA GeForce RTX 2070/1] wgpu_test::device::multiple_devices
 TRY 3 ABORT [   1.512s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] boids
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.955s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] bunnymark
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.180s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] conservative-raster
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.835s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] cube
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   2.026s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] cube-lines
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   2.005s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] mipmap
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.967s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] msaa-line
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.303s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] shadow
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   2.049s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] skybox
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.927s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] skybox-bc7
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.127s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] srgb-blend-linear
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.100s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] srgb-blend-srg
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.921s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] stencil-triangles
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.954s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] texture-arrays
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.712s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] texture-arrays-non-uniform
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.511s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] texture-arrays-uniform
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.501s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] water
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.923s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::hello_compute::tests::compute_1
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.065s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::hello_compute::tests::compute_2
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.437s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::hello_compute::tests::compute_overflow
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.391s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::hello_compute::tests::multithreaded_compute
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.369s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::hello_synchronization::tests::sync
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.082s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::timestamp_queries::tests::timestamps_encoder
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   2.039s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::timestamp_queries::tests::timestamps_pass_boundaries
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.972s] wgpu-examples [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_examples::timestamp_queries::tests::timestamps_passes
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
  TRY 3 FAIL [   1.821s] wgpu-test::wgpu-test [Executed Failure: BACKEND] [Vulkan/NVIDIA GeForce RTX 2070/0] wgpu_test::shader::struct_layout::uniform_input
 TRY 3 ABORT [   1.044s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bgra8unorm_storage::bgra8_unorm_storage
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.021s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bind_group_layout_dedup::bind_group_layout_deduplication
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.985s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bind_group_layout_dedup::bind_group_layout_deduplication_derived
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.037s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bind_group_layout_dedup::bind_group_layout_deduplication_with_dropped_user_handle
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.900s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bind_group_layout_dedup::derived_bgls_incompatible_with_regular_bgls
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.034s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::bind_group_layout_dedup::separate_programs_have_incompatible_derived_bgls
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.910s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::buffer::minimum_buffer_binding_size_dispatch
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.075s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::clear_texture::clear_texture_depth
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.070s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::device::different_bgl_order_bw_shader_and_api
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.025s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::mem_leaks::simple_draw_check_mem_leaks
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.296s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::nv12_texture::nv12_texture_creation_sampling
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.047s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::occlusion_query::occlusion_query
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.845s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::push_constants::partial_update
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.283s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::regression::issue_3349::multi_stage_data_binding
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.220s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::regression::issue_3457::pass_reset_vertex_buffer
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.130s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::scissor_tests::scissor_test_custom_rect
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.852s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::scissor_tests::scissor_test_empty_rect
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.892s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::scissor_tests::scissor_test_empty_rect_with_offset
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.991s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::scissor_tests::scissor_test_full_rect
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.235s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::numeric_builtins::numeric_builtins
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.105s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::push_constant_input
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.065s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::push_constant_input_int64
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.073s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::storage_input
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.963s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::storage_input_int64
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.923s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::uniform_input
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.199s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader::struct_layout::uniform_input_int64
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.884s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader_primitive_index::draw
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   0.923s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader_primitive_index::draw_indexed
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.207s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::shader_view_format::reinterpret_srgb
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.140s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::subgroup_operations::subgroup_operations
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.489s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::vertex_indices::vertex_indices
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.561s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::zero_init_texture_after_discard::discarding_depth_target_resets_texture_init_state_check_visible_on_copy_in_same_encoder
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
 TRY 3 ABORT [   1.307s] wgpu-test::wgpu-test [Executed] [Dx12/Microsoft Basic Render Driver/2] wgpu_test::zero_init_texture_after_discard::discarding_either_depth_or_stencil_aspect_test
     Message [         ] code 0xc0000005: Invalid access to memory location. (os error 998)
   TRY 3 TMT [  90.083s] wgpu-test::wgpu-test [Executed] [Vulkan/NVIDIA GeForce RTX 2070/0] wgpu_test::device::device_lifetime_check
error: test run failed
Error: Tests failed

Caused by:
    command exited with non-zero code `cargo nextest run --all-features --no-fail-fast --retries 2`: 100
error: process didn't exit successfully: `xtask\target\debug\xtask.exe test` (exit code: 1)

Extra materials
image

Platform
Windows 10
image

@atlv24
Copy link
Collaborator Author

atlv24 commented Apr 23, 2024

drop the dll from https://www.nuget.org/packages/Microsoft.Direct3D.WARP into your debug and debug/deps folder

  • cwfitzgerald

fixed the issue for me

@torokati44
Copy link
Contributor

drop the dll from https://www.nuget.org/packages/Microsoft.Direct3D.WARP into your debug and debug/deps folder

fixed the issue for me

I might be doing something wrong, but I can't get this to work:
https://github.com/ruffle-rs/ruffle/pull/16704/commits
https://github.com/ruffle-rs/ruffle/actions/runs/9503093978/job/26192722096

Should this be reopened...?

@torokati44
Copy link
Contributor

There is no amd64 folder. It's arm64.

@grovesNL
Copy link
Collaborator

Sorry I deleted my comment after double checking the newest version - confusingly there was a amd64 folder in the previous microsoft.direct3d.warp.1.0.11.nupkg

@grovesNL
Copy link
Collaborator

I'd double check that the newer DLL is actually being loaded at runtime, in case it's not finding that DLL for some reason. It might be harder to do this on CI, but tools like Process Monitor and Process Explorer are a quick way to check if you can reproduce the CI environment locally.

@torokati44
Copy link
Contributor

Is it possible that due to using cargo nextest, the DLL has to be put somewhere else to be picked up...?

@cwfitzgerald
Copy link
Member

Just in target/debug and target/debug/deps should work - nextest just calls the binaries cargo test creates. The important thing is that it is next to the binary, as that's how windows searches for DLLs.

@torokati44
Copy link
Contributor

Just in target/debug and target/debug/deps should work

We're using the ci cargo profile, but neither worked FWIW...

nextest just calls the binaries cargo test creates

Ah, right, thanks. I've also verified this since, so the DLL is where it should be. I can't easily verify that it is indeed getting picked up though - but maybe I can find a Windows VM somewhere...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants