Closed
Description
Code
//- card.rs
/// A simple wrapper for a device node.
#[derive(Debug)]
pub struct Card(std::fs::File);
/// Implementing `AsRawFd` is a prerequisite to implementing the traits found
/// in this crate. Here, we are just calling `as_raw_fd()` on the inner File.
impl std::os::unix::io::AsRawFd for Card {
fn as_raw_fd(&self) -> std::os::unix::io::RawFd {
self.0.as_raw_fd()
}
}
/// Simple helper methods for opening a `Card`.
impl Card {
pub fn open(path: &str) -> Self {
let mut options = std::fs::OpenOptions::new();
options.read(true);
options.write(true);
Card(options.open(path).unwrap())
}
}
impl drm::Device for Card {}
impl drm::control::Device for Card {}
//- main.rs
pub use drm::Device;
pub use drm::control::Device as ControlDevice;
pub use drm::control::ResourceHandle;
pub use drm::control::property::*;
pub use drm::buffer::Buffer;
//mod buffer;
mod card;
fn main() {
let gpu = card::Card::open("/dev/dri/card0");
println!("{:#?}", gpu.get_driver().unwrap());
println!("{:#?}", gpu.get_bus_id());
println!("{:#?}", gpu.authenticated());
println!("{:#?}", gpu.create_dumb_buffer((100, 100), drm::buffer::format::PixelFormat::RGB332).unwrap());
println!("{:#?}", gpu.get_bus_id());
println!("{:#?}", gpu.plane_handles());
println!("{:#?}", gpu.resource_handles());
}
//- Cargo.toml
[package]
name = "simple_login_screen"
version = "0.1.0"
authors = ["bjorn3 <[email protected]>"]
edition = "2018"
[dependencies]
drm = { git = "https://github.com/Smithay/drm-rs.git", branch = "develop" }
[patch."https://github.com/Smithay/drm-rs.git"]
drm = { path = "./drm-rs" }
./drm-rs
is a checkout of Smithay/drm-rs@8a3c6cf.
Meta
cargo clean
fixed the issue.
rustc --version --verbose
:
rustc 1.45.0-nightly (647016923 2020-04-28)
binary: rustc
commit-hash: 6470169237833d02c399568a375d9b47cbfaeccc
commit-date: 2020-04-28
host: x86_64-unknown-linux-gnu
release: 1.45.0-nightly
LLVM version: 9.0
Error output
thread 'rustc' panicked at 'failed to lookup `SourceFile` in new context', src/librustc_middle/ty/query/on_disk_cache.rs:456:17
Backtrace
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.colasdn.workers.dev-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.colasdn.workers.dev-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print_fmt
at src/libstd/sys_common/backtrace.rs:78
3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
at src/libstd/sys_common/backtrace.rs:59
4: core::fmt::write
at src/libcore/fmt/mod.rs:1069
5: std::io::Write::write_fmt
at src/libstd/io/mod.rs:1531
6: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:62
7: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:49
8: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:198
9: std::panicking::default_hook
at src/libstd/panicking.rs:218
10: rustc_driver::report_ice
11: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:481
12: rust_begin_unwind
at src/libstd/panicking.rs:385
13: core::panicking::panic_fmt
at src/libcore/panicking.rs:89
14: core::option::expect_failed
at src/libcore/option.rs:1264
15: <rustc_middle::ty::query::on_disk_cache::CacheDecoder as serialize::serialize::SpecializedDecoder<rustc_span::span_encoding::Span>>::specialized_decode
16: <(T10,T11) as serialize::serialize::Decodable>::decode
17: <rustc_middle::ty::query::on_disk_cache::CacheDecoder as serialize::serialize::SpecializedDecoder<rustc_span::span_encoding::Span>>::specialized_decode
18: serialize::serialize::Decoder::read_option
19: <rustc_middle::ty::Generics as serialize::serialize::Decodable>::decode
20: rustc_middle::ty::query::on_disk_cache::OnDiskCache::try_load_query_result
21: rustc_query_system::query::plumbing::get_query
22: rustc_typeck::variance::terms::TermsContext::add_inferreds_for_item
23: rustc_typeck::variance::terms::determine_parameters_to_be_inferred
24: rustc_typeck::variance::crate_variances
25: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
26: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
27: rustc_query_system::query::plumbing::force_query
28: rustc_middle::ty::query::force_from_dep_node
29: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
30: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
31: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_green_and_read
32: rustc_query_system::query::plumbing::ensure_query
33: rustc_data_structures::sync::par_for_each_in
34: rustc_hir::hir::Crate::par_visit_all_item_likes
35: rustc_typeck::check_crate
36: rustc_interface::passes::analysis
37: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
38: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
39: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
40: rustc_query_system::query::plumbing::get_query
41: rustc_middle::ty::context::tls::enter_global
42: rustc_interface::interface::run_compiler_in_existing_thread_pool
43: scoped_tls::ScopedKey<T>::set
44: rustc_ast::attr::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.45.0-nightly (647016923 2020-04-28) running on x86_64-unknown-linux-gnu
note: compiler flags: -C bitcode-in-rlib=no -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [generics_of] processing `<card::Card as std::fmt::Debug>::fmt`
#1 [crate_variances] computing the variances for items in this crate
#2 [analysis] running analysis passes on this crate
end of query stack