Skip to content

Conversation

adamgerhant
Copy link
Collaborator

@adamgerhant adamgerhant commented Sep 8, 2025

Adds the Typography data type, which is part of the Graphic enum and rendered to svg as <Text/> and rendered to Vello with draw_glyphs

TODO: Replace FontCache with NewFontCache, update Text node to output Typography

Comment on lines +26 to +42
impl serde::Serialize for Graphic {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
let default: Table<Graphic> = Table::new();
default.serialize(serializer)
}
}

impl<'de> serde::Deserialize<'de> for Graphic {
fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
Ok(Graphic::Graphic(Table::new()))
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So you just decided to not do any Serialization? Is there any reason to do this? This is a very confusing design decision and will likely lead to bugs in the future

Copy link
Collaborator Author

@adamgerhant adamgerhant Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Layout within the Typography cannot be serialized. Also its not meant to be a Tagged value, as it can only be produced at runtime by the text node. It only has this implemented since Graphic needs a tagged value for layer inputs. Similar to the wgpu::Texture.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have just successfully disabled serialization / deserialization for all Grahic data not just Typography

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graphic data can never be serialized since it should never be anything other than an empty table (There is no widget to modify it)

@TrueDoctor
Copy link
Member

Did you mean to mark this as ready for review? This pr does not seem to be finished

@Keavon Keavon changed the title New Typography type Add the new Typography type Sep 10, 2025
@Keavon Keavon changed the title Add the new Typography type Add the new Typography graphical type Sep 10, 2025
@adamgerhant
Copy link
Collaborator Author

Did you mean to mark this as ready for review? This pr does not seem to be finished

Yes, this is only for use in the native node graph overlay node. There is no user integration yet to keep the scope small.

Comment on lines +26 to +42
impl serde::Serialize for Graphic {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
let default: Table<Graphic> = Table::new();
default.serialize(serializer)
}
}

