Skip to content

Instantly share code, notes, and snippets.

View ChristopherBiscardi's full-sized avatar
💭
Building stuff

Chris Biscardi ChristopherBiscardi

💭
Building stuff
View GitHub Profile
@ChristopherBiscardi
ChristopherBiscardi / cargo-bench.txt
Created December 26, 2025 21:56
windows forte pr 40 bench
Running benches\bevy_tasks.rs (target\release\deps\bevy_tasks-bd20a9e64a1f7716.exe)
Timer precision: 100 ns
bevy_tasks fastest │ slowest │ median │ mean │ samples │ iters
╰─ overhead │ │ │ │ │
├─ bevy_tasks │ │ │ │ │
│ ├─ 100 3.099 µs │ 53.69 µs │ 5.799 µs │ 7.456 µs │ 100 │ 100
│ ├─ 1000 7.799 µs │ 23.89 µs │ 10.74 µs │ 11.4 µs │ 100 │ 100
│ ├─ 10000 58.39 µs │ 163.4 µs │ 69.09 µs │ 71.41 µs │ 100 │ 100
│ ├─ 100000 592 µs │ 1.045 ms │ 863.3 µs │ 839.6 µs │ 100 │ 100
│ ├─ 1000000 7.767 ms │ 10.24 ms │ 9.316 ms │ 9.265 ms │ 100 │ 100
@ChristopherBiscardi
ChristopherBiscardi / cargo-bench.txt
Created December 26, 2025 21:26
forte pr 40 - 6fe60dd - mac m1 max
Running benches/bevy_tasks.rs (/Users/chris/.cargo/build/14/a9a18fd32b02b8/release/deps/bevy_tasks-726478d67f5ce2d0)
Timer precision: 41 ns
bevy_tasks fastest │ slowest │ median │ mean │ samples │ iters
╰─ overhead │ │ │ │ │
├─ bevy_tasks │ │ │ │ │
│ ├─ 100 3.957 µs │ 26.91 µs │ 4.145 µs │ 4.694 µs │ 100 │ 100
│ ├─ 1000 17.54 µs │ 54.7 µs │ 27.58 µs │ 29.44 µs │ 100 │ 100
│ ├─ 10000 118.7 µs │ 250.5 µs │ 166.3 µs │ 167.1 µs │ 100 │ 100
│ ├─ 100000 1.068 ms │ 1.722 ms │ 1.393 ms │ 1.406 ms │ 100 │ 100
@ChristopherBiscardi
ChristopherBiscardi / tests.txt
Created December 1, 2025 21:43
wgpu test runs
Compiling anyhow v1.0.100
Compiling env_filter v0.1.4
Compiling xshell-macros v0.2.7
Compiling regex-lite v0.1.8
Compiling env_logger v0.11.8
Compiling xshell v0.2.7
Compiling wgpu-xtask v0.1.0 (/Users/chris/github/gfx-rs/wgpu/xtask)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.80s
Running `target/debug/wgpu-xtask test`
[INFO wgpu_xtask::test] Generating .gpuconfig file based on gpus on the system
@ChristopherBiscardi
ChristopherBiscardi / substance-to-exr-to-kxt.nu
Created October 7, 2025 02:48
Converting .exr files from Substance Designer to ktx2
def process_graph [prefix: string; target: string] {
ktx create --format R32G32B32A32_SFLOAT $'assets/raw_assets/($prefix)_base_color.exr' $'($target)/($prefix)_base_color.ktx2'
ktx create --format R32G32B32A32_SFLOAT $'assets/raw_assets/($prefix)_normal_map.exr' $'($target)/($prefix)_normal_map.ktx2'
ktx create --format R32G32B32A32_SFLOAT $'assets/raw_assets/($prefix)_metallic_roughness.exr' $'($target)/($prefix)_metallic_roughness.ktx2'
oiiotool $'assets/raw_assets/($prefix)_depth_map.exr' -chnames R -o $'($target)/($prefix)_intermediate_depth_map.exr'
ktx create --format R32_SFLOAT $'($target)/($prefix)_intermediate_depth_map.exr' $'($target)/($prefix)_depth_map.ktx2'
}
# convert the "processed_single" images into the "processed" directory
# process_graph "floor_graph" "assets/processed-single"
@ChristopherBiscardi
ChristopherBiscardi / output.txt
Last active September 15, 2025 03:36
prepass specialize calls
2025-09-15T03:33:15.025472Z INFO prepass_extension: descriptor.label=Some("prepass_pipeline")
2025-09-15T03:33:15.025493Z INFO prepass_extension: descriptor.label=Some("opaque_mesh_pipeline")
2025-09-15T03:33:15.025507Z INFO prepass_extension: descriptor.label=Some("opaque_mesh_pipeline") frag_descriptor.shader_defs=[Bool("MESH_PIPELINE", true), Bool("VERTEX_OUTPUT_INSTANCE_INDEX", true), Bool("VERTEX_POSITIONS", true), Bool("VERTEX_NORMALS", true), Bool("VERTEX_UVS", true), Bool("VERTEX_UVS_A", true), Bool("MULTISAMPLED", true), Bool("NORMAL_PREPASS", true), Bool("DEPTH_PREPASS", true), Bool("MOTION_VECTOR_PREPASS", true), Bool("VIEW_PROJECTION_PERSPECTIVE", true), Bool("TONEMAP_IN_SHADER", true), UInt("TONEMAPPING_LUT_TEXTURE_BINDING_INDEX", 18), UInt("TONEMAPPING_LUT_SAMPLER_BINDING_INDEX", 19), Bool("TONEMAP_METHOD_TONY_MC_MAPFACE", true), Bool("DEBAND_DITHER", true), Bool("MAY_DISCARD", true), Bool("SHADOW_FILTER_METHOD_GAUSSIAN", true), Int("SCREEN_SPACE_SPECULAR_TRANSMISSION_BLUR_TAPS", 8), Bool("MU
@ChristopherBiscardi
ChristopherBiscardi / components.diff
Last active September 12, 2025 23:37
Component diff bevy 0.16-0.17
diff --git a/bevy_0.16.0.json b/bevy_0.17-rc.1.json
index f2f43ab..a284c3b 100644
--- a/bevy_0.16.0.json
+++ b/bevy_0.17-rc.1.json
@@ -3,103 +3,152 @@
"bevy_animation::AnimationTarget",
"bevy_animation::graph::AnimationGraphHandle",
"bevy_animation::transition::AnimationTransitions",
+ "bevy_anti_alias::contrast_adaptive_sharpening::ContrastAdaptiveSharpening",
+ "bevy_anti_alias::contrast_adaptive_sharpening::DenoiseCas",
@ChristopherBiscardi
ChristopherBiscardi / main.rs
Created June 28, 2025 22:24
double sided, no backface culling
use std::f32::consts::PI;
use bevy::prelude::*;
fn main() -> AppExit {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, startup)
.add_systems(FixedUpdate, update)
.run()
use bevy::{prelude::*, scene::SceneInstanceReady};
fn main() -> AppExit {
App::new()
.add_plugins(DefaultPlugins)
.add_observer(
|_trigger: Trigger<SceneInstanceReady>,
mut query: Query<(
Entity,
&mut AnimationPlayer,
@ChristopherBiscardi
ChristopherBiscardi / main.rs
Created March 23, 2025 19:38
Vec3 asymmetrical serialization/deserialization
use bevy::reflect::erased_serde::__private::serde::de::DeserializeSeed;
use bevy::{
prelude::*,
reflect::{
TypeRegistry,
serde::{ReflectDeserializer, ReflectSerializer},
},
};
use serde_json::Value;
@ChristopherBiscardi
ChristopherBiscardi / fragment.wgsl
Created January 18, 2025 23:57
bevy 0.15 Custom Attribute StandardMaterial Extension Shader 360 flip
#import bevy_pbr::{
pbr_fragment::pbr_input_from_standard_material,
pbr_functions::alpha_discard,
}
#ifdef PREPASS_PIPELINE
#import bevy_pbr::{
prepass_io::{VertexOutput, FragmentOutput},
pbr_deferred_functions::deferred_output,
}