From f28edf3217fcc65c73430ca34815eba760b3baa3 Mon Sep 17 00:00:00 2001 From: Person Date: Mon, 4 Dec 2017 20:56:43 -0800 Subject: [PATCH] --Code changes -Add a benchmarking suite which includes a Powershell script and sample flames. --- .gitignore | 8 +- .../Installer/FractoriumInstaller.wixproj | 2 +- Builds/MSVC/Installer/Product.wxs | 32 +++++- Data/Bench/EmberBench.ps1 | 99 +++++++++++++++++++ ...lubaja_rippingfrominside_complexcode.flame | 40 ++++++++ Data/Bench/mfeemster_basicmemory.flame | 42 ++++++++ .../tatasz_springcrown_manysimplexforms.flame | 88 +++++++++++++++++ .../Bench/tyrantwave_flippeddisc_normal.flame | 40 ++++++++ Data/Bench/zy0rg_six_bigcomplexcode.flame | 82 +++++++++++++++ Source/Fractorium/GLWidget.cpp | 2 - 10 files changed, 426 insertions(+), 9 deletions(-) create mode 100644 Data/Bench/EmberBench.ps1 create mode 100644 Data/Bench/golubaja_rippingfrominside_complexcode.flame create mode 100644 Data/Bench/mfeemster_basicmemory.flame create mode 100644 Data/Bench/tatasz_springcrown_manysimplexforms.flame create mode 100644 Data/Bench/tyrantwave_flippeddisc_normal.flame create mode 100644 Data/Bench/zy0rg_six_bigcomplexcode.flame diff --git a/.gitignore b/.gitignore index 6342cb2..d90a81f 100644 --- a/.gitignore +++ b/.gitignore @@ -24,11 +24,8 @@ *.txt *.msi *.idb -*.flam3 -*.flame *.bmp *.jpg -Data/*.png *.zip *.avi *.ini @@ -57,7 +54,8 @@ Builds/MSVC/VS2015/Obj Bin/x64/Release/testallvarsout.flame fractorium.com/ Site/ -*.ps1 +Data/*.png +/Data/Variations Bench.xlsx *.o ui_*.h qrc_*.cpp @@ -82,7 +80,6 @@ Builds/QtCreator/Fractorium/Makefile Builds/lib/libOpenCL.so Builds/include/CL Builds/include/GL -/Data/Variations Bench.xlsx /Builds/QtCreator/EmberCL/EmberCL.pro.user.18 /Builds/QtCreator/Ember/Ember.pro.user.18 /Builds/QtCreator/Fractorium/Fractorium.pro.user.18 @@ -255,3 +252,4 @@ Builds/include/GL /Builds/MSVC/VS2017/flam3-palettes.xml /Builds/MSVC/VS2017/UpgradeLog.htm /Builds/MSVC/VS2017/zlib.props +*last.flame diff --git a/Builds/MSVC/Installer/FractoriumInstaller.wixproj b/Builds/MSVC/Installer/FractoriumInstaller.wixproj index 516c04e..2eef9c6 100644 --- a/Builds/MSVC/Installer/FractoriumInstaller.wixproj +++ b/Builds/MSVC/Installer/FractoriumInstaller.wixproj @@ -6,7 +6,7 @@ 3.7 {c8096c47-e358-438c-a520-146d46b0637d} 2.0 - Fractorium_1.0.0.6 + Fractorium_1.0.0.7 Package $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets diff --git a/Builds/MSVC/Installer/Product.wxs b/Builds/MSVC/Installer/Product.wxs index f39a900..82a7b3c 100644 --- a/Builds/MSVC/Installer/Product.wxs +++ b/Builds/MSVC/Installer/Product.wxs @@ -13,7 +13,7 @@ - + + @@ -81,6 +82,7 @@ --> + @@ -267,6 +269,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Data/Bench/EmberBench.ps1 b/Data/Bench/EmberBench.ps1 new file mode 100644 index 0000000..e612a38 --- /dev/null +++ b/Data/Bench/EmberBench.ps1 @@ -0,0 +1,99 @@ +$exe = ".\EmberRender.exe" +$benchprefix = ".\Bench\" +$devices = "2"#Set this to whatever device index your main GPU resides at. If you are unsure, just run emberrender --opencl info to find out. +$cpuquality = 150 +$gpuquality = 2000 +$verbose = "--verbose" +$name_enable = "--name_enable" +$dump_args = ""#"--dumpargs" +$totalOutput = "" +$ssArray = @(“1”,”2”,”4”) +$ssSuffixArray = @(“_ss1”,”_ss2”,”_ss4”) + +$Script:output = "" +[Collections.Generic.List[String]] $filteredLines = "" + +$table = New-Object system.Data.DataTable “BenchTable” +$col1 = New-Object system.Data.DataColumn Filename, ([string]) +$col2 = New-Object system.Data.DataColumn Precision, ([string]) +$col3 = New-Object system.Data.DataColumn Device,([string]) +$col4 = New-Object system.Data.DataColumn SS1, ([string]) +$col5 = New-Object system.Data.DataColumn SS2, ([string]) +$col6 = New-Object system.Data.DataColumn SS4, ([string]) + +#Add the Columns +$table.columns.add($col1) +$table.columns.add($col2) +$table.columns.add($col3) +$table.columns.add($col4) +$table.columns.add($col5) +$table.columns.add($col6) + +function TestFileSupersamples([string]$filename, [string]$precision, [string]$suffix, [string]$quality, [string]$misc) +{ + [int]$sscount = 0; + $row = $table.NewRow() + $row.Filename = [io.path]::GetFileNameWithoutExtension($filename) + + if ($precision -eq "--sp") + { + $row.Precision = "Single" + } + else + { + $row.Precision = "Double" + } + + if ($misc -like "*opencl*") + { + $row.Device = "GPU" + } + else + { + $row.Device = "CPU" + } + + foreach ($ssval in $Script:ssArray) + { + $fullSuffix = $suffix + $Script:ssSuffixArray[$sscount] + $renderargs = ("--in=$filename", "$verbose", "$name_enable", "$dump_args", "--suffix=$fullSuffix", "--supersample=$ssval", "$precision", "--quality=$quality") + $misc.Split(" ") + $Script:output = (&$exe $renderargs) | Out-String + $val = $Script:output.split([environment]::NewLine) | where {$_ -like "*Iters/sec*"} + $val = (($val.split(' ')[1] -replace '[.,]','')) + $row[3 + $sscount] = $val + $Script:filteredLines += $val + $Script:totalOutput += [environment]::NewLine + "====================" + [environment]::NewLine + $Script:output + $sscount++ + } + + $table.Rows.Add($row) +} + +function BenchAllForFile([string]$filename) +{ + $misc = "--opencl --device=" + $devices + TestFileSupersamples $filename "--sp" "_f32_cpu" $script:cpuquality "" + TestFileSupersamples $filename "" "_f64_cpu" $script:cpuquality "" + TestFileSupersamples $filename "--sp" "_f32_opencl" $script:gpuquality $misc + TestFileSupersamples $filename "" "_f64_opencl" $script:gpuquality $misc +} + +cd .. + +$fileOne = $benchprefix + "mfeemster_basicmemory.flame" +BenchAllForFile $fileOne + +$fileOne = $benchprefix + "tatasz_springcrown_manysimplexforms.flame" +BenchAllForFile $fileOne + +$fileOne = $benchprefix + "tyrantwave_flippeddisc_normal.flame" +BenchAllForFile $fileOne + +$fileOne = $benchprefix + "golubaja_rippingfrominside_complexcode.flame" +BenchAllForFile $fileOne + +$fileOne = $benchprefix + "zy0rg_six_bigcomplexcode.flame" +BenchAllForFile $fileOne + +$Script:totalOutput | Out-File -FilePath benchout.txt +$table | Export-Csv -Path ".\benchout.csv" -Force -NoTypeInformation diff --git a/Data/Bench/golubaja_rippingfrominside_complexcode.flame b/Data/Bench/golubaja_rippingfrominside_complexcode.flame new file mode 100644 index 0000000..ecf917f --- /dev/null +++ b/Data/Bench/golubaja_rippingfrominside_complexcode.flame @@ -0,0 +1,40 @@ + + + + + + + 581F268A040B9A0B118C050C6C38204747474A4A4A575757 + 675F5280673EC67130F29224FF9316F47911C67130735E4D + 5A58594B4B4B474B4C3F44482727270A0F0B0006040E0D15 + 303938484A49565A5B5E5E5E606060626262626262626262 + 666666646464626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262636363626262626262 + 62626261626463606B696969726870858585858B87858480 + 6F6E6A6E6663656565626264626262626262626262626262 + 63626061645D63635B60635C62626262626266626170665D + 7F6469D97539FF8325FF8F1FFF7F14FD7F06F56F0EE56D17 + B36B217A4D5062595C606060626262626262626262626262 + 6262625F5F5F5757575E38378C060F9304089C0B06A10F10 + 90191D6B585C655F61666062626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 62626264605D635D5D5E5E56654933951218A20B12A2090C + 9E090F9A0B0D891C194C4A4B5C5C5E606060626262626262 + 626262626262626262626262646464676767696969656565 + 646464626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 626262626262626262626262626262626262626262605D68 + 5E5E6A5F616E58656B5F6362626262626262626262626262 + 626262626262626262626262626262626262626262626262 + 6464646767676A6A6A8383838A8A8A939393989E9EF8F8F8 + 99999986868669696961616157585A4343432B3537110E19 + 1309072312025528003E220A1F06000E08000D0A05200E0E + + diff --git a/Data/Bench/mfeemster_basicmemory.flame b/Data/Bench/mfeemster_basicmemory.flame new file mode 100644 index 0000000..2a7ccdc --- /dev/null +++ b/Data/Bench/mfeemster_basicmemory.flame @@ -0,0 +1,42 @@ + + + + + F1DFDDFAEAEDFDEDEEFDEFEFFFF0F3FCEBF3FDEBEBFBE7E8 + FEDADEF8D9E1F1D4D8DFC2C4D89CB8AB82A2934C6E814A5D + 644F6062495E5B414C5E3B4F6B3555853E5C9650527D6561 + 9995A4BBB1B9C5C8D7D0C7D8E7D5E5EAD6DFF5E1E2F1D9D9 + ECCFD4DCACA2B78296B18890B68171A66F749F456B8D3862 + 822C495E1F323A171E1B0F0F110A041006070B0100120205 + 1A0C0C321B133F17206F18388D1A2788293DB35E75D5A4A7 + F6D2D6FADCDCFEE9F2FFEEF6FEF5F8FDF9FAFDF7FBFFF6FF + FFF4FDFFF4FBFEF3F9FEF3F7FCEFF6FCF1F7FDF7FBFDF7FB + FCFAFBFEFCFDFEFCFDFBFAFFFDFDFDFFFEFCFEFEFEFEFEFE + FFFFFFFFFFFFFFFFFFFEFFFFFEFFFFFDFEFFF7FFFFEBF8FE + F9F7F8FAEDF4FAE5ECE7DCECD8D9EBA4D0ED8ABAC65684A5 + 2452862B3B4B16142C050A0E02020202020201100B190F10 + 33141C531C31612C40862B3A64293D543545613E5265464C + 7D555D7B7277AD969CBBA6B7D7C0C6E5D5D6D6C9D0D6B6BB + E0B2B2D9B9BEDAC3D5DFC7D4E0DDE8C5E8FEEAE9F1F4EDF5 + FBF0F6FDF2F6FFF4F8FFF5F9FEF1F8FCECF7FCE5EDEDCDE5 + C7B9D0B0AEC46F82935E4B69423A4F212330100F15030102 + 0101010100000000000000000101010102060C1011201615 + 33191C4221284D31404D374E46323E3B2B4535333E282140 + 3724373D2032451F3457233A7229447E2D4E962752DB0780 + E50389EB2A87D33484CC7C95A9929C8D939F79778D825760 + 7F555F7A4C70917F99B3A9B1C4C4C4EAD8D8EED5DBF0D6E1 + FFCEEAFFDCECFEE9EEFEEBEFFEEAECFCE1EAFFCDE5EFC6D4 + F5A4C5CF597BAD4874B13B78B03957A4454BA6584E885544 + 68475053434640272D361528241D25231014250E182E141D + 3B1A2356303D654463665A8C6B82C59585AAA587A19997A4 + 9D9FB892B4D995BFCFADA5BCBBB3C2DACBD0E4C5D4ECD4D4 + EAD6D8EDD9DAF7DBD7F0D9E3E8DDEDEEE1EAF0E0E0F3D8E1 + F4DFE6FAE8F4F8EBF4FCF0F4FCF1F7FEEFF4F9EAF1EFE4EA + E2D4E3C6B7CA9F8EAE667DA96B6071483B573A3247312A49 + 28213320172A151314100702090001020001010000050100 + + + + + + diff --git a/Data/Bench/tatasz_springcrown_manysimplexforms.flame b/Data/Bench/tatasz_springcrown_manysimplexforms.flame new file mode 100644 index 0000000..97c6883 --- /dev/null +++ b/Data/Bench/tatasz_springcrown_manysimplexforms.flame @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FFF1E8F4E9E3E7E7DDCDD6D5BED3CEB9D0C6A9C9B1A7CAAA + 9FC0937FAC8F7CB08C889C779571578F456A933E67603C62 + 593C5B533861443C633F3E66523A5E5C314F53294D410622 + 41042341214A464A495B6543668E696795706EA38773A588 + 85A894C29FA3D6B2B2F1C6BFFFDACAFEDDCEFEDBC7CCD7B7 + B2C2A599BE957CB58C71A9846DA38977A88A8FBC9FB0CBAC + E7E1C1FEEDD3FEEBDAF1E6EEDDE4F4C4D9DAC6D3C9D0CBCF + EDC5BBF4C9C0F7CBC2FFDCC8E7E2DCCDD9CBC4D9C8BACEB2 + AAC5A4A3C7AD9CC0A698BEAF8BBBA17EB9A37DA6966DA58C + 69A684709979689F78559A87439C98569D956F8D9566838B + 65838B5B827D66708B69708C73819B7B87979593A8BA9D9F + A89599A1838F776983464C6235465A263F55303845192E4B + 1F224B281F3E2B1C3B2E1646332A47363B3F2E353F2B2E35 + 3A062A2F04202B041F1A0E1823082B2D193537214530385D + 32435D3C525F3E677942677757617A535A774E5C77465C71 + 40566442525F4A67655779683276996087A68599A0C9BBB0 + E1C7B8E1C7BAD8B8BBB7A9B6A3ABAE7EA7956E9F8C689B88 + 4B9B764F736941485B3E3F51343D4C3A3A4643423D494C41 + 4C63465371596A7F7A8A7489AA3675AA2F706A3C6A714872 + 7466876C8C7F75908978A19188B098B5BE9FD4BFBAECC6BB + FFD4CBFED6CCFCCCC2FBCDC0F5CBBFE7C5BBD3B0AEC0B6AD + A6C393B7C379B4CB9FB0BDB6BAD3D798CDD577AD8D6DA18B + 74979B6885955F68876343685B3C6548436145465A39485D + 46605F628A4E6D9A3F789555A6B476D7DAA1FADCD4FFE8EE + FFEEF4FFFFFFFFFFFFFFFFFFFFFFFFFFF4FCEBECFEE5E3F8 + D7DFECBAC4C68EBCA06AA299477585246488385462334E57 + 3B515E4C6D74568774798F7874978182A07A93B17597AA73 + 98AE6EBECD68D1DD8BFFD9B2FFE5CEFFE8D6FFEDE3FFEEEE + FFF3F5FEF2F2FFF2EAFFEEE2FFECDEFFF0E0FFF0EBFFF1E8 + FFEADDFEE4D5F6CFD0CBBEB69CB87D75A567608A64527967 + 4559623D4F5B51785D67935677A25B8AB486C5D396F4E0BB + FEE8D3FFEFE2FEF9F5FEFEFEFFF9FDFEF6F4F0EFFDFFECF3 + + diff --git a/Data/Bench/tyrantwave_flippeddisc_normal.flame b/Data/Bench/tyrantwave_flippeddisc_normal.flame new file mode 100644 index 0000000..27ebe5a --- /dev/null +++ b/Data/Bench/tyrantwave_flippeddisc_normal.flame @@ -0,0 +1,40 @@ + + + + + + + 2D3E584D76AE558DC05B98B45B98B45D96B36098B1688C9C + 74934D6F93156086006578043F4C0015300300190A0E0F07 + 13120D142208243D152D5F18424436445569508BAD5291B0 + 5393AF5595B05595B05893B15893B15895B15895B15A9FAF + 659A8072A336618114503C013D1F1D472011662511732C0E + 872E04933309AA2A4BA84655A04B689791916399B1508CAE + 507F933541570721540926221A282B44333B53393A504647 + 596A34585F2C5D600F6274065F5500582D1A862B19932F00 + AA3102D03000D63500C41F0BB02601882B0A4C1006240902 + 1107000305040000070A0605170D0B14130E2423295E5A34 + 7C854696927990A0627FAC4790A94391A0438E9D40988F2A + 9E8A319F862CC56018C75523BE5D33BD5B42C16B5A978B7F + 908C8B639BB26AA3B76BA4B56FA6BA6CA5B967AAB372ACAE + A79EA1ACA7A4ADA8A5A0A7AD75A8BD629CB45693B0508CA8 + 6E6D6B873C1D8231207D27426C68675189A05B8498635E5B + 873C1DA5481CC03936B14D4DC36960C56765CE5B5ECE5E53 + D64F49CD5533CB5923DB621DC75E25BE5F319D954296A138 + 92A02F827C326D8122465F1D463308392608341B17440B00 + 4E0E1C832816AE3A09C24624C46859968C8A6496AD6199B2 + 5D96B35A95B35C95B26199B0778A98958B89A1656572756C + 5F8DA55E96B15F97B26098B1639BB2629DAB9D9392A69C9D + A49E9E959A9D6AA3B6659EB2619BB1669EB768A1B492979A + 9C9794A79F9CAAA1A2AFA6A7B4AEAEB5AFAF88BAD57CB4CF + 70A9C46CABBD68AEB864A7B769A3B96C9EB5989292B670A6 + C56064DE4C4DDE3B28CC182195082B73221F5F0A214E1F2F + 542C345E47516B6C815D94B25C98B4609CB65E9EB95D9DB6 + 5E9AB65A9AB55A9AB55D9AB9609CB6649DB869A1B865A2B7 + 639FB7619FB85E9EB75999B45999B45B98B4619BB16495A6 + 7B8083913E52652A3C4514171D1216190B0A1B07090D080C + 0D0B0E130D111A12103522245C3B426552705094A75292AE + 5291B05291B05190AF4D88AA2F4982373F415124415F0A21 + 6E19308C2842863556994868B94C5FB1687C5E9EB7A29A98 + + diff --git a/Data/Bench/zy0rg_six_bigcomplexcode.flame b/Data/Bench/zy0rg_six_bigcomplexcode.flame new file mode 100644 index 0000000..9471570 --- /dev/null +++ b/Data/Bench/zy0rg_six_bigcomplexcode.flame @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3E05053C05053604043304042B03032B03032B03032B0303 + 2B03032B03032B03032B03032A03032A0303280303270303 + 2303032203031C02021802021802021B02021F0202200202 + 2203032503032903032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032D04042F0404330404360404 + 450C065917086E3109984814D37832E28139F08A42FF9951 + F7A15BF5A65CE39C52B67E4198592C7B34196E2B1163240B + 470A063704043104042C03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032A0303280303270303240303 + 2002021E02022002022203032403032703032A03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2A03032A03032A03032A03032A03032A03032A03032A0303 + 2B03032B03032B0303310404370404400F05581F076D320E + 77400A8A4E0C904E1881410D75320A6625094F0D07400505 + 3C05053704043204043104043104042E04042B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032C03032E0404360404440B065B1F08 + 7840199A672FC08B48DCB065F9D77DEFC974E6BC6CC69657 + A56F42975E36894C2C460E0D3B05053104042D04042B0303 + 2B03032B03032B03032B03033C0505531C0D6C321793512F + BA7248C78753D49B60FFC57EFFD390FFE3A2FFE8A5FFEEA7 + FFEDA5FFECA3FFEE9CFFE996EFC57AE4B765DAA951D09B4A + C78F44C99141CB9340E6B459E3B45CDFB562DAAD5BD5A657 + C7974FB888469966307F44214F13074105053404042F0404 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032B03032B03032B03032B03032B03032B03032B0303 + 2B03032D04043104043B05053E0505410505410505410505 + + diff --git a/Source/Fractorium/GLWidget.cpp b/Source/Fractorium/GLWidget.cpp index a273d6a..6f1f516 100644 --- a/Source/Fractorium/GLWidget.cpp +++ b/Source/Fractorium/GLWidget.cpp @@ -774,8 +774,6 @@ bool GLWidget::Allocate(bool force) if (doIt) { - //m_TexWidth = scaledW; - //m_TexHeight = scaledH; m_TexWidth = GLint(w); m_TexHeight = GLint(h); glEnable(GL_TEXTURE_2D);