debug: Add actual profiling for rendeirng
This commit is contained in:
parent
26743d6bdc
commit
1c62d6d061
10 changed files with 184 additions and 1 deletions
137
Cargo.lock
generated
137
Cargo.lock
generated
|
|
@ -184,6 +184,15 @@ version = "0.13.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bincode"
|
||||||
|
version = "1.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bit-set"
|
name = "bit-set"
|
||||||
version = "0.5.3"
|
version = "0.5.3"
|
||||||
|
|
@ -277,6 +286,9 @@ name = "cc"
|
||||||
version = "1.0.79"
|
version = "1.0.79"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
||||||
|
dependencies = [
|
||||||
|
"jobserver",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
|
|
@ -415,6 +427,8 @@ dependencies = [
|
||||||
"log-panics",
|
"log-panics",
|
||||||
"ordered-float",
|
"ordered-float",
|
||||||
"png",
|
"png",
|
||||||
|
"puffin",
|
||||||
|
"puffin_egui",
|
||||||
"regex",
|
"regex",
|
||||||
"renderdoc",
|
"renderdoc",
|
||||||
"ron 0.7.1",
|
"ron 0.7.1",
|
||||||
|
|
@ -1663,6 +1677,7 @@ checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1721,6 +1736,15 @@ version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jobserver"
|
||||||
|
version = "0.1.26"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jpeg-decoder"
|
name = "jpeg-decoder"
|
||||||
version = "0.1.22"
|
version = "0.1.22"
|
||||||
|
|
@ -2076,6 +2100,12 @@ dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "natord"
|
||||||
|
version = "1.0.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
|
@ -2635,6 +2665,39 @@ version = "1.0.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df"
|
checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "puffin"
|
||||||
|
version = "0.14.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a7b2c7a01f569fb03e2ff1f5376537f294001447bd23ce75ca51054fcd223fe4"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"bincode",
|
||||||
|
"byteorder",
|
||||||
|
"instant",
|
||||||
|
"once_cell",
|
||||||
|
"parking_lot 0.12.1",
|
||||||
|
"ruzstd",
|
||||||
|
"serde",
|
||||||
|
"zstd",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "puffin_egui"
|
||||||
|
version = "0.19.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ba98235ecff9f174793e135d2c6860f917cc7cd419a630b9978f1ab5d6026a3c"
|
||||||
|
dependencies = [
|
||||||
|
"egui",
|
||||||
|
"indexmap",
|
||||||
|
"instant",
|
||||||
|
"natord",
|
||||||
|
"once_cell",
|
||||||
|
"puffin",
|
||||||
|
"time",
|
||||||
|
"vec1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-xml"
|
name = "quick-xml"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
|
|
@ -2992,6 +3055,17 @@ dependencies = [
|
||||||
"unicode-script",
|
"unicode-script",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ruzstd"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ffae8df4aa221781b715c27bbed0fac16b6f1e2643efb7af8a24dfc78d444493"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"thiserror",
|
||||||
|
"twox-hash",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ryu"
|
name = "ryu"
|
||||||
version = "1.0.12"
|
version = "1.0.12"
|
||||||
|
|
@ -3445,6 +3519,33 @@ dependencies = [
|
||||||
"weezl",
|
"weezl",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.3.20"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"serde",
|
||||||
|
"time-core",
|
||||||
|
"time-macros",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-core"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-macros"
|
||||||
|
version = "0.2.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
|
||||||
|
dependencies = [
|
||||||
|
"time-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tiny-skia"
|
name = "tiny-skia"
|
||||||
version = "0.6.6"
|
version = "0.6.6"
|
||||||
|
|
@ -3761,6 +3862,12 @@ version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vec1"
|
||||||
|
version = "1.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2bda7c41ca331fe9a1c278a9e7ee055f4be7f5eb1c2b72f079b4ff8b5fce9d5c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vec_map"
|
name = "vec_map"
|
||||||
version = "0.8.2"
|
version = "0.8.2"
|
||||||
|
|
@ -4483,6 +4590,36 @@ version = "0.2.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c110ba09c9b3a43edd4803d570df0da2414fed6e822e22b976a4e3ef50860701"
|
checksum = "c110ba09c9b3a43edd4803d570df0da2414fed6e822e22b976a4e3ef50860701"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zstd"
|
||||||
|
version = "0.11.2+zstd.1.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
|
||||||
|
dependencies = [
|
||||||
|
"zstd-safe",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zstd-safe"
|
||||||
|
version = "5.0.2+zstd.1.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"zstd-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zstd-sys"
|
||||||
|
version = "2.0.7+zstd.1.5.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-inflate"
|
name = "zune-inflate"
|
||||||
version = "0.2.50"
|
version = "0.2.50"
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ glow = "0.11.2"
|
||||||
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "tracing-log"] }
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "tracing-log"] }
|
||||||
tracing-journald = "0.3.0"
|
tracing-journald = "0.3.0"
|
||||||
tracing = { version = "0.1.37", features = ["max_level_debug", "release_max_level_info"] }
|
tracing = { version = "0.1.37", features = ["max_level_debug", "release_max_level_info"] }
|
||||||
|
puffin = { version = "0.14.3", optional = true }
|
||||||
|
puffin_egui = { version = "0.19.2", optional = true }
|
||||||
|
|
||||||
[dependencies.smithay]
|
[dependencies.smithay]
|
||||||
version = "0.3"
|
version = "0.3"
|
||||||
|
|
@ -54,8 +56,8 @@ optional = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["systemd"]
|
default = ["systemd"]
|
||||||
debug = ["egui", "smithay-egui", "renderdoc", "anyhow/backtrace"]
|
|
||||||
systemd = ["libsystemd"]
|
systemd = ["libsystemd"]
|
||||||
|
debug = ["egui", "smithay-egui", "renderdoc", "puffin", "puffin_egui", "anyhow/backtrace"]
|
||||||
|
|
||||||
[profile.dev]
|
[profile.dev]
|
||||||
lto = "thin"
|
lto = "thin"
|
||||||
|
|
|
||||||
|
|
@ -172,6 +172,9 @@ where
|
||||||
R: Renderer + ImportAll,
|
R: Renderer + ImportAll,
|
||||||
<R as Renderer>::TextureId: 'static,
|
<R as Renderer>::TextureId: 'static,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
if get_role(&surface) != Some("dnd_icon") {
|
if get_role(&surface) != Some("dnd_icon") {
|
||||||
warn!(
|
warn!(
|
||||||
?surface,
|
?surface,
|
||||||
|
|
@ -215,6 +218,8 @@ where
|
||||||
R: Renderer + ImportMem + ImportAll,
|
R: Renderer + ImportMem + ImportAll,
|
||||||
<R as Renderer>::TextureId: Clone + 'static,
|
<R as Renderer>::TextureId: Clone + 'static,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
// draw the cursor as relevant
|
// draw the cursor as relevant
|
||||||
// reset the cursor if the surface is no longer alive
|
// reset the cursor if the surface is no longer alive
|
||||||
let cursor_status = seat
|
let cursor_status = seat
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,9 @@ where
|
||||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||||
E: From<CursorRenderElement<R>> + From<CosmicMappedRenderElement<R>>,
|
E: From<CursorRenderElement<R>> + From<CosmicMappedRenderElement<R>>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let scale = output.current_scale().fractional_scale();
|
let scale = output.current_scale().fractional_scale();
|
||||||
let mut elements = Vec::new();
|
let mut elements = Vec::new();
|
||||||
|
|
||||||
|
|
@ -293,6 +296,9 @@ where
|
||||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||||
Source: Clone,
|
Source: Clone,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
if let Some(ref mut fps) = fps {
|
if let Some(ref mut fps) = fps {
|
||||||
fps.start();
|
fps.start();
|
||||||
#[cfg(feature = "debug")]
|
#[cfg(feature = "debug")]
|
||||||
|
|
@ -448,6 +454,8 @@ where
|
||||||
std::ptr::null(),
|
std::ptr::null(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
puffin::GlobalProfiler::lock().new_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
res
|
res
|
||||||
|
|
|
||||||
|
|
@ -648,6 +648,7 @@ impl State {
|
||||||
#[cfg(feature = "debug")]
|
#[cfg(feature = "debug")]
|
||||||
Action::Debug => {
|
Action::Debug => {
|
||||||
self.common.egui.active = !self.common.egui.active;
|
self.common.egui.active = !self.common.egui.active;
|
||||||
|
puffin::set_scopes_on(self.common.egui.active);
|
||||||
for mapped in self
|
for mapped in self
|
||||||
.common
|
.common
|
||||||
.shell
|
.shell
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,9 @@ impl FloatingLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn refresh(&mut self) {
|
pub fn refresh(&mut self) {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
self.space.refresh();
|
self.space.refresh();
|
||||||
for element in self
|
for element in self
|
||||||
.space
|
.space
|
||||||
|
|
@ -352,6 +355,9 @@ impl FloatingLayout {
|
||||||
<R as Renderer>::TextureId: 'static,
|
<R as Renderer>::TextureId: 'static,
|
||||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let output_scale = output.current_scale().fractional_scale();
|
let output_scale = output.current_scale().fractional_scale();
|
||||||
self.space
|
self.space
|
||||||
.elements_for_output(output)
|
.elements_for_output(output)
|
||||||
|
|
|
||||||
|
|
@ -896,6 +896,9 @@ impl TilingLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn refresh<'a>(&mut self) {
|
pub fn refresh<'a>(&mut self) {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let dead_windows = self
|
let dead_windows = self
|
||||||
.mapped()
|
.mapped()
|
||||||
.map(|(_, w, _)| w.clone())
|
.map(|(_, w, _)| w.clone())
|
||||||
|
|
@ -1107,6 +1110,9 @@ impl TilingLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update_space_positions(trees: &mut HashMap<OutputData, Tree<Data>>, gaps: (i32, i32)) {
|
fn update_space_positions(trees: &mut HashMap<OutputData, Tree<Data>>, gaps: (i32, i32)) {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let (outer, inner) = gaps;
|
let (outer, inner) = gaps;
|
||||||
for (output, tree) in trees
|
for (output, tree) in trees
|
||||||
.iter_mut()
|
.iter_mut()
|
||||||
|
|
@ -1306,6 +1312,9 @@ impl TilingLayout {
|
||||||
<R as Renderer>::TextureId: 'static,
|
<R as Renderer>::TextureId: 'static,
|
||||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let output_scale = output.current_scale().fractional_scale();
|
let output_scale = output.current_scale().fractional_scale();
|
||||||
|
|
||||||
if !self.trees.contains_key(output) {
|
if !self.trees.contains_key(output) {
|
||||||
|
|
|
||||||
|
|
@ -1008,6 +1008,9 @@ impl Shell {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn refresh(&mut self) {
|
pub fn refresh(&mut self) {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
self.popups.cleanup();
|
self.popups.cleanup();
|
||||||
|
|
||||||
match &mut self.workspaces {
|
match &mut self.workspaces {
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,9 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn refresh(&mut self) {
|
pub fn refresh(&mut self) {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
self.fullscreen.retain(|_, w| w.alive());
|
self.fullscreen.retain(|_, w| w.alive());
|
||||||
self.floating_layer.refresh();
|
self.floating_layer.refresh();
|
||||||
self.tiling_layer.refresh();
|
self.tiling_layer.refresh();
|
||||||
|
|
@ -443,6 +446,9 @@ impl Workspace {
|
||||||
<R as Renderer>::TextureId: 'static,
|
<R as Renderer>::TextureId: 'static,
|
||||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let mut render_elements = Vec::new();
|
let mut render_elements = Vec::new();
|
||||||
|
|
||||||
let output_scale = output.current_scale().fractional_scale();
|
let output_scale = output.current_scale().fractional_scale();
|
||||||
|
|
|
||||||
|
|
@ -561,6 +561,9 @@ where
|
||||||
DamageTrackedRendererError<R>,
|
DamageTrackedRendererError<R>,
|
||||||
>,
|
>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let mut dtr = session
|
let mut dtr = session
|
||||||
.user_data()
|
.user_data()
|
||||||
.get::<SessionDTR>()
|
.get::<SessionDTR>()
|
||||||
|
|
@ -861,6 +864,9 @@ pub fn render_window_to_buffer(
|
||||||
params: BufferParams,
|
params: BufferParams,
|
||||||
window: &CosmicSurface,
|
window: &CosmicSurface,
|
||||||
) -> Result<bool, (FailureReason, anyhow::Error)> {
|
) -> Result<bool, (FailureReason, anyhow::Error)> {
|
||||||
|
#[cfg(feature = "debug")]
|
||||||
|
puffin::profile_function!();
|
||||||
|
|
||||||
let geometry = window.geometry();
|
let geometry = window.geometry();
|
||||||
let buffer_size = buffer_dimensions(¶ms.buffer).unwrap();
|
let buffer_size = buffer_dimensions(¶ms.buffer).unwrap();
|
||||||
if buffer_size != geometry.size.to_buffer(1, Transform::Normal) {
|
if buffer_size != geometry.size.to_buffer(1, Transform::Normal) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue