@smarkusg @joerg
smarkusg seems to have understood exactly how to create complete soft-float builds. I ran the SDL benchmark on my real machine and the results are very impressive in parts.
Most of the values doubled, others even quintupled.
Newlib SDL2 Benchmark
FillRects (mode:none) ---- 130.8 frames/s
FillRects (mode:Blend) ----127.8 frames/s
Clib4Soft-Float SDL2 Benchmark
FillRects (mode:none) ---- 1326.7 frames/s
FillRects (mode:Blend) ----1290.4 frames/s
But I'm not sure exactly which SDL2 function it needs.
SDL2 Benchmark Newlib:
INFO: SDL2 renderer benchmark v. 0.7 (SDL version 2.30.5)
INFO: This tool measures the speed of various 2D drawing features
INFO: Press ESC key to quit
INFO: Parameters: width 800, height 600, renderer name '(null)', duration 1.000 s, objects 100, sleep 0
INFO: Image size 408*167
INFO: Pixel format 0x16161804 (SDL_PIXELFORMAT_RGB888)
INFO: Starting to test renderer called [compositing], flags 0xE
INFO: Points [mode: None]...1613 frames drawn in 1.001 seconds => 1612.1 frames/s
INFO: Points [mode: Blend]...1767 frames drawn in 1.000 seconds => 1766.8 frames/s
INFO: Lines [mode: None]...12 frames drawn in 1.036 seconds => 11.6 frames/s
INFO: Lines [mode: Blend]...16 frames drawn in 1.048 seconds => 15.3 frames/s
INFO: FillRects [mode: None]...346 frames drawn in 1.003 seconds => 345.1 frames/s
INFO: FillRects [mode: Blend]...145 frames drawn in 1.003 seconds => 144.5 frames/s
INFO: RenderCopy [mode: None]...4945 frames drawn in 1.000 seconds => 4944.9 frames/s
INFO: RenderCopy [mode: Blend]...4924 frames drawn in 1.000 seconds => 4923.1 frames/s
INFO: RenderCopyEx [mode: None]...4091 frames drawn in 1.000 seconds => 4090.2 frames/s
INFO: RenderCopyEx [mode: Blend]...4018 frames drawn in 1.000 seconds => 4017.9 frames/s
INFO: Color modulation [mode: None]...564 frames drawn in 1.000 seconds => 563.9 frames/s
INFO: Color modulation [mode: Blend]...525 frames drawn in 1.002 seconds => 523.9 frames/s
INFO: Alpha modulation [mode: None]...4831 frames drawn in 1.000 seconds => 4830.8 frames/s
INFO: Alpha modulation [mode: Blend]...4938 frames drawn in 1.000 seconds => 4935.6 frames/s
INFO: UpdateTexture [mode: None]...1203.3 operations/s, 328.0 megabytes/s
INFO: ReadPixels [mode: None]...541.0 operations/s, 147.4 megabytes/s
INFO: Starting to test renderer called [opengl], flags 0x2
INFO: Points [mode: None]...1509 frames drawn in 1.000 seconds => 1508.7 frames/s
INFO: Points [mode: Blend]...1507 frames drawn in 1.000 seconds => 1506.5 frames/s
INFO: Lines [mode: None]...20 frames drawn in 1.040 seconds => 19.2 frames/s
INFO: Lines [mode: Blend]...19 frames drawn in 1.013 seconds => 18.8 frames/s
INFO: FillRects [mode: None]...131 frames drawn in 1.002 seconds => 130.8 frames/s
INFO: FillRects [mode: Blend]...128 frames drawn in 1.002 seconds => 127.8 frames/s
INFO: RenderCopy [mode: None]...1750 frames drawn in 1.001 seconds => 1748.7 frames/s
INFO: RenderCopy [mode: Blend]...1756 frames drawn in 1.000 seconds => 1755.6 frames/s
INFO: RenderCopyEx [mode: None]...1737 frames drawn in 1.000 seconds => 1736.9 frames/s
INFO: RenderCopyEx [mode: Blend]...1760 frames drawn in 1.000 seconds => 1759.3 frames/s
INFO: Color modulation [mode: None]...1760 frames drawn in 1.001 seconds => 1759.0 frames/s
INFO: Color modulation [mode: Blend]...1731 frames drawn in 1.000 seconds => 1730.3 frames/s
INFO: Alpha modulation [mode: None]...1765 frames drawn in 1.000 seconds => 1764.2 frames/s
INFO: Alpha modulation [mode: Blend]...1768 frames drawn in 1.000 seconds => 1767.6 frames/s
INFO: UpdateTexture [mode: None]...158.8 operations/s, 43.3 megabytes/s
INFO: ReadPixels [mode: None]...62.8 operations/s, 17.1 megabytes/s
INFO: Starting to test renderer called [opengles2], flags 0xA
INFO: Points [mode: None]...2753 frames drawn in 1.000 seconds => 2752.5 frames/s
INFO: Points [mode: Blend]...2776 frames drawn in 1.000 seconds => 2775.4 frames/s
INFO: Lines [mode: None]...35 frames drawn in 1.010 seconds => 34.7 frames/s
INFO: Lines [mode: Blend]...38 frames drawn in 1.011 seconds => 37.6 frames/s
INFO: FillRects [mode: None]...750 frames drawn in 1.000 seconds => 749.8 frames/s
INFO: FillRects [mode: Blend]...637 frames drawn in 1.001 seconds => 636.6 frames/s
INFO: RenderCopy [mode: None]...4005 frames drawn in 1.000 seconds => 4004.3 frames/s
INFO: RenderCopy [mode: Blend]...4103 frames drawn in 1.000 seconds => 4102.7 frames/s
INFO: RenderCopyEx [mode: None]...3335 frames drawn in 1.000 seconds => 3333.5 frames/s
INFO: RenderCopyEx [mode: Blend]...3383 frames drawn in 1.000 seconds => 3382.2 frames/s
INFO: Color modulation [mode: None]...3975 frames drawn in 1.000 seconds => 3974.7 frames/s
INFO: Color modulation [mode: Blend]...4062 frames drawn in 1.000 seconds => 4061.3 frames/s
INFO: Alpha modulation [mode: None]...3966 frames drawn in 1.000 seconds => 3966.0 frames/s
INFO: Alpha modulation [mode: Blend]...4059 frames drawn in 1.000 seconds => 4058.9 frames/s
INFO: UpdateTexture [mode: None]...272.5 operations/s, 74.3 megabytes/s
INFO: ReadPixels [mode: None]...148.2 operations/s, 40.4 megabytes/s
INFO: Starting to test renderer called [software], flags 0xD
INFO: Points [mode: None]...189 frames drawn in 1.002 seconds => 188.6 frames/s
INFO: Points [mode: Blend]...189 frames drawn in 1.002 seconds => 188.7 frames/s
INFO: Lines [mode: None]...42 frames drawn in 1.006 seconds => 41.8 frames/s
INFO: Lines [mode: Blend]...37 frames drawn in 1.004 seconds => 36.8 frames/s
INFO: FillRects [mode: None]...52 frames drawn in 1.001 seconds => 52.0 frames/s
INFO: FillRects [mode: Blend]...12 frames drawn in 1.076 seconds => 11.2 frames/s
INFO: RenderCopy [mode: None]...164 frames drawn in 1.006 seconds => 163.0 frames/s
INFO: RenderCopy [mode: Blend]...132 frames drawn in 1.003 seconds => 131.6 frames/s
INFO: RenderCopyEx [mode: None]...29 frames drawn in 1.031 seconds => 28.1 frames/s
INFO: RenderCopyEx [mode: Blend]...65 frames drawn in 1.004 seconds => 64.7 frames/s
INFO: Color modulation [mode: None]...143 frames drawn in 1.003 seconds => 142.6 frames/s
INFO: Color modulation [mode: Blend]...121 frames drawn in 1.006 seconds => 120.3 frames/s
INFO: Alpha modulation [mode: None]...152 frames drawn in 1.000 seconds => 152.0 frames/s
INFO: Alpha modulation [mode: Blend]...115 frames drawn in 1.011 seconds => 113.8 frames/s
INFO: UpdateTexture [mode: None]...932.1 operations/s, 254.0 megabytes/s
INFO: ReadPixels [mode: None]...1024.7 operations/s, 279.3 megabytes/s
INFO: Bye bye
Clib4 Soft-Float SDL Benchmark
INFO: SDL2 renderer benchmark v. 0.7 (SDL version 2.30.5)
INFO: This tool measures the speed of various 2D drawing features
INFO: Press ESC key to quit
INFO: Parameters: width 800, height 600, renderer name '(null)', duration 1.000 s, objects 100, sleep 0
INFO: Image size 408*167
INFO: Pixel format 0x16161804 (SDL_PIXELFORMAT_RGB888)
INFO: Starting to test renderer called [compositing], flags 0xE
INFO: Points [mode: None]...1560 frames drawn in 1.000 seconds => 1559.5 frames/s
INFO: Points [mode: Blend]...1986 frames drawn in 1.000 seconds => 1985.8 frames/s
INFO: Lines [mode: None]...15 frames drawn in 1.058 seconds => 14.2 frames/s
INFO: Lines [mode: Blend]...20 frames drawn in 1.000 seconds => 20.0 frames/s
INFO: FillRects [mode: None]...336 frames drawn in 1.001 seconds => 335.5 frames/s
INFO: FillRects [mode: Blend]...150 frames drawn in 1.001 seconds => 149.9 frames/s
INFO: RenderCopy [mode: None]...5714 frames drawn in 1.000 seconds => 5713.6 frames/s
INFO: RenderCopy [mode: Blend]...5635 frames drawn in 1.000 seconds => 5633.9 frames/s
INFO: RenderCopyEx [mode: None]...4417 frames drawn in 1.000 seconds => 4416.4 frames/s
INFO: RenderCopyEx [mode: Blend]...4327 frames drawn in 1.000 seconds => 4326.6 frames/s
INFO: Color modulation [mode: None]...552 frames drawn in 1.001 seconds => 551.2 frames/s
INFO: Color modulation [mode: Blend]...517 frames drawn in 1.000 seconds => 516.8 frames/s
INFO: Alpha modulation [mode: None]...5522 frames drawn in 1.000 seconds => 5521.4 frames/s
INFO: Alpha modulation [mode: Blend]...5576 frames drawn in 1.000 seconds => 5575.7 frames/s
INFO: UpdateTexture [mode: None]...1372.5 operations/s, 374.1 megabytes/s
INFO: ReadPixels [mode: None]...547.7 operations/s, 149.3 megabytes/s
INFO: Starting to test renderer called [opengl], flags 0x2
INFO: Points [mode: None]...2819 frames drawn in 1.000 seconds => 2818.5 frames/s
INFO: Points [mode: Blend]...2865 frames drawn in 1.000 seconds => 2864.3 frames/s
INFO: Lines [mode: None]...42 frames drawn in 1.018 seconds => 41.2 frames/s
INFO: Lines [mode: Blend]...42 frames drawn in 1.008 seconds => 41.6 frames/s
INFO: FillRects [mode: None]...1327 frames drawn in 1.000 seconds => 1326.7 frames/s
INFO: FillRects [mode: Blend]...1291 frames drawn in 1.000 seconds => 1290.4 frames/s
INFO: RenderCopy [mode: None]...2948 frames drawn in 1.000 seconds => 2947.4 frames/s
INFO: RenderCopy [mode: Blend]...2973 frames drawn in 1.000 seconds => 2972.9 frames/s
INFO: RenderCopyEx [mode: None]...3109 frames drawn in 1.000 seconds => 3108.3 frames/s
INFO: RenderCopyEx [mode: Blend]...3016 frames drawn in 1.000 seconds => 3015.2 frames/s
INFO: Color modulation [mode: None]...3091 frames drawn in 1.000 seconds => 3090.2 frames/s
INFO: Color modulation [mode: Blend]...3078 frames drawn in 1.000 seconds => 3077.3 frames/s
INFO: Alpha modulation [mode: None]...3036 frames drawn in 1.000 seconds => 3035.3 frames/s
INFO: Alpha modulation [mode: Blend]...3030 frames drawn in 1.000 seconds => 3029.7 frames/s
INFO: UpdateTexture [mode: None]...157.7 operations/s, 43.0 megabytes/s
INFO: ReadPixels [mode: None]...63.6 operations/s, 17.3 megabytes/s
INFO: Starting to test renderer called [opengles2], flags 0xA
INFO: Points [mode: None]...3219 frames drawn in 1.000 seconds => 3218.9 frames/s
INFO: Points [mode: Blend]...3227 frames drawn in 1.000 seconds => 3226.5 frames/s
INFO: Lines [mode: None]...72 frames drawn in 1.007 seconds => 71.5 frames/s
INFO: Lines [mode: Blend]...72 frames drawn in 1.008 seconds => 71.4 frames/s
INFO: FillRects [mode: None]...894 frames drawn in 1.001 seconds => 893.5 frames/s
INFO: FillRects [mode: Blend]...704 frames drawn in 1.000 seconds => 703.8 frames/s
INFO: RenderCopy [mode: None]...4189 frames drawn in 1.000 seconds => 4188.1 frames/s
INFO: RenderCopy [mode: Blend]...4400 frames drawn in 1.000 seconds => 4399.7 frames/s
INFO: RenderCopyEx [mode: None]...3473 frames drawn in 1.000 seconds => 3473.0 frames/s
INFO: RenderCopyEx [mode: Blend]...3448 frames drawn in 1.000 seconds => 3447.3 frames/s
INFO: Color modulation [mode: None]...4355 frames drawn in 1.000 seconds => 4354.2 frames/s
INFO: Color modulation [mode: Blend]...4315 frames drawn in 1.000 seconds => 4314.8 frames/s
INFO: Alpha modulation [mode: None]...4382 frames drawn in 1.000 seconds => 4381.5 frames/s
INFO: Alpha modulation [mode: Blend]...4399 frames drawn in 1.000 seconds => 4398.6 frames/s
INFO: UpdateTexture [mode: None]...274.8 operations/s, 74.9 megabytes/s
INFO: ReadPixels [mode: None]...160.9 operations/s, 43.8 megabytes/s
INFO: Starting to test renderer called [software], flags 0xD
INFO: Points [mode: None]...192 frames drawn in 1.001 seconds => 191.9 frames/s
INFO: Points [mode: Blend]...194 frames drawn in 1.005 seconds => 193.1 frames/s
INFO: Lines [mode: None]...101 frames drawn in 1.006 seconds => 100.4 frames/s
INFO: Lines [mode: Blend]...78 frames drawn in 1.001 seconds => 77.9 frames/s
INFO: FillRects [mode: None]...52 frames drawn in 1.018 seconds => 51.1 frames/s
INFO: FillRects [mode: Blend]...12 frames drawn in 1.014 seconds => 11.8 frames/s
INFO: RenderCopy [mode: None]...166 frames drawn in 1.003 seconds => 165.5 frames/s
INFO: RenderCopy [mode: Blend]...127 frames drawn in 1.005 seconds => 126.3 frames/s
INFO: RenderCopyEx [mode: None]...27 frames drawn in 1.008 seconds => 26.8 frames/s
INFO: RenderCopyEx [mode: Blend]...69 frames drawn in 1.014 seconds => 68.0 frames/s
INFO: Color modulation [mode: None]...147 frames drawn in 1.004 seconds => 146.3 frames/s
INFO: Color modulation [mode: Blend]...115 frames drawn in 1.004 seconds => 114.5 frames/s
INFO: Alpha modulation [mode: None]...149 frames drawn in 1.004 seconds => 148.4 frames/s
INFO: Alpha modulation [mode: Blend]...101 frames drawn in 1.003 seconds => 100.7 frames/s
INFO: UpdateTexture [mode: None]...1421.2 operations/s, 387.3 megabytes/s
INFO: ReadPixels [mode: None]...1035.6 operations/s, 282.2 megabytes/s
INFO: Bye bye
I have placed both benchmarks next to each other for a better comparison. All in all impressive, thanks for letting me do this test, it could also be interesting for others.
![Resized Image](https://i.ibb.co/hYNmBZr/Snap-20240803-001.jpg)