mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-23 06:44:35 +00:00
Don't show drift adjustment for calibrated GPU contexts.
This commit is contained in:
parent
21f4981f38
commit
a3c51f0e7e
@ -7906,80 +7906,83 @@ void View::DrawOptions()
|
||||
{
|
||||
ImGui::TextDisabled( "%s threads", RealToString( gpuData[i]->threadData.size() ) );
|
||||
}
|
||||
ImGui::TreePush();
|
||||
auto& drift = GpuDrift( gpuData[i] );
|
||||
ImGui::SetNextItemWidth( 120 );
|
||||
ImGui::PushID( i );
|
||||
ImGui::InputInt( "Drift (ns/s)", &drift );
|
||||
ImGui::PopID();
|
||||
if( timeline.size() > 1 )
|
||||
if( !gpuData[i]->hasCalibration )
|
||||
{
|
||||
ImGui::SameLine();
|
||||
if( ImGui::Button( ICON_FA_ROBOT " Auto" ) )
|
||||
ImGui::TreePush();
|
||||
auto& drift = GpuDrift( gpuData[i] );
|
||||
ImGui::SetNextItemWidth( 120 );
|
||||
ImGui::PushID( i );
|
||||
ImGui::InputInt( "Drift (ns/s)", &drift );
|
||||
ImGui::PopID();
|
||||
if( timeline.size() > 1 )
|
||||
{
|
||||
size_t lastidx = 0;
|
||||
if( timeline.is_magic() )
|
||||
ImGui::SameLine();
|
||||
if( ImGui::Button( ICON_FA_ROBOT " Auto" ) )
|
||||
{
|
||||
auto& tl = *((Vector<GpuEvent>*)&timeline);
|
||||
for( size_t j=tl.size()-1; j > 0; j-- )
|
||||
size_t lastidx = 0;
|
||||
if( timeline.is_magic() )
|
||||
{
|
||||
if( tl[j].GpuEnd() >= 0 )
|
||||
auto& tl = *((Vector<GpuEvent>*)&timeline);
|
||||
for( size_t j=tl.size()-1; j > 0; j-- )
|
||||
{
|
||||
lastidx = j;
|
||||
break;
|
||||
if( tl[j].GpuEnd() >= 0 )
|
||||
{
|
||||
lastidx = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t j=timeline.size()-1; j > 0; j-- )
|
||||
else
|
||||
{
|
||||
if( timeline[j]->GpuEnd() >= 0 )
|
||||
for( size_t j=timeline.size()-1; j > 0; j-- )
|
||||
{
|
||||
lastidx = j;
|
||||
break;
|
||||
if( timeline[j]->GpuEnd() >= 0 )
|
||||
{
|
||||
lastidx = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum { NumSlopes = 10000 };
|
||||
std::random_device rd;
|
||||
std::default_random_engine gen( rd() );
|
||||
std::uniform_int_distribution<size_t> dist( 0, lastidx - 1 );
|
||||
float slopes[NumSlopes];
|
||||
size_t idx = 0;
|
||||
if( timeline.is_magic() )
|
||||
{
|
||||
auto& tl = *((Vector<GpuEvent>*)&timeline);
|
||||
do
|
||||
enum { NumSlopes = 10000 };
|
||||
std::random_device rd;
|
||||
std::default_random_engine gen( rd() );
|
||||
std::uniform_int_distribution<size_t> dist( 0, lastidx - 1 );
|
||||
float slopes[NumSlopes];
|
||||
size_t idx = 0;
|
||||
if( timeline.is_magic() )
|
||||
{
|
||||
const auto p0 = dist( gen );
|
||||
const auto p1 = dist( gen );
|
||||
if( p0 != p1 )
|
||||
auto& tl = *((Vector<GpuEvent>*)&timeline);
|
||||
do
|
||||
{
|
||||
slopes[idx++] = float( 1.0 - double( tl[p1].GpuStart() - tl[p0].GpuStart() ) / double( tl[p1].CpuStart() - tl[p0].CpuStart() ) );
|
||||
const auto p0 = dist( gen );
|
||||
const auto p1 = dist( gen );
|
||||
if( p0 != p1 )
|
||||
{
|
||||
slopes[idx++] = float( 1.0 - double( tl[p1].GpuStart() - tl[p0].GpuStart() ) / double( tl[p1].CpuStart() - tl[p0].CpuStart() ) );
|
||||
}
|
||||
}
|
||||
while( idx < NumSlopes );
|
||||
}
|
||||
while( idx < NumSlopes );
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
else
|
||||
{
|
||||
const auto p0 = dist( gen );
|
||||
const auto p1 = dist( gen );
|
||||
if( p0 != p1 )
|
||||
do
|
||||
{
|
||||
slopes[idx++] = float( 1.0 - double( timeline[p1]->GpuStart() - timeline[p0]->GpuStart() ) / double( timeline[p1]->CpuStart() - timeline[p0]->CpuStart() ) );
|
||||
const auto p0 = dist( gen );
|
||||
const auto p1 = dist( gen );
|
||||
if( p0 != p1 )
|
||||
{
|
||||
slopes[idx++] = float( 1.0 - double( timeline[p1]->GpuStart() - timeline[p0]->GpuStart() ) / double( timeline[p1]->CpuStart() - timeline[p0]->CpuStart() ) );
|
||||
}
|
||||
}
|
||||
while( idx < NumSlopes );
|
||||
}
|
||||
while( idx < NumSlopes );
|
||||
std::sort( slopes, slopes+NumSlopes );
|
||||
drift = int( 1000000000 * -slopes[NumSlopes/2] );
|
||||
}
|
||||
std::sort( slopes, slopes+NumSlopes );
|
||||
drift = int( 1000000000 * -slopes[NumSlopes/2] );
|
||||
}
|
||||
ImGui::TreePop();
|
||||
}
|
||||
ImGui::TreePop();
|
||||
}
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user