impl<'de> serde::Deserialize<'de> for Graphic {
fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
Ok(Graphic::Graphic(Table::new()))
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have just successfully disabled serialization / deserialization for all Grahic data not just Typography

Comment on lines +72 to +74
fn render_complexity(&self) -> usize {
1
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should depend on the text properties since text can be pretty perf intensive to render

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Id need to benchmark it, but given that rendering text with elements is around 100x faster than the text -> vector -> bezpath -> svg string conversion, I don't think it would be significant. Something based on the height/width could work though.

Comment on lines +64 to +69
impl PartialEq for Typography {
fn eq(&self, _other: &Self) -> bool {
true
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a dummy implementation required by TaggedValue::Graphic. It should never be called since a Graphic table should never be compared. a warn! message in here would be useful

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case Graphic should be removed from the Tagged Value enum, but this implementation is just non-sensical

// Hash the Font for a unique id and add it to the cached hash
vacant_entry.key().hash(&mut hasher);
let hash_value = hasher.finish();
self.hash = self.hash.wrapping_add(hash_value);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of performing an addition here, you should hash the font data + the previous hash value. FxHasher is very fast but not particularly collision resistant and this could cause issues. There is also the question of why you use FxHasher anyway, it can't really be for perf reasons since you do also compute the hash of the same data using the default hasher. If you were concerned about performance we should only compute the hash once and reuse it for both use cases but I can guarantee you that the perf is going to be completely irrelevant in this case so idk.
If your intent was to make sure the insertion order does not affect the hash value, that is fine in principle but should an explaining commend and a justification why this does not create collisions

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea is to create a hash key representing the unique state of all current fonts in the NewFontCache. This ensures the SNI of the tagged value input which supplies the cache is updated when the cache changes, and is also very fast/does not require hashing the entire font cache. I thought the FxHasher is the default hasher that is generally used, since its used in NodeNetwork and to calculate stable node ids.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue is that you are adding the hash codes that does not necessarily preserve the collision resistance. And FxHasher has a pretty low collision resistance to begin with so this likely amplify the issue. If you care about the position independence (and I don't think that we actually do) you could use the DefaultHasher here since it generates higher quality hashes and the amount of data we has is very small so perf should not be an issue. We only really use FxHasher if we expect to hash large amounts of data. If we cared more about collision resistance and still wanted to use FxHasher we could use a Diffie-Hellman group construction instead here by raising the generator group to the power of the hash value. But that would be a bit overkill since we don't really work in adversarial scenarios

Copy link

Performance Benchmark Results

🔧 Graph Compilation

compile_demo_art_iai::compile_group::compile_to_proto with_setup_0:load_from_name(isometric-fountain)
Instructions: 27,606,211 (master) → 27,258,461 (HEAD) : $$\color{lime}-1.26\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -0.39%
D1mr                     351,048|    345,616          -1.55%
D1mw                     108,842|    107,468          -1.26%
DLmr                      31,180|     30,548          -2.03%
DLmw                      53,536|     48,016         -10.31%
Dr                     6,824,424|  6,749,149          -1.10%
Dw                     4,778,742|  4,726,792          -1.09%
EstimatedCycles       43,824,001| 43,101,618          -1.65%
I1MissRate                     0|          0         -16.04%
I1mr                      51,991|     43,100         -17.10%
ILmr                         854|        852          -0.23%
Ir                    27,606,211| 27,258,461          -1.26%
L1HitRate                     99|         99          +0.02%
L1hits                38,697,496| 38,238,218          -1.19%
LLHitRate                      1|          1          -1.04%
LLMissRate                     0|          0          -6.05%
LLdMissRate                    1|          1          -6.23%
LLhits                   426,311|    416,768          -2.24%
LLiMissRate                    0|          0          +1.04%
RamHitRate                     0|          0          -6.05%
RamHits                   85,570|     79,416          -7.19%
TotalRW               39,209,377| 38,734,402          -1.21%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_1:load_from_name(painted-dreams)
Instructions: 13,892,786 (master) → 13,779,837 (HEAD) : $$\color{lime}-0.81\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -4.77%
D1mr                     169,496|    162,668          -4.03%
D1mw                      53,381|     47,949         -10.18%
DLmr                         680|        592         -12.94%
DLmw                      14,194|     11,713         -17.48%
Dr                     3,442,011|  3,417,193          -0.72%
Dw                     2,400,218|  2,380,050          -0.84%
EstimatedCycles       21,194,915| 20,893,378          -1.42%
I1MissRate                     0|          0         -16.89%
I1mr                      25,233|     20,800         -17.57%
ILmr                         708|        716          +1.13%
Ir                    13,892,786| 13,779,837          -0.81%
L1HitRate                     99|         99          +0.08%
L1hits                19,486,905| 19,345,663          -0.72%
LLHitRate                      1|          1          -5.32%
LLMissRate                     0|          0         -15.76%
LLdMissRate                    0|          0         -16.63%
LLhits                   232,528|    218,396          -6.08%
LLiMissRate                    0|          0          +1.96%
RamHitRate                     0|          0         -15.76%
RamHits                   15,582|     13,021         -16.44%
TotalRW               19,735,015| 19,577,080          -0.80%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_2:load_from_name(procedural-string-lights)
Instructions: 3,087,392 (master) → 3,075,250 (HEAD) : $$\color{lime}-0.39\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -0.26%
D1mr                      36,317|     36,038          -0.77%
D1mw                      10,713|     10,694          -0.18%
DLmr                          17|         16          -5.88%
DLmw                       2,925|      2,881          -1.50%
Dr                       752,769|    749,959          -0.37%
Dw                       526,591|    524,564          -0.38%
EstimatedCycles        4,685,334|  4,662,867          -0.48%
I1MissRate                     0|          0         -14.36%
I1mr                       5,368|      4,579         -14.70%
ILmr                         691|        698          +1.01%
Ir                     3,087,392|  3,075,250          -0.39%
L1HitRate                     99|         99          +0.02%
L1hits                 4,314,354|  4,298,462          -0.37%
LLHitRate                      1|          1          -1.77%
LLMissRate                     0|          0          -0.66%
LLdMissRate                    0|          0          -1.16%
LLhits                    48,765|     47,716          -2.15%
LLiMissRate                    0|          0          +1.41%
RamHitRate                     0|          0          -0.66%
RamHits                    3,633|      3,595          -1.05%
TotalRW                4,366,752|  4,349,773          -0.39%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_3:load_from_name(parametric-dunescape)
Instructions: 13,673,010 (master) → 13,599,729 (HEAD) : $$\color{lime}-0.54\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +0.10%
D1mr                     172,038|    171,342          -0.40%
D1mw                      49,536|     49,519          -0.03%
DLmr                          75|         72          -4.00%
DLmw                      10,469|     10,467          -0.02%
Dr                     3,341,806|  3,328,158          -0.41%
Dw                     2,355,999|  2,345,909          -0.43%
EstimatedCycles       20,679,271| 20,567,612          -0.54%
I1MissRate                     0|          0         -14.07%
I1mr                      20,385|     17,423         -14.53%
ILmr                         810|        817          +0.86%
Ir                    13,673,010| 13,599,729          -0.54%
L1HitRate                     99|         99          +0.01%
L1hits                19,128,856| 19,035,512          -0.49%
LLHitRate                      1|          1          -1.10%
LLMissRate                     0|          0          +0.52%
LLdMissRate                    0|          0          +0.37%
LLhits                   230,605|    226,928          -1.59%
LLiMissRate                    0|          0          +1.41%
RamHitRate                     0|          0          +0.52%
RamHits                   11,354|     11,356          +0.02%
TotalRW               19,370,815| 19,273,796          -0.50%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_4:load_from_name(red-dress)
Instructions: 32,148,310 (master) → 32,158,951 (HEAD) : $$\color{red}+0.03\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -0.53%
D1mr                     406,913|    404,957          -0.48%
D1mw                     124,318|    123,849          -0.38%
DLmr                      42,393|     42,285          -0.25%
DLmw                      49,172|     51,842          +5.43%
Dr                     7,915,216|  7,921,800          +0.08%
Dw                     5,547,424|  5,551,181          +0.07%
EstimatedCycles       50,738,670| 50,785,166          +0.09%
I1MissRate                     0|          0         -18.14%
I1mr                      57,594|     47,160         -18.12%
ILmr                         849|        852          +0.35%
Ir                    32,148,310| 32,158,951          +0.03%
L1HitRate                     99|         99          +0.03%
L1hits                45,022,125| 45,055,966          +0.08%
LLHitRate                      1|          1          -3.15%
LLMissRate                     0|          0          +2.73%
LLdMissRate                    1|          1          +2.72%
LLhits                   496,411|    480,987          -3.11%
LLiMissRate                    0|          0          +0.32%
RamHitRate                     0|          0          +2.73%
RamHits                   92,414|     94,979          +2.78%
TotalRW               45,610,950| 45,631,932          +0.05%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_5:load_from_name(valley-of-spires)
Instructions: 21,197,299 (master) → 21,106,835 (HEAD) : $$\color{lime}-0.43\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +0.03%
D1mr                     262,889|    262,108          -0.30%
D1mw                      77,642|     77,374          -0.35%
DLmr                      15,143|     15,142          -0.01%
DLmw                      33,178|     37,223         +12.19%
Dr                     5,240,732|  5,222,992          -0.34%
Dw                     3,665,749|  3,653,402          -0.34%
EstimatedCycles       33,093,980| 33,062,907          -0.09%
I1MissRate                     0|          0         -17.92%
I1mr                      38,619|     31,565         -18.27%
ILmr                         799|        818          +2.38%
Ir                    21,197,299| 21,106,835          -0.43%
L1HitRate                     99|         99          +0.02%
L1hits                29,724,630| 29,612,182          -0.38%
LLHitRate                      1|          1          -3.30%
LLMissRate                     0|          0          +8.71%
LLdMissRate                    1|          1          +8.74%
LLhits                   330,030|    317,864          -3.69%
LLiMissRate                    0|          0          +2.82%
RamHitRate                     0|          0          +8.71%
RamHits                   49,120|     53,183          +8.27%
TotalRW               30,103,780| 29,983,229          -0.40%

🔄 Executor Update

update_executor_iai::update_group::update_executor with_setup_0:setup_update_executor(isometric-fountain)
Instructions: 40,999,738 (master) → 40,749,851 (HEAD) : $$\color{lime}-0.61\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.13%
D1mr                     453,849|    449,029          -1.06%
D1mw                      99,001|     97,693          -1.32%
DLmr                       9,876|      9,330          -5.53%
DLmw                      25,995|     23,925          -7.96%
Dr                    10,414,452| 10,320,657          -0.90%
Dw                     7,021,573|  6,944,078          -1.10%
EstimatedCycles       61,802,551| 61,383,916          -0.68%
I1MissRate                     0|          0        +147.38%
I1mr                      18,112|     44,533        +145.88%
ILmr                         227|        222          -2.20%
Ir                    40,999,738| 40,749,851          -0.61%
L1HitRate                     99|         99          -0.04%
L1hits                57,864,801| 57,423,331          -0.76%
LLHitRate                      1|          1          +5.04%
LLMissRate                     0|          0          -6.59%
LLdMissRate                    0|          0          -6.37%
LLhits                   534,864|    557,778          +4.28%
LLiMissRate                    0|          0          -1.60%
RamHitRate                     0|          0          -6.59%
RamHits                   36,098|     33,477          -7.26%
TotalRW               58,435,763| 58,014,586          -0.72%

update_executor_iai::update_group::update_executor with_setup_1:setup_update_executor(painted-dreams)
Instructions: 21,585,211 (master) → 21,465,499 (HEAD) : $$\color{lime}-0.55\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +1.32%
D1mr                     232,575|    234,331          +0.76%
D1mw                      49,829|     49,604          -0.45%
DLmr                       1,143|      1,027         -10.15%
DLmw                      13,302|     12,103          -9.01%
Dr                     5,479,743|  5,442,876          -0.67%
Dw                     3,693,543|  3,660,298          -0.90%
EstimatedCycles       32,365,191| 32,202,921          -0.50%
I1MissRate                     0|          0        +163.60%
I1mr                       9,387|     24,607        +162.14%
ILmr                         206|        206          +0.00%
Ir                    21,585,211| 21,465,499          -0.55%
L1HitRate                     99|         99          -0.06%
L1hits                30,466,706| 30,260,131          -0.68%
LLHitRate                      1|          1          +7.18%
LLMissRate                     0|          0          -8.41%
LLdMissRate                    0|          0          -8.40%
LLhits                   277,140|    295,206          +6.52%
LLiMissRate                    0|          0          +0.56%
RamHitRate                     0|          0          -8.41%
RamHits                   14,651|     13,336          -8.98%
TotalRW               30,758,497| 30,568,673          -0.62%

update_executor_iai::update_group::update_executor with_setup_2:setup_update_executor(procedural-string-lights)
Instructions: 5,104,893 (master) → 4,904,044 (HEAD) : $$\color{lime}-3.93\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -2.48%
D1mr                      53,489|     49,423          -7.60%
D1mw                      12,062|     11,897          -1.37%
DLmr                           2|          3         +50.00%
DLmw                         641|        434         -32.29%
Dr                     1,290,055|  1,236,600          -4.14%
Dw                       870,014|    835,468          -3.97%
EstimatedCycles        7,566,668|  7,265,508          -3.98%
I1MissRate                     0|          0         +83.71%
I1mr                       3,538|      6,244         +76.48%
ILmr                         202|        201          -0.50%
Ir                     5,104,893|  4,904,044          -3.93%
L1HitRate                     99|         99          -0.02%
L1hits                 7,195,873|  6,908,548          -3.99%
LLHitRate                      1|          1          +2.13%
LLMissRate                     0|          0         -21.37%
LLdMissRate                    0|          0         -29.15%
LLhits                    68,244|     66,926          -1.93%
LLiMissRate                    0|          0          +3.58%
RamHitRate                     0|          0         -21.37%
RamHits                      845|        638         -24.50%
TotalRW                7,264,962|  6,976,112          -3.98%

update_executor_iai::update_group::update_executor with_setup_3:setup_update_executor(parametric-dunescape)
Instructions: 17,682,312 (master) → 17,535,363 (HEAD) : $$\color{lime}-0.83\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.57%
D1mr                     181,841|    181,367          -0.26%
D1mw                      44,239|     44,219          -0.05%
DLmr                         113|        106          -6.19%
DLmw                       6,499|      4,927         -24.19%
Dr                     4,461,175|  4,424,802          -0.82%
Dw                     3,044,088|  3,021,401          -0.75%
EstimatedCycles       26,325,283| 26,105,260          -0.84%
I1MissRate                     0|          0        +121.54%
I1mr                       7,392|     16,240        +119.70%
ILmr                         182|        180          -1.10%
Ir                    17,682,312| 17,535,363          -0.83%
L1HitRate                     99|         99          -0.04%
L1hits                24,954,103| 24,739,740          -0.86%
LLHitRate                      1|          1          +5.24%
LLMissRate                     0|          0         -22.64%
LLdMissRate                    0|          0         -23.28%
LLhits                   226,678|    236,613          +4.38%
LLiMissRate                    0|          0          -0.27%
RamHitRate                     0|          0         -22.64%
RamHits                    6,794|      5,213         -23.27%
TotalRW               25,187,575| 24,981,566          -0.82%

update_executor_iai::update_group::update_executor with_setup_4:setup_update_executor(red-dress)
Instructions: 49,436,290 (master) → 49,302,947 (HEAD) : $$\color{lime}-0.27\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.01%
D1mr                     545,703|    544,075          -0.30%
D1mw                     124,636|    124,333          -0.24%
DLmr                      18,385|     18,940          +3.02%
DLmw                      44,449|     41,240          -7.22%
Dr                    12,707,772| 12,674,796          -0.26%
Dw                     8,684,435|  8,657,364          -0.31%
EstimatedCycles       75,478,143| 75,318,063          -0.21%
I1MissRate                     0|          0        +168.31%
I1mr                      18,155|     48,581        +167.59%
ILmr                         355|        320          -9.86%
Ir                    49,436,290| 49,302,947          -0.27%
L1HitRate                     99|         99          -0.04%
L1hits                70,140,003| 69,918,118          -0.32%
LLHitRate                      1|          1          +5.27%
LLMissRate                     0|          0          -3.99%
LLdMissRate                    0|          0          -3.95%
LLhits                   625,305|    656,489          +4.99%
LLiMissRate                    0|          0          -9.62%
RamHitRate                     0|          0          -3.99%
RamHits                   63,189|     60,500          -4.26%
TotalRW               70,828,497| 70,635,107          -0.27%

update_executor_iai::update_group::update_executor with_setup_5:setup_update_executor(valley-of-spires)
Instructions: 32,673,864 (master) → 32,606,167 (HEAD) : $$\color{lime}-0.21\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.49%
D1mr                     358,519|    359,393          +0.24%
D1mw                      78,387|     78,496          +0.14%
DLmr                       5,251|      5,214          -0.70%
DLmw                      24,377|     21,281         -12.70%
Dr                     8,308,588|  8,284,262          -0.29%
Dw                     5,622,479|  5,609,991          -0.22%
EstimatedCycles       49,301,193| 49,195,686          -0.21%
I1MissRate                     0|          0        +167.29%
I1mr                      13,367|     35,655        +166.74%
ILmr                         211|        208          -1.42%
Ir                    32,673,864| 32,606,167          -0.21%
L1HitRate                     99|         99          -0.05%
L1hits                46,154,658| 46,026,876          -0.28%
LLHitRate                      1|          1          +6.52%
LLMissRate                     0|          0         -10.31%
LLdMissRate                    0|          0         -10.34%
LLhits                   420,434|    446,841          +6.28%
LLiMissRate                    0|          0          -1.22%
RamHitRate                     0|          0         -10.31%
RamHits                   29,839|     26,703         -10.51%
TotalRW               46,604,931| 46,500,420          -0.22%

🚀 Render: Cold Execution

run_once_iai::run_once_group::run_once with_setup_0:setup_run_once(isometric-fountain)
Instructions: 22,127,576 (master) → 21,528,918 (HEAD) : $$\color{lime}-2.71\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +2.74%
D1mr                     250,267|    243,572          -2.68%
D1mw                      58,115|     53,894          -7.26%
DLmr                      10,726|      9,056         -15.57%
DLmw                      19,114|     17,139         -10.33%
Dr                     5,781,229|  5,467,087          -5.43%
Dw                     3,924,906|  3,645,852          -7.11%
EstimatedCycles       34,613,079| 33,269,791          -3.88%
I1MissRate                     1|          1          +5.27%
I1mr                     122,385|    125,345          +2.42%
ILmr                       5,370|      5,028          -6.37%
Ir                    22,127,576| 21,528,918          -2.71%
L1HitRate                     99|         99          -0.03%
L1hits                31,402,944| 30,219,046          -3.77%
LLHitRate                      1|          1          +2.85%
LLMissRate                     0|          0          -7.87%
LLdMissRate                    0|          0          -6.50%
LLhits                   395,557|    391,588          -1.00%
LLiMissRate                    0|          0          -3.77%
RamHitRate                     0|          0          -7.87%
RamHits                   35,210|     31,223         -11.32%
TotalRW               31,833,711| 30,641,857          -3.74%

run_once_iai::run_once_group::run_once with_setup_1:setup_run_once(painted-dreams)
Instructions: 79,332,794 (master) → 78,500,786 (HEAD) : $$\color{lime}-1.05\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          +0.39%
D1mr                     416,269|    405,523          -2.58%
D1mw                     200,064|    193,130          -3.47%
DLmr                       5,673|      5,502          -3.01%
DLmw                      58,850|     55,204          -6.20%
Dr                    19,092,214| 18,561,205          -2.78%
Dw                    12,778,699| 12,275,594          -3.94%
EstimatedCycles      116,537,909|114,496,837          -1.75%
I1MissRate                     0|          0          +4.04%
I1mr                     176,445|    181,655          +2.95%
ILmr                       7,580|      7,228          -4.64%
Ir                    79,332,794| 78,500,786          -1.05%
L1HitRate                     99|         99          -0.00%
L1hits               110,410,929|108,557,277          -1.68%
LLHitRate                      1|          1          +0.54%
LLMissRate                     0|          0          -4.17%
LLdMissRate                    0|          0          -2.76%
LLhits                   720,675|    712,374          -1.15%
LLiMissRate                    0|          0          -3.63%
RamHitRate                     0|          0          -4.17%
RamHits                   72,103|     67,934          -5.78%
TotalRW              111,203,707|109,337,585          -1.68%

run_once_iai::run_once_group::run_once with_setup_2:setup_run_once(procedural-string-lights)
Instructions: 10,621,859 (master) → 9,766,402 (HEAD) : $$\color{lime}-8.05\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2         -14.22%
D1mr                      59,937|     42,786         -28.62%
D1mw                      22,295|     19,130         -14.20%
DLmr                         399|        303         -24.06%
DLmw                       3,516|      4,153         +18.12%
Dr                     2,571,867|  2,265,866         -11.90%
Dw                     1,834,465|  1,602,019         -12.67%
EstimatedCycles       15,788,323| 14,328,053          -9.25%
I1MissRate                     0|          0         +15.03%
I1mr                      44,936|     47,528          +5.77%
ILmr                       4,467|      4,077          -8.73%
Ir                    10,621,859|  9,766,402          -8.05%
L1HitRate                     99|         99          +0.04%
L1hits                14,901,023| 13,524,843          -9.24%
LLHitRate                      1|          1          -6.36%
LLMissRate                     0|          0         +12.21%
LLdMissRate                    0|          0         +29.66%
LLhits                   118,786|    100,911         -15.05%
LLiMissRate                    0|          0          -0.74%
RamHitRate                     0|          0         +12.21%
RamHits                    8,382|      8,533          +1.80%
TotalRW               15,028,191| 13,634,287          -9.28%

run_once_iai::run_once_group::run_once with_setup_3:setup_run_once(parametric-dunescape)
Instructions: 22,647,527 (master) → 22,279,364 (HEAD) : $$\color{lime}-1.63\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          -0.86%
D1mr                     126,880|    117,621          -7.30%
D1mw                      60,501|     54,053         -10.66%
DLmr                       1,629|      1,470          -9.76%
DLmw                      16,309|     11,331         -30.52%
Dr                     5,349,257|  5,019,715          -6.16%
Dw                     3,588,411|  3,239,893          -9.71%
EstimatedCycles       33,229,539| 31,947,586          -3.86%
I1MissRate                     0|          0          -1.71%
I1mr                      61,315|     59,287          -3.31%
ILmr                       3,714|      3,358          -9.59%
Ir                    22,647,527| 22,279,364          -1.63%
L1HitRate                     99|         99          +0.03%
L1hits                31,336,499| 30,308,011          -3.28%
LLHitRate                      1|          1          -2.15%
LLMissRate                     0|          0         -22.81%
LLdMissRate                    0|          0         -22.78%
LLhits                   227,044|    214,802          -5.39%
LLiMissRate                    0|          0          -8.09%
RamHitRate                     0|          0         -22.81%
RamHits                   21,652|     16,159         -25.37%
TotalRW               31,585,195| 30,538,972          -3.31%

run_once_iai::run_once_group::run_once with_setup_4:setup_run_once(red-dress)
Instructions: 1,807,734,637 (master) → 1,799,181,494 (HEAD) : $$\color{lime}-0.47\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     0|          0          -5.41%
D1mr                   1,786,442|  1,711,804          -4.18%
D1mw                     863,909|    785,609          -9.06%
DLmr                     441,661|    384,442         -12.96%
DLmw                     571,034|    504,055         -11.73%
Dr                   427,180,978|425,395,140          -0.42%
Dw                   278,127,538|277,196,683          -0.33%
EstimatedCycles      2,558,724,941|2,543,480,765          -0.60%
I1MissRate                     0|          0          +8.83%
I1mr                   1,132,996|  1,227,209          +8.32%
ILmr                       5,585|      5,135          -8.06%
Ir                   1,807,734,637|1,799,181,494          -0.47%
L1HitRate                    100|        100          +0.00%
L1hits               2,509,259,806|2,498,048,695          -0.45%
LLHitRate                      0|          0          +2.85%
LLMissRate                     0|          0         -11.85%
LLdMissRate                    0|          0         -11.92%
LLhits                 2,765,067|  2,830,990          +2.38%
LLiMissRate                    0|          0          -7.62%
RamHitRate                     0|          0         -11.85%
RamHits                1,018,280|    893,632         -12.24%
TotalRW              2,513,043,153|2,501,773,317          -0.45%

run_once_iai::run_once_group::run_once with_setup_5:setup_run_once(valley-of-spires)
Instructions: 20,575,111 (master) → 19,768,177 (HEAD) : $$\color{lime}-3.92\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +2.70%
D1mr                     207,841|    198,665          -4.41%
D1mw                      52,591|     46,152         -12.24%
DLmr                       6,008|      5,689          -5.31%
DLmw                      16,403|     13,753         -16.16%
Dr                     5,188,252|  4,797,126          -7.54%
Dw                     3,507,772|  3,162,578          -9.84%
EstimatedCycles       31,491,787| 29,795,593          -5.39%
I1MissRate                     0|          1          +6.53%
I1mr                      99,641|    101,981          +2.35%
ILmr                       3,601|      3,242          -9.97%
Ir                    20,575,111| 19,768,177          -3.92%
L1HitRate                     99|         99          -0.02%
L1hits                28,911,062| 27,381,083          -5.29%
LLHitRate                      1|          1          +2.42%
LLMissRate                     0|          0          -7.94%
LLdMissRate                    0|          0          -5.22%
LLhits                   334,061|    324,114          -2.98%
LLiMissRate                    0|          0          -6.29%
RamHitRate                     0|          0          -7.94%
RamHits                   26,012|     22,684         -12.79%
TotalRW               29,271,135| 27,727,881          -5.27%

⚡ Render: Cached Execution

run_cached_iai::run_cached_group::run_cached with_setup_0:setup_run_cached(isometric-fountain)
Instructions: 7,526,281 (master) → 16,207,263 (HEAD) : $$\color{red}+115.34\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          3         -35.26%
D1mr                     175,046|    199,978         +14.24%
D1mw                       7,448|     17,206        +131.02%
DLmr                       3,692|      2,298         -37.76%
DLmw                         395|        581         +47.09%
Dr                     2,327,296|  4,118,786         +76.98%
Dw                     1,374,637|  2,686,328         +95.42%
EstimatedCycles       12,089,558| 24,127,373         +99.57%
I1MissRate                     0|          0       +2143.72%
I1mr                         802|     38,750       +4731.67%
ILmr                         185|        163         -11.89%
Ir                     7,526,281| 16,207,263        +115.34%
L1HitRate                     98|         99          +0.53%
L1hits                11,044,918| 22,756,443        +106.04%
LLHitRate                      2|          1         -31.08%
LLMissRate                     0|          0         -65.26%
LLdMissRate                    0|          0         -61.68%
LLhits                   179,024|    252,892         +41.26%
LLiMissRate                    0|          0         -59.08%
RamHitRate                     0|          0         -65.26%
RamHits                    4,272|      3,042         -28.79%
TotalRW               11,228,214| 23,012,377        +104.95%

run_cached_iai::run_cached_group::run_cached with_setup_1:setup_run_cached(painted-dreams)
Instructions: 5,830,772 (master) → 21,841,139 (HEAD) : $$\color{red}+274.58\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          2         -48.30%
D1mr                     122,999|    165,378         +34.45%
D1mw                       8,962|     28,094        +213.48%
DLmr                       1,754|      1,627          -7.24%
DLmw                          42|         82         +95.24%
Dr                     1,911,669|  5,240,414        +174.13%
Dw                     1,187,623|  3,548,296        +198.77%
EstimatedCycles        9,520,834| 31,706,911        +233.03%
I1MissRate                     0|          0       +1925.54%
I1mr                         814|     61,761       +7487.35%
ILmr                         193|        162         -16.06%
Ir                     5,830,772| 21,841,139        +274.58%
L1HitRate                     99|         99          +0.66%
L1hits                 8,797,289| 30,374,616        +245.27%
LLHitRate                      1|          1         -43.52%
LLMissRate                     0|          0         -72.57%
LLdMissRate                    0|          0         -66.44%
LLhits                   130,786|    253,362         +93.72%
LLiMissRate                    0|          0         -77.59%
RamHitRate                     0|          0         -72.57%
RamHits                    1,989|      1,871          -5.93%
TotalRW                8,930,064| 30,629,849        +243.00%

run_cached_iai::run_cached_group::run_cached with_setup_2:setup_run_cached(procedural-string-lights)
Instructions: 1,617,497 (master) → 7,860,394 (HEAD) : $$\color{red}+385.96\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          1         -63.71%
D1mr                      29,969|     32,551          +8.62%
D1mw                       3,708|      8,784        +136.89%
DLmr                           7|         10         +42.86%
DLmw                           9|        194       +2055.56%
Dr                       557,896|  1,825,370        +227.19%
Dw                       364,520|  1,294,268        +255.06%
EstimatedCycles        2,683,439| 11,293,126        +320.85%
I1MissRate                     0|          0        +779.46%
I1mr                         802|     34,276       +4173.82%
ILmr                         171|        151         -11.70%
Ir                     1,617,497|  7,860,394        +385.96%
L1HitRate                     99|         99          +0.68%
L1hits                 2,505,434| 10,904,421        +335.23%
LLHitRate                      1|          1         -49.24%
LLMissRate                     0|          0         -56.09%
LLdMissRate                    0|          0        +276.99%
LLhits                    34,292|     75,256        +119.46%
LLiMissRate                    0|          0         -81.83%
RamHitRate                     0|          0         -56.09%
RamHits                      187|        355         +89.84%
TotalRW                2,539,913| 10,980,032        +332.30%

run_cached_iai::run_cached_group::run_cached with_setup_3:setup_run_cached(parametric-dunescape)
Instructions: 3,082,174 (master) → 13,651,046 (HEAD) : $$\color{red}+342.90\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          2         -51.17%
D1mr                      67,917|     82,397         +21.32%
D1mw                       7,590|     19,636        +158.71%
DLmr                          24|         34         +41.67%
DLmw                         132|        435        +229.55%
Dr                     1,099,327|  3,026,922        +175.34%
Dw                       737,079|  2,055,591        +178.88%
EstimatedCycles        5,232,706| 19,194,879        +266.83%
I1MissRate                     0|          0        +161.61%
I1mr                         767|      8,887       +1058.67%
ILmr                         145|        119         -17.93%
Ir                     3,082,174| 13,651,046        +342.90%
L1HitRate                     98|         99          +0.97%
L1hits                 4,842,306| 18,622,639        +284.58%
LLHitRate                      2|          1         -61.87%
LLMissRate                     0|          0         -48.71%
LLdMissRate                    0|          0          +8.63%
LLhits                    75,973|    110,332         +45.23%
LLiMissRate                    0|          0         -81.47%
RamHitRate                     0|          0         -48.71%
RamHits                      301|        588         +95.35%
TotalRW                4,918,580| 18,733,559        +280.87%

run_cached_iai::run_cached_group::run_cached with_setup_4:setup_run_cached(red-dress)
Instructions: 34,073,856 (master) → 247,237,375 (HEAD) : $$\color{red}+625.59\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          1         -73.61%
D1mr                     631,625|  1,046,982         +65.76%
D1mw                      98,997|    225,866        +128.15%
DLmr                     291,608|    379,781         +30.24%
DLmw                      55,599|    144,612        +160.10%
Dr                     9,719,948| 57,532,785        +491.90%
Dw                     5,222,620| 41,095,284        +686.87%
EstimatedCycles       62,384,366|370,884,624        +494.52%
I1MissRate                     0|          0      +16180.69%
I1mr                         876|  1,034,832     +118031.51%
ILmr                         858|      1,889        +120.16%
Ir                    34,073,856|247,237,375        +625.59%
L1HitRate                     99|         99          +0.84%
L1hits                48,284,926|343,557,764        +611.52%
LLHitRate                      1|          1         -34.16%
LLMissRate                     1|          0         -78.57%
LLdMissRate                    2|          1         -77.12%
LLhits                   383,433|  1,781,398        +364.59%
LLiMissRate                    0|          0         -69.66%
RamHitRate                     1|          0         -78.57%
RamHits                  348,065|    526,282         +51.20%
TotalRW               49,016,424|345,865,444        +605.61%

run_cached_iai::run_cached_group::run_cached with_setup_5:setup_run_cached(valley-of-spires)
Instructions: 6,079,399 (master) → 15,386,153 (HEAD) : $$\color{red}+153.09\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          3         -40.70%
D1mr                     143,735|    164,576         +14.50%
D1mw                       7,614|     16,990        +123.14%
DLmr                         398|        303         -23.87%
DLmw                         400|        695         +73.75%
Dr                     1,896,574|  3,719,517         +96.12%
Dw                     1,132,958|  2,409,007        +112.63%
EstimatedCycles        9,746,881| 22,405,855        +129.88%
I1MissRate                     0|          0       +1516.52%
I1mr                         796|     32,566       +3991.21%
ILmr                         181|        157         -13.26%
Ir                     6,079,399| 15,386,153        +153.09%
L1HitRate                     98|         99          +0.69%
L1hits                 8,956,786| 21,300,545        +137.81%
LLHitRate                      2|          1         -40.35%
LLMissRate                     0|          0         -50.05%
LLdMissRate                    0|          0         -38.18%
LLhits                   151,166|    212,977         +40.89%
LLiMissRate                    0|          0         -65.73%
RamHitRate                     0|          0         -50.05%
RamHits                      979|      1,155         +17.98%
TotalRW                9,108,931| 21,514,677        +136.19%

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

Successfully merging this pull request may close these issues.

2 participants