mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 05:00:06 -05:00
1dfbd4eff2
-Add new preset dimensions to the right click menu of the width and height fields in the editor. -Change QSS stylesheets to properly handle tabs. -Make tabs rectangular by default. For some reason, they had always been triangular. --Bug fixes -Incremental rendering times in the editor were wrong. --Code changes -Migrate to Qt6. There is probably more work to be done here. -Migrate to VS2022. -Migrate to Wix 4 installer. -Change installer to install to program files for all users. -Fix many VS2022 code analysis warnings. -No longer use byte typedef, because std::byte is now a type. Revert all back to unsigned char. -Upgrade OpenCL headers to version 3.0 and keep locally now rather than trying to look for system files. -No longer link to Nvidia or AMD specific OpenCL libraries. Use the generic installer located at OCL_ROOT too. -Add the ability to change OpenCL grid dimensions. This was attempted for investigating possible performance improvments, but made no difference. This has not been verified on Linux or Mac yet.
113 lines
4.0 KiB
PowerShell
113 lines
4.0 KiB
PowerShell
$exe = ""
|
|
if ([System.Environment]::OSVersion.Platform.ToString().ToLower() -like "*win*")
|
|
{
|
|
$exe = "./EmberRender.exe"
|
|
}
|
|
else
|
|
{
|
|
$exe = "emberrender"
|
|
}
|
|
|
|
$benchprefix = "./bench/"
|
|
$devices = "2"#Set this to whatever device index your main GPU resides at. If you are unsure, just run emberrender --openclinfo 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)
|
|
{
|
|
#if you want to test extreme speed on your GPU, add this option, --sbpctth=1.0, to increase the amount of each sub batch that is done on each opencl thread per kernel launch.
|
|
#set the value from somewhere between 0.025 (the default) and 1.0 (the max). Values above 0.3 don't make much of a difference.
|
|
#this usually results in a roughly 1% speed improvement.
|
|
#however, it can cause the render to fail, especially on the golubaja_rippingfrominside_complexcode and zy0rg_six_bigcomplexcode flames when using double precision.
|
|
$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
|