Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dun_render: Unroll triangle loops #7354

Merged
merged 2 commits into from
Aug 19, 2024
Merged

Conversation

glebm
Copy link
Collaborator

@glebm glebm commented Aug 19, 2024

Rather than relying on the compiler to do it, which doesn't always happen, we do it by hand.

Previously, very slightly different versions of the code could result in those loops not being unrolled (such as in the current master).

I've run the benchmark like this:

BASELINE=dun-benchmark
BENCHMARK=dun_render_benchmark
git checkout "$BASELINE"
tools/build_and_run_benchmark.py -B "build-reld-${BASELINE}" --no-run "$BENCHMARK"

git checkout -
tools/build_and_run_benchmark.py --no-run "$BENCHMARK"

tools/linux_reduced_cpu_variance_run.sh ~/google-benchmark/tools/compare.py -a benchmarks \
  "build-reld-${BASELINE}/${BENCHMARK}" "build-reld/${BENCHMARK}" \
  --benchmark_repetitions=10

Benchmark results from the first commit are here: https://gist.github.com/glebm/ea5378365128c4eabb25faa16be03926#file-benchmark-result-md

The FullyLit calls are ~55% faster.
The PartiallyLit calls are ~40% faster.

The Solid_FullyDark version was initially twice as slow, which is surprising. A subsequent commit adds specialized RenderTriangleUpper and RenderTriangleLower for that combination.

Benchmark results for commit 2: https://gist.github.com/glebm/768bdcd8050029dbf140de477e02cb65

Only the means:

Benchmark Time CPU Time Old Time New CPU Old CPU New
LeftTriangle, Solid, FullyLit -0.6149 -0.6149 19647 7566 19645 7565
LeftTriangle, Solid, FullyDark +0.0758 +0.0758 20828 22407 20826 22404
LeftTriangle, Solid, PartiallyLit -0.3864 -0.3864 102968 63176 102953 63168
LeftTriangle, Transparent, FullyLit -0.0967 -0.0967 103958 93902 103944 93890
LeftTriangle, Transparent, FullyDark -0.3825 -0.3825 104804 64718 104792 64711
LeftTriangle, Transparent, PartiallyLit +0.0067 +0.0067 106556 107265 106544 107254
RightTriangle, Solid, FullyLit -0.5890 -0.5890 18533 7616 18531 7616
RightTriangle, Solid, FullyDark -0.0326 -0.0326 22899 22151 22896 22149
RightTriangle, Solid, PartiallyLit -0.4104 -0.4104 107393 63315 107379 63308
RightTriangle, Transparent, FullyLit -0.1203 -0.1203 109148 96018 109133 96005
RightTriangle, Transparent, FullyDark -0.3252 -0.3252 108010 72881 107998 72872
RightTriangle, Transparent, PartiallyLit -0.0189 -0.0189 111527 109421 111512 109405
TransparentSquare, Solid, FullyLit -0.0002 -0.0002 175262 175222 175239 175199
TransparentSquare, Solid, FullyDark -0.0198 -0.0199 167571 164247 167551 164224
TransparentSquare, Solid, PartiallyLit -0.3265 -0.3266 272130 183271 272091 183235
TransparentSquare, Transparent, FullyLit -0.1282 -0.1282 254365 221761 254332 221730
TransparentSquare, Transparent, FullyDark -0.2193 -0.2193 252095 196821 252064 196795
TransparentSquare, Transparent, PartiallyLit -0.0678 -0.0678 258382 240858 258352 240832
Square, Solid, FullyLit -0.1021 -0.1021 9941 8926 9940 8925
Square, Solid, FullyDark -0.0401 -0.0401 7090 6806 7089 6805
Square, Solid, PartiallyLit -0.3984 -0.3984 210560 126676 210534 126659
Square, Transparent, FullyLit -0.0605 -0.0605 208520 195902 208488 195875
Square, Transparent, FullyDark -0.4413 -0.4413 208168 116312 208143 116298
Square, Transparent, PartiallyLit -0.0270 -0.0270 231066 224829 231034 224796
LeftTrapezoid, Solid, FullyLit -0.5303 -0.5303 5583 2622 5582 2622
LeftTrapezoid, Solid, FullyDark -0.2270 -0.2270 5304 4100 5304 4100
LeftTrapezoid, Solid, PartiallyLit -0.4018 -0.4018 53744 32152 53738 32148
LeftTrapezoid, Transparent, FullyLit -0.0796 -0.0796 53993 49694 53987 49687
LeftTrapezoid, Transparent, FullyDark -0.4080 -0.4080 53682 31782 53675 31778
LeftTrapezoid, Transparent, PartiallyLit -0.0140 -0.0140 57240 56440 57234 56431
RightTrapezoid, Solid, FullyLit -0.4681 -0.4680 4939 2627 4938 2627
RightTrapezoid, Solid, FullyDark -0.0276 -0.0276 4267 4149 4266 4148
RightTrapezoid, Solid, PartiallyLit -0.3792 -0.3792 52004 32282 51998 32278
RightTrapezoid, Transparent, FullyLit -0.0621 -0.0621 52479 49218 52472 49212
RightTrapezoid, Transparent, FullyDark -0.4268 -0.4268 52039 29826 52032 29822
RightTrapezoid, Transparent, PartiallyLit -0.0132 -0.0132 55693 54959 55686 54953
OVERALL_GEOMEAN -0.2437 -0.2437 0 0 0 0

