Fix tracy dependency versions

This commit is contained in:
Maximilian Ammann 2022-09-17 13:48:35 +02:00
parent c7f7408a10
commit 3f1e165cda
10 changed files with 25 additions and 26 deletions

View File

@ -10,7 +10,7 @@ readme = "../README.md"
[features] [features]
web-webgl = ["maplibre/web-webgl"] web-webgl = ["maplibre/web-webgl"]
trace = ["maplibre/trace", "tracing-subscriber", "tracing-tracy", "tracy-client"] trace = ["maplibre/trace"]
[dependencies] [dependencies]
env_logger = "0.9.0" env_logger = "0.9.0"
@ -19,9 +19,4 @@ maplibre-winit = { path = "../maplibre-winit", version = "0.0.1" }
tile-grid = "0.3" tile-grid = "0.3"
tracing = "0.1.35"
tracing-subscriber = { version = "0.3.14", optional = true }
tracing-tracy = { version = "0.8", optional = true }
tracy-client = { version = "0.12.7", optional = true }
clap = { version = "3.2.12", features = ["derive"] } clap = { version = "3.2.12", features = ["derive"] }

View File

@ -1,6 +1,6 @@
use maplibre::environment::DefaultTransferables; use maplibre::environment::DefaultTransferables;
use maplibre::platform::apc::SchedulerAsyncProcedureCall; use maplibre::io::apc::SchedulerAsyncProcedureCall;
use maplibre::{ use maplibre::{
platform::{http_client::ReqwestHttpClient, scheduler::TokioScheduler}, platform::{http_client::ReqwestHttpClient, scheduler::TokioScheduler},
MapBuilder, MapBuilder,

View File

@ -1,5 +1,5 @@
use maplibre::headless::HeadlessEnvironment; use maplibre::headless::HeadlessEnvironment;
use maplibre::platform::apc::SchedulerAsyncProcedureCall; use maplibre::io::apc::SchedulerAsyncProcedureCall;
use maplibre::{ use maplibre::{
coords::{LatLon, WorldTileCoords}, coords::{LatLon, WorldTileCoords},
error::Error, error::Error,

View File

@ -8,15 +8,6 @@ use crate::{headed::run_headed, headless::run_headless};
mod headed; mod headed;
mod headless; mod headless;
#[cfg(feature = "trace")]
fn enable_tracing() {
use tracing_subscriber::{layer::SubscriberExt, Registry};
let subscriber = Registry::default().with(tracing_tracy::TracyLayer::new());
tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed");
}
#[derive(Parser)] #[derive(Parser)]
#[clap(author, version, about, long_about = None)] #[clap(author, version, about, long_about = None)]
#[clap(propagate_version = true)] #[clap(propagate_version = true)]
@ -63,7 +54,7 @@ fn main() {
env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); env_logger::init_from_env(env_logger::Env::default().default_filter_or("info"));
#[cfg(feature = "trace")] #[cfg(feature = "trace")]
enable_tracing(); maplibre::platform::trace::enable_tracing();
let cli = Cli::parse(); let cli = Cli::parse();

View File

@ -14,8 +14,8 @@ use wgpu::{BufferAsyncError, BufferSlice};
use crate::environment::DefaultTransferables; use crate::environment::DefaultTransferables;
use crate::io::apc::AsyncProcedureCall; use crate::io::apc::AsyncProcedureCall;
use crate::io::apc::SchedulerAsyncProcedureCall;
use crate::io::transferables::Transferables; use crate::io::transferables::Transferables;
use crate::platform::apc::SchedulerAsyncProcedureCall;
use crate::{ use crate::{
context::{MapContext, ViewState}, context::{MapContext, ViewState},
coords::{LatLon, ViewRegion, WorldCoords, WorldTileCoords, Zoom, TILE_SIZE}, coords::{LatLon, ViewRegion, WorldCoords, WorldTileCoords, Zoom, TILE_SIZE},

View File

@ -27,13 +27,18 @@ pub enum Input {
TileRequest(TileRequest), TileRequest(TileRequest),
} }
pub trait Context<T: Transferables, HC: HttpClient>: 'static { pub trait Context<T: Transferables, HC: HttpClient>: Send + 'static {
fn send(&self, data: Message<T>); fn send(&self, data: Message<T>);
fn source_client(&self) -> &SourceClient<HC>; fn source_client(&self) -> &SourceClient<HC>;
} }
pub type AsyncProcedure<C> = fn(input: Input, context: C) -> Pin<Box<dyn Future<Output = ()>>>; #[cfg(not(feature = "no-thread-safe-futures"))]
pub type AsyncProcedureFuture = Pin<Box<(dyn Future<Output = ()> + Send + 'static)>>;
#[cfg(feature = "no-thread-safe-futures")]
pub type AsyncProcedureFuture = Pin<Box<(dyn Future<Output = ()> + 'static)>>;
pub type AsyncProcedure<C> = fn(input: Input, context: C) -> AsyncProcedureFuture;
pub trait AsyncProcedureCall<T: Transferables, HC: HttpClient>: 'static { pub trait AsyncProcedureCall<T: Transferables, HC: HttpClient>: 'static {
type Context: Context<T, HC> + Send; type Context: Context<T, HC> + Send;

View File

@ -41,10 +41,9 @@ pub mod scheduler {
pub use super::noweb::scheduler::*; pub use super::noweb::scheduler::*;
} }
/// APC for non-web targets. pub mod trace {
pub mod apc {
#[cfg(not(target_arch = "wasm32"))] #[cfg(not(target_arch = "wasm32"))]
pub use super::noweb::apc::*; pub use super::noweb::trace::*;
} }
#[cfg(not(target_arch = "wasm32"))] #[cfg(not(target_arch = "wasm32"))]

View File

@ -4,6 +4,7 @@ use std::future::Future;
pub mod http_client; pub mod http_client;
pub mod scheduler; pub mod scheduler;
pub mod trace;
pub fn run_multithreaded<F: Future>(future: F) -> F::Output { pub fn run_multithreaded<F: Future>(future: F) -> F::Output {
tokio::runtime::Builder::new_multi_thread() tokio::runtime::Builder::new_multi_thread()

View File

@ -0,0 +1,8 @@
#[cfg(feature = "trace")]
pub fn enable_tracing() {
use tracing_subscriber::{layer::SubscriberExt, Registry};
let subscriber = Registry::default().with(tracing_tracy::TracyLayer::new());
tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed");
}

View File

@ -1,7 +1,7 @@
//! Requests tiles which are currently in view //! Requests tiles which are currently in view
use crate::coords::ZoomLevel; use crate::coords::ZoomLevel;
use crate::io::apc::{AsyncProcedureCall, Context, Input}; use crate::io::apc::{AsyncProcedureCall, AsyncProcedureFuture, Context, Input};
use crate::io::pipeline::PipelineContext; use crate::io::pipeline::PipelineContext;
use crate::io::pipeline::Processable; use crate::io::pipeline::Processable;
use crate::io::tile_pipelines::build_vector_tile_pipeline; use crate::io::tile_pipelines::build_vector_tile_pipeline;
@ -72,7 +72,7 @@ impl<E: Environment> Stage for RequestStage<E> {
pub fn schedule<E: Environment, C: Context<E::Transferables, E::HttpClient>>( pub fn schedule<E: Environment, C: Context<E::Transferables, E::HttpClient>>(
input: Input, input: Input,
context: C, context: C,
) -> Pin<Box<(dyn Future<Output = ()> + 'static)>> { ) -> AsyncProcedureFuture {
// FIXME: improve input handling // FIXME: improve input handling
let input = match input { let input = match input {
Input::TileRequest(input) => Some(input), Input::TileRequest(input) => Some(input),