From acc387c1eb5d93640fae45459b9f7c321d7f9eef Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Wed, 9 Jul 2014 16:28:55 +0200 Subject: [PATCH] Test results comparing PixelTransformer and bufferFromBuffer() --- tests/results/notrans/README | 28 ++++++++++++++++++++++++++++ tests/results/notrans/armhf.csv | 26 ++++++++++++++++++++++++++ tests/results/notrans/i386.csv | 26 ++++++++++++++++++++++++++ tests/results/notrans/x86_64.csv | 26 ++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 tests/results/notrans/README create mode 100644 tests/results/notrans/armhf.csv create mode 100644 tests/results/notrans/i386.csv create mode 100644 tests/results/notrans/x86_64.csv diff --git a/tests/results/notrans/README b/tests/results/notrans/README new file mode 100644 index 00000000..3723e67d --- /dev/null +++ b/tests/results/notrans/README @@ -0,0 +1,28 @@ +This directory contains the test results in preparation for the removal +of the PixelTransformer class. + +Tests were performed on Linux with these CPUs: + + - Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz + - ARM i.MX6 DualLite @ 1 GHz + +The tests show that the new bufferFromBuffer() has similar performance +as PixelTransformer in most cases. It gets beaten in two cases: + + - Input format is 16 BPP and PixelTransformer is in the + non-economical mode (the default mode). + + - Input format is 8 BPP, mode irrelevant. + +PixelTransformer is about twice as fast in both these cases (more if +converting between two low colour formats). + +Although this is significant, it is in cases that are already difficult +to deal with performance wise, and exceedingly rare with modern +hardware. As such it is difficult to motivate the extra complexity that +PixelTransformer requires. + +If it turns out that these cases are significant, than we can move +PixelTransformer's massive lookup tables into a shared cache in +PixelFormat. Implementation complexity would be similar, but at least +we would have a friendly API. diff --git a/tests/results/notrans/armhf.csv b/tests/results/notrans/armhf.csv new file mode 100644 index 00000000..3ccb6d9b --- /dev/null +++ b/tests/results/notrans/armhf.csv @@ -0,0 +1,26 @@ +# Pixel Conversion Test 2014-07-09 14:23 UTC +# +# Frame buffer: 4096x4096 pixels +# Tile size: 64x64 pixels +# +# Note: Results are Mpixels/sec +# +Source format,Destination Format,memcpy,PixelTransformer,bufferFromBuffer,rgbFromBuffer,bufferFromRGB + +depth 24 (32bpp) little-endian rgb888,depth 24 (32bpp) little-endian rgb888,67.5908,67.3684,66.8189,54.3236,59.1908 +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) little-endian rgb888,67.5908,33.2468,45.2097,54.3236,58.8506 +depth 16 (16bpp) little-endian rgb565,depth 24 (32bpp) little-endian rgb888,62.0606,24.6896,16.8076,22.5924,59.5349 +depth 7 (8bpp) rgb232,depth 24 (32bpp) little-endian rgb888,61.6867,63.2099,19.5887,23.5132,59.7956 + +depth 24 (32bpp) little-endian rgb888,depth 16 (16bpp) little-endian rgb565,96.8321,31.5562,40.3945,54.3236,25.0673 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) little-endian rgb565,104.757,31.7766,13.3725,22.5303,25.1443 +depth 7 (8bpp) rgb232,depth 16 (16bpp) little-endian rgb565,95.9251,61.594,15.1535,23.5132,25.098 + +depth 24 (32bpp) little-endian rgb888,depth 7 (8bpp) rgb232,133.42,34.5654,32.6115,54.3236,33.0056 +depth 16 (16bpp) little-endian rgb565,depth 7 (8bpp) rgb232,133.42,42.1833,15.7842,22.5303,32.7942 +depth 7 (8bpp) bgr232,depth 7 (8bpp) rgb232,137.45,75.7116,16.8699,23.5132,33.0056 + +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) big-endian bgr888,67.5908,33.2738,45.2597,54.3957,58.9353 +depth 24 (32bpp) big-endian bgr888,depth 24 (32bpp) little-endian bgr888,67.7025,NaN,45.3097,54.1799,59.0202 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) big-endian bgr565,105.567,31.7766,13.8425,21.49,24.9756 +depth 16 (16bpp) big-endian bgr565,depth 16 (16bpp) little-endian bgr565,105.84,NaN,12.3746,20.9086,25.1443 diff --git a/tests/results/notrans/i386.csv b/tests/results/notrans/i386.csv new file mode 100644 index 00000000..bb9247d3 --- /dev/null +++ b/tests/results/notrans/i386.csv @@ -0,0 +1,26 @@ +# Pixel Conversion Test 2014-07-09 14:14 UTC +# +# Frame buffer: 4096x4096 pixels +# Tile size: 64x64 pixels +# +# Note: Results are Mpixels/sec +# +Source format,Destination Format,memcpy,PixelTransformer,bufferFromBuffer,rgbFromBuffer,bufferFromRGB + +depth 24 (32bpp) little-endian rgb888,depth 24 (32bpp) little-endian rgb888,568.889,561.096,602.353,338.512,525.128 +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) little-endian rgb888,561.096,215.579,280.548,338.512,525.128 +depth 16 (16bpp) little-endian rgb565,depth 24 (32bpp) little-endian rgb888,602.353,405.545,185.339,146.81,531.948 +depth 7 (8bpp) rgb232,depth 24 (32bpp) little-endian rgb888,640,531.948,192.3,170.667,546.133 + +depth 24 (32bpp) little-endian rgb888,depth 16 (16bpp) little-endian rgb565,853.333,217.872,235.402,344.202,256 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) little-endian rgb565,871.489,455.111,89.4323,146.81,256 +depth 7 (8bpp) rgb232,depth 16 (16bpp) little-endian rgb565,952.558,568.889,94.8148,167.184,251.288 + +depth 24 (32bpp) little-endian rgb888,depth 7 (8bpp) rgb232,1107.03,235.402,231.412,341.333,278.639 +depth 16 (16bpp) little-endian rgb565,depth 7 (8bpp) rgb232,1137.78,481.882,95.2558,144.735,276.757 +depth 7 (8bpp) bgr232,depth 7 (8bpp) rgb232,1204.71,553.514,101.136,169.256,280.548 + +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) big-endian bgr888,568.889,212.228,276.757,338.512,525.128 +depth 24 (32bpp) big-endian bgr888,depth 24 (32bpp) little-endian bgr888,576.901,NaN,278.639,338.512,525.128 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) big-endian bgr565,890.435,455.111,89.4323,146.81,243.81 +depth 16 (16bpp) big-endian bgr565,depth 16 (16bpp) little-endian bgr565,871.489,NaN,85.3333,146.286,254.41 diff --git a/tests/results/notrans/x86_64.csv b/tests/results/notrans/x86_64.csv new file mode 100644 index 00000000..18fc03f3 --- /dev/null +++ b/tests/results/notrans/x86_64.csv @@ -0,0 +1,26 @@ +# Pixel Conversion Test 2014-07-09 14:14 UTC +# +# Frame buffer: 4096x4096 pixels +# Tile size: 64x64 pixels +# +# Note: Results are Mpixels/sec +# +Source format,Destination Format,memcpy,PixelTransformer,bufferFromBuffer,rgbFromBuffer,bufferFromRGB + +depth 24 (32bpp) little-endian rgb888,depth 24 (32bpp) little-endian rgb888,576.901,576.901,546.133,338.512,602.353 +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) little-endian rgb888,585.143,251.288,288.451,335.738,602.353 +depth 16 (16bpp) little-endian rgb565,depth 24 (32bpp) little-endian rgb888,585.143,405.545,205.829,162.54,620.606 +depth 7 (8bpp) rgb232,depth 24 (32bpp) little-endian rgb888,493.494,505.679,267.712,177.316,620.606 + +depth 24 (32bpp) little-endian rgb888,depth 16 (16bpp) little-endian rgb565,999.024,231.412,257.61,344.202,265.974 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) little-endian rgb565,975.238,455.111,101.638,165.161,267.712 +depth 7 (8bpp) rgb232,depth 16 (16bpp) little-endian rgb565,1050.26,576.901,105.296,181.239,269.474 + +depth 24 (32bpp) little-endian rgb888,depth 7 (8bpp) rgb232,1638.4,259.24,271.258,347.119,298.978 +depth 16 (16bpp) little-endian rgb565,depth 7 (8bpp) rgb232,1575.38,505.679,105.026,165.161,294.676 +depth 7 (8bpp) bgr232,depth 7 (8bpp) rgb232,1706.67,602.353,107.225,183.677,298.978 + +depth 24 (32bpp) little-endian bgr888,depth 24 (32bpp) big-endian bgr888,593.623,251.288,286.434,338.512,620.606 +depth 24 (32bpp) big-endian bgr888,depth 24 (32bpp) little-endian bgr888,593.623,NaN,282.483,344.202,611.343 +depth 16 (16bpp) little-endian bgr565,depth 16 (16bpp) big-endian bgr565,1050.26,450.11,97.7566,166.504,259.24 +depth 16 (16bpp) big-endian bgr565,depth 16 (16bpp) little-endian bgr565,999.024,NaN,96.6038,155.152,267.712 -- 2.39.5