Rather than relying on the compiler to do it, which doesn't always
happen, we do it by hand.

Previously, very slightly different versions of the code could result in
those loops not being unrolled (such as in the current master).

I've run the benchmark like this:

```bash
BASELINE=dun-benchmark
BENCHMARK=dun_render_benchmark
git checkout "$BASELINE"
tools/build_and_run_benchmark.py -B "build-reld-${BASELINE}" --no-run "$BENCHMARK"

git checkout -
tools/build_and_run_benchmark.py --no-run "$BENCHMARK"

tools/linux_reduced_cpu_variance_run.sh ~/google-benchmark/tools/compare.py -a benchmarks \
  "build-reld-${BASELINE}/${BENCHMARK}" "build-reld/${BENCHMARK}" \
  --benchmark_repetitions=10
```

Benchmark results are below.

The `FullyLit` calls are ~55% faster.
The `PartiallyLit` calls are ~40% faster.

The `FullyDark` version is twice as slow, which is surprising.
I have a separate idea about eliminating most of the `FullyDark` calls
entirely.

```
Benchmark                                                                              Time             CPU      Time Old      Time New       CPU Old       CPU New
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
DunRenderBenchmark/LeftTriangle_Solid_FullyLit_pvalue                                0.0004          0.0004      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Solid_FullyLit_mean                                 -0.5634         -0.5634        188036         82095        188014         82080
DunRenderBenchmark/LeftTriangle_Solid_FullyLit_median                               -0.5601         -0.5601        186905         82218        186884         82202
DunRenderBenchmark/LeftTriangle_Solid_FullyLit_stddev                               -0.6274         -0.6274         61414         22883         61402         22879
DunRenderBenchmark/LeftTriangle_Solid_FullyLit_cv                                   -0.1465         -0.1465             0             0             0             0
DunRenderBenchmark/LeftTriangle_Solid_FullyDark_pvalue                               0.0013          0.0013      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Solid_FullyDark_mean                                +0.9781         +0.9781        238021        470823        237988        470757
DunRenderBenchmark/LeftTriangle_Solid_FullyDark_median                              +0.9733         +0.9733        238086        469812        238050        469752
DunRenderBenchmark/LeftTriangle_Solid_FullyDark_stddev                              +0.9791         +0.9790         74987        148403         74978        148383
DunRenderBenchmark/LeftTriangle_Solid_FullyDark_cv                                  +0.0005         +0.0005             0             0             0             0
DunRenderBenchmark/LeftTriangle_Solid_PartiallyLit_pvalue                            0.0113          0.0113      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Solid_PartiallyLit_mean                             -0.3891         -0.3891        984208        601272        984080        601180
DunRenderBenchmark/LeftTriangle_Solid_PartiallyLit_median                           -0.3931         -0.3931        980791        595272        980682        595188
DunRenderBenchmark/LeftTriangle_Solid_PartiallyLit_stddev                           -0.3950         -0.3950        316631        191562        316575        191533
DunRenderBenchmark/LeftTriangle_Solid_PartiallyLit_cv                               -0.0097         -0.0096             0             0             0             0
DunRenderBenchmark/LeftTriangle_Transparent_FullyLit_pvalue                          0.6776          0.6776      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Transparent_FullyLit_mean                           -0.0802         -0.0802        995379        915591        995236        915450
DunRenderBenchmark/LeftTriangle_Transparent_FullyLit_median                         -0.0816         -0.0817        994452        913256        994299        913112
DunRenderBenchmark/LeftTriangle_Transparent_FullyLit_stddev                         -0.0916         -0.0915        319114        289898        319065        289864
DunRenderBenchmark/LeftTriangle_Transparent_FullyLit_cv                             -0.0124         -0.0123             0             0             0             0
DunRenderBenchmark/LeftTriangle_Transparent_FullyDark_pvalue                         0.0091          0.0091      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Transparent_FullyDark_mean                          -0.3875         -0.3875       1001347        613375       1001222        613282
DunRenderBenchmark/LeftTriangle_Transparent_FullyDark_median                        -0.3830         -0.3830        998801        616295        998628        616194
DunRenderBenchmark/LeftTriangle_Transparent_FullyDark_stddev                        -0.3901         -0.3901        320998        195778        320963        195747
DunRenderBenchmark/LeftTriangle_Transparent_FullyDark_cv                            -0.0043         -0.0043             0             0             0             0
DunRenderBenchmark/LeftTriangle_Transparent_PartiallyLit_pvalue                      0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTriangle_Transparent_PartiallyLit_mean                       +0.0046         +0.0046       1014824       1019541       1014707       1019386
DunRenderBenchmark/LeftTriangle_Transparent_PartiallyLit_median                     +0.0032         +0.0032       1015895       1019161       1015801       1019001
DunRenderBenchmark/LeftTriangle_Transparent_PartiallyLit_stddev                     +0.0037         +0.0036        322403        323590        322370        323538
DunRenderBenchmark/LeftTriangle_Transparent_PartiallyLit_cv                         -0.0010         -0.0010             0             0             0             0
DunRenderBenchmark/RightTriangle_Solid_FullyLit_pvalue                               0.0006          0.0006      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Solid_FullyLit_mean                                -0.5523         -0.5524        176362         78951        176340         78938
DunRenderBenchmark/RightTriangle_Solid_FullyLit_median                              -0.5514         -0.5514        175837         78875        175814         78865
DunRenderBenchmark/RightTriangle_Solid_FullyLit_stddev                              -0.5884         -0.5884         55614         22891         55607         22888
DunRenderBenchmark/RightTriangle_Solid_FullyLit_cv                                  -0.0805         -0.0805             0             0             0             0
DunRenderBenchmark/RightTriangle_Solid_FullyDark_pvalue                              0.0002          0.0002      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Solid_FullyDark_mean                               +1.9896         +1.9896        161841        483845        161819        483767
DunRenderBenchmark/RightTriangle_Solid_FullyDark_median                             +1.9924         +1.9924        161742        483991        161715        483917
DunRenderBenchmark/RightTriangle_Solid_FullyDark_stddev                             +2.0012         +2.0010         51356        154129         51351        154107
DunRenderBenchmark/RightTriangle_Solid_FullyDark_cv                                 +0.0039         +0.0038             0             0             0             0
DunRenderBenchmark/RightTriangle_Solid_PartiallyLit_pvalue                           0.0058          0.0058      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Solid_PartiallyLit_mean                            -0.4247         -0.4247       1046216        601892       1046042        601809
DunRenderBenchmark/RightTriangle_Solid_PartiallyLit_median                          -0.4249         -0.4249       1053545        605870       1053349        605785
DunRenderBenchmark/RightTriangle_Solid_PartiallyLit_stddev                          -0.4174         -0.4174        330051        192291        330001        192261
DunRenderBenchmark/RightTriangle_Solid_PartiallyLit_cv                              +0.0127         +0.0127             0             0             0             0
DunRenderBenchmark/RightTriangle_Transparent_FullyLit_pvalue                         0.3847          0.3847      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Transparent_FullyLit_mean                          -0.1217         -0.1217       1050082        922274       1049928        922136
DunRenderBenchmark/RightTriangle_Transparent_FullyLit_median                        -0.1226         -0.1226       1047556        919087       1047400        918953
DunRenderBenchmark/RightTriangle_Transparent_FullyLit_stddev                        -0.0833         -0.0833        324195        297188        324156        297143
DunRenderBenchmark/RightTriangle_Transparent_FullyLit_cv                            +0.0437         +0.0437             0             0             0             0
DunRenderBenchmark/RightTriangle_Transparent_FullyDark_pvalue                        0.0046          0.0046      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Transparent_FullyDark_mean                         -0.4253         -0.4253       1047974        602234       1047816        602137
DunRenderBenchmark/RightTriangle_Transparent_FullyDark_median                       -0.4267         -0.4267       1051985        603146       1051802        603042
DunRenderBenchmark/RightTriangle_Transparent_FullyDark_stddev                       -0.4276         -0.4276        334355        191387        334304        191363
DunRenderBenchmark/RightTriangle_Transparent_FullyDark_cv                           -0.0039         -0.0039             0             0             0             0
DunRenderBenchmark/RightTriangle_Transparent_PartiallyLit_pvalue                     0.7913          0.7913      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTriangle_Transparent_PartiallyLit_mean                      -0.0137         -0.0138       1059054       1044492       1058910       1044325
DunRenderBenchmark/RightTriangle_Transparent_PartiallyLit_median                    -0.0178         -0.0179       1058596       1039738       1058508       1039571
DunRenderBenchmark/RightTriangle_Transparent_PartiallyLit_stddev                    +0.0031         +0.0031        337359        338411        337309        338362
DunRenderBenchmark/RightTriangle_Transparent_PartiallyLit_cv                        +0.0171         +0.0171             0             0             0             0
DunRenderBenchmark/TransparentSquare_Solid_FullyLit_pvalue                           0.9097          0.9097      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Solid_FullyLit_mean                            +0.0011         +0.0012       1493697       1495394       1493444       1495169
DunRenderBenchmark/TransparentSquare_Solid_FullyLit_median                          -0.0017         -0.0017       1496838       1494238       1496604       1494029
DunRenderBenchmark/TransparentSquare_Solid_FullyLit_stddev                          +0.0021         +0.0020        530878        531975        530805        531882
DunRenderBenchmark/TransparentSquare_Solid_FullyLit_cv                              +0.0009         +0.0009             0             0             0             0
DunRenderBenchmark/TransparentSquare_Solid_FullyDark_pvalue                          0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Solid_FullyDark_mean                           -0.0204         -0.0204       1433093       1403907       1432881       1403668
DunRenderBenchmark/TransparentSquare_Solid_FullyDark_median                         -0.0183         -0.0183       1429205       1403083       1428989       1402880
DunRenderBenchmark/TransparentSquare_Solid_FullyDark_stddev                         -0.0096         -0.0097        505699        500858        505631        500743
DunRenderBenchmark/TransparentSquare_Solid_FullyDark_cv                             +0.0110         +0.0109             0             0             0             0
DunRenderBenchmark/TransparentSquare_Solid_PartiallyLit_pvalue                       0.0539          0.0539      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Solid_PartiallyLit_mean                        -0.3176         -0.3176       2382675       1626018       2382333       1625760
DunRenderBenchmark/TransparentSquare_Solid_PartiallyLit_median                      -0.3198         -0.3198       2403842       1635148       2403483       1634913
DunRenderBenchmark/TransparentSquare_Solid_PartiallyLit_stddev                      -0.3148         -0.3149        827423        566929        827319        566830
DunRenderBenchmark/TransparentSquare_Solid_PartiallyLit_cv                          +0.0040         +0.0040             0             0             0             0
DunRenderBenchmark/TransparentSquare_Transparent_FullyLit_pvalue                     0.5708          0.5708      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Transparent_FullyLit_mean                      -0.0873         -0.0873       2175867       1985983       2175589       1985685
DunRenderBenchmark/TransparentSquare_Transparent_FullyLit_median                    -0.0631         -0.0631       2157339       2021156       2157036       2020874
DunRenderBenchmark/TransparentSquare_Transparent_FullyLit_stddev                    -0.1511         -0.1511        793554        673670        793451        673555
DunRenderBenchmark/TransparentSquare_Transparent_FullyLit_cv                        -0.0699         -0.0699             0             0             0             0
DunRenderBenchmark/TransparentSquare_Transparent_FullyDark_pvalue                    0.0757          0.0757      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Transparent_FullyDark_mean                     -0.2913         -0.2913       2168904       1537149       2168665       1536932
DunRenderBenchmark/TransparentSquare_Transparent_FullyDark_median                   -0.2906         -0.2906       2169825       1539371       2169553       1539149
DunRenderBenchmark/TransparentSquare_Transparent_FullyDark_stddev                   -0.2952         -0.2952        773577        545208        773499        545150
DunRenderBenchmark/TransparentSquare_Transparent_FullyDark_cv                       -0.0055         -0.0055             0             0             0             0
DunRenderBenchmark/TransparentSquare_Transparent_PartiallyLit_pvalue                 0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/TransparentSquare_Transparent_PartiallyLit_mean                  -0.0228         -0.0227       2215243       2164785       2214801       2164528
DunRenderBenchmark/TransparentSquare_Transparent_PartiallyLit_median                -0.0105         -0.0105       2206971       2183841       2206650       2183583
DunRenderBenchmark/TransparentSquare_Transparent_PartiallyLit_stddev                -0.0493         -0.0492        794968        755773        794792        755680
DunRenderBenchmark/TransparentSquare_Transparent_PartiallyLit_cv                    -0.0271         -0.0271             0             0             0             0
DunRenderBenchmark/Square_Solid_FullyLit_pvalue                                      0.4274          0.4274      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Solid_FullyLit_mean                                       -0.1018         -0.1018        106111         95306        106093         95293
DunRenderBenchmark/Square_Solid_FullyLit_median                                     -0.1039         -0.1039        106890         95786        106879         95776
DunRenderBenchmark/Square_Solid_FullyLit_stddev                                     -0.1415         -0.1414         31405         26959         31394         26956
DunRenderBenchmark/Square_Solid_FullyLit_cv                                         -0.0442         -0.0440             0             0             0             0
DunRenderBenchmark/Square_Solid_FullyDark_pvalue                                     0.6232          0.6232      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Solid_FullyDark_mean                                      -0.0624         -0.0623         76148         71400         76137         71390
DunRenderBenchmark/Square_Solid_FullyDark_median                                    -0.0533         -0.0533         75419         71398         75409         71388
DunRenderBenchmark/Square_Solid_FullyDark_stddev                                    -0.1158         -0.1158         23287         20590         23284         20587
DunRenderBenchmark/Square_Solid_FullyDark_cv                                        -0.0570         -0.0570             0             0             0             0
DunRenderBenchmark/Square_Solid_PartiallyLit_pvalue                                  0.0140          0.0140      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Solid_PartiallyLit_mean                                   -0.4191         -0.4191       1856509       1078451       1856141       1078317
DunRenderBenchmark/Square_Solid_PartiallyLit_median                                 -0.4220         -0.4220       1865303       1078075       1864830       1077921
DunRenderBenchmark/Square_Solid_PartiallyLit_stddev                                 -0.4194         -0.4193        661581        384134        661390        384090
DunRenderBenchmark/Square_Solid_PartiallyLit_cv                                     -0.0005         -0.0004             0             0             0             0
DunRenderBenchmark/Square_Transparent_FullyLit_pvalue                                0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Transparent_FullyLit_mean                                 -0.0599         -0.0599       1777629       1671062       1777373       1670858
DunRenderBenchmark/Square_Transparent_FullyLit_median                               -0.0599         -0.0599       1777353       1670891       1777080       1670709
DunRenderBenchmark/Square_Transparent_FullyLit_stddev                               -0.0605         -0.0605        633282        594964        633184        594903
DunRenderBenchmark/Square_Transparent_FullyLit_cv                                   -0.0006         -0.0006             0             0             0             0
DunRenderBenchmark/Square_Transparent_FullyDark_pvalue                               0.0211          0.0211      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Transparent_FullyDark_mean                                -0.3763         -0.3762       1772392       1105501       1772116       1105383
DunRenderBenchmark/Square_Transparent_FullyDark_median                              -0.3766         -0.3766       1772282       1104753       1772089       1104637
DunRenderBenchmark/Square_Transparent_FullyDark_stddev                              -0.4402         -0.4402        631014        353260        630951        353231
DunRenderBenchmark/Square_Transparent_FullyDark_cv                                  -0.1025         -0.1025             0             0             0             0
DunRenderBenchmark/Square_Transparent_PartiallyLit_pvalue                            0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/Square_Transparent_PartiallyLit_mean                             -0.0272         -0.0271       1970857       1917285       1970523       1917053
DunRenderBenchmark/Square_Transparent_PartiallyLit_median                           -0.0268         -0.0267       1970258       1917452       1969801       1917178
DunRenderBenchmark/Square_Transparent_PartiallyLit_stddev                           -0.0294         -0.0293        703415        682714        703280        682642
DunRenderBenchmark/Square_Transparent_PartiallyLit_cv                               -0.0023         -0.0023             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Solid_FullyLit_pvalue                               0.0004          0.0004      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Solid_FullyLit_mean                                -0.5359         -0.5359         59253         27500         59242         27497
DunRenderBenchmark/LeftTrapezoid_Solid_FullyLit_median                              -0.5336         -0.5336         58982         27509         58975         27506
DunRenderBenchmark/LeftTrapezoid_Solid_FullyLit_stddev                              -0.5374         -0.5373         17150          7933         17144          7932
DunRenderBenchmark/LeftTrapezoid_Solid_FullyLit_cv                                  -0.0034         -0.0032             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Solid_FullyDark_pvalue                              0.0046          0.0046      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Solid_FullyDark_mean                               +0.7013         +0.7013         56973         96926         56963         96913
DunRenderBenchmark/LeftTrapezoid_Solid_FullyDark_median                             +0.6907         +0.6908         57326         96921         57317         96909
DunRenderBenchmark/LeftTrapezoid_Solid_FullyDark_stddev                             +0.8879         +0.8880         16361         30888         16358         30885
DunRenderBenchmark/LeftTrapezoid_Solid_FullyDark_cv                                 +0.1097         +0.1098             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Solid_PartiallyLit_pvalue                           0.0091          0.0091      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Solid_PartiallyLit_mean                            -0.3988         -0.3988        511666        307603        511589        307567
DunRenderBenchmark/LeftTrapezoid_Solid_PartiallyLit_median                          -0.3993         -0.3993        511913        307523        511851        307491
DunRenderBenchmark/LeftTrapezoid_Solid_PartiallyLit_stddev                          -0.3971         -0.3971        162799         98150        162774         98139
DunRenderBenchmark/LeftTrapezoid_Solid_PartiallyLit_cv                              +0.0028         +0.0029             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyLit_pvalue                         0.6232          0.6232      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyLit_mean                          -0.0820         -0.0820        514358        472170        514290        472112
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyLit_median                        -0.0821         -0.0821        514335        472090        514264        472018
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyLit_stddev                        -0.0828         -0.0828        163969        150389        163949        150372
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyLit_cv                            -0.0009         -0.0009             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyDark_pvalue                        0.0058          0.0058      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyDark_mean                         -0.4180         -0.4180        512755        298434        512692        298398
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyDark_median                       -0.4187         -0.4187        513116        298290        513049        298258
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyDark_stddev                       -0.4181         -0.4181        163460         95123        163439         95112
DunRenderBenchmark/LeftTrapezoid_Transparent_FullyDark_cv                           -0.0001         -0.0001             0             0             0             0
DunRenderBenchmark/LeftTrapezoid_Transparent_PartiallyLit_pvalue                     0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/LeftTrapezoid_Transparent_PartiallyLit_mean                      +0.0149         +0.0149        544744        552873        544676        552807
DunRenderBenchmark/LeftTrapezoid_Transparent_PartiallyLit_median                    +0.0167         +0.0167        544823        553899        544761        553834
DunRenderBenchmark/LeftTrapezoid_Transparent_PartiallyLit_stddev                    +0.0110         +0.0110        173683        175592        173672        175580
DunRenderBenchmark/LeftTrapezoid_Transparent_PartiallyLit_cv                        -0.0039         -0.0039             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Solid_FullyLit_pvalue                              0.0010          0.0010      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Solid_FullyLit_mean                               -0.4654         -0.4654         51804         27693         51798         27690
DunRenderBenchmark/RightTrapezoid_Solid_FullyLit_median                             -0.4648         -0.4648         51787         27718         51779         27713
DunRenderBenchmark/RightTrapezoid_Solid_FullyLit_stddev                             -0.4702         -0.4702         14885          7886         14884          7885
DunRenderBenchmark/RightTrapezoid_Solid_FullyLit_cv                                 -0.0090         -0.0090             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Solid_FullyDark_pvalue                             0.0002          0.0002      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Solid_FullyDark_mean                              +1.3529         +1.3529         43904        103301         43898        103287
DunRenderBenchmark/RightTrapezoid_Solid_FullyDark_median                            +1.3371         +1.3372         44199        103297         44192        103285
DunRenderBenchmark/RightTrapezoid_Solid_FullyDark_stddev                            +1.4168         +1.4167         12350         29848         12349         29843
DunRenderBenchmark/RightTrapezoid_Solid_FullyDark_cv                                +0.0272         +0.0271             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Solid_PartiallyLit_pvalue                          0.0091          0.0091      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Solid_PartiallyLit_mean                           -0.3977         -0.3977        493458        297225        493385        297188
DunRenderBenchmark/RightTrapezoid_Solid_PartiallyLit_median                         -0.3973         -0.3973        493440        297377        493364        297342
DunRenderBenchmark/RightTrapezoid_Solid_PartiallyLit_stddev                         -0.3965         -0.3965        157323         94947        157300         94934
DunRenderBenchmark/RightTrapezoid_Solid_PartiallyLit_cv                             +0.0020         +0.0020             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Transparent_FullyLit_pvalue                        0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Transparent_FullyLit_mean                         -0.0668         -0.0668        501015        467552        500947        467496
DunRenderBenchmark/RightTrapezoid_Transparent_FullyLit_median                       -0.0661         -0.0661        500672        467557        500607        467504
DunRenderBenchmark/RightTrapezoid_Transparent_FullyLit_stddev                       -0.0641         -0.0642        159233        149019        159215        148998
DunRenderBenchmark/RightTrapezoid_Transparent_FullyLit_cv                           +0.0028         +0.0028             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Transparent_FullyDark_pvalue                       0.0046          0.0046      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Transparent_FullyDark_mean                        -0.4295         -0.4295        494445        282076        494382        282043
DunRenderBenchmark/RightTrapezoid_Transparent_FullyDark_median                      -0.4300         -0.4300        494497        281875        494434        281841
DunRenderBenchmark/RightTrapezoid_Transparent_FullyDark_stddev                      -0.4287         -0.4287        157383         89911        157370         89902
DunRenderBenchmark/RightTrapezoid_Transparent_FullyDark_cv                          +0.0014         +0.0014             0             0             0             0
DunRenderBenchmark/RightTrapezoid_Transparent_PartiallyLit_pvalue                    0.7337          0.7337      U Test, Repetitions: 10 vs 10
DunRenderBenchmark/RightTrapezoid_Transparent_PartiallyLit_mean                     -0.0574         -0.0573        556031        524113        555924        524044
DunRenderBenchmark/RightTrapezoid_Transparent_PartiallyLit_median                   -0.0758         -0.0757        565940        523059        565802        522984
DunRenderBenchmark/RightTrapezoid_Transparent_PartiallyLit_stddev                   -0.1094         -0.1093        186798        166360        186758        166346
DunRenderBenchmark/RightTrapezoid_Transparent_PartiallyLit_cv                       -0.0552         -0.0551             0             0             0             0
OVERALL_GEOMEAN                                                                     -0.1671         -0.1671             0             0             0             0
```
@glebm glebm force-pushed the dun-render branch 2 times, most recently from 3e24199 to 156eafc Compare August 19, 2024 22:24
Eliminates regression in the rendering speed of such triangles.
Copy link
Member

@AJenbo AJenbo left a comment

Choose a reason for hiding this comment

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

A few surprises in this one

@AJenbo AJenbo merged commit f6c8a32 into diasurgical:master Aug 19, 2024
22 checks passed
@glebm glebm deleted the dun-render branch August 19, 2024 23:20
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