STEP file read might be crazy long ...

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: STEP file read might be crazy long ...

Post by easyw-fc »

vejmarie wrote:Can you try the same test within a VM running linux on the same hardware ?
3428.98s (extremely slooow ...almost 1 our) :shock:
But I did expected that: VM are not very performant
I cannot test it on real hw with Ubuntu OS ...

May be someone having both OSes on the same PC (dual boot) or having two PCs with similar hw could do a comparison between FC in Ubuntu and CAD-Assistant in Win
Maurice
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: STEP file read might be crazy long ...

Post by sgrogan »

easyw-fc wrote:May be someone having both OSes on the same PC (dual boot) or having two PCs with similar hw could do a comparison between FC in Ubuntu and CAD-Assistant in Win
I have the necessary set-up but it will take some some time.
vejmarie wrote: I am trying to figure out if we are missing some compilation switch on windows
I am worried too. I create and set "HAVE_TBB" from cmake gui when configuring FreeCAD because it doesn't exist by default. I'll reproduce this on Ubuntu and compare the results.
"fight the good fight"
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: STEP file read might be crazy long ...

Post by sgrogan »

@vejmarie, I had no problem building your OCCT7 fork with TBB.
I get these errors trying to build your FreeCAD/step fork

Code: Select all

Linking CXX shared library ../../../lib/libDriver.so
[  0%] Built target Driver
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshIDFactory.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VtkCellIterator.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_EdgePosition.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/duplicate.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshElementIDFactory.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshElement.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Mesh0DElement.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshEdge.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshCell.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FaceOfNodes.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Position.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_PolyhedralVolumeOfNodes.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/chrono.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_PolygonalFaceOfNodes.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeOfNodes.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshVolume.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/Utils_SALOME_Exception.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_IteratorOfElements.cpp.o
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshGroup.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_SpacePosition.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticFaceOfNodes.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshFace.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_UnstructuredGrid.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VtkEdge.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshNode.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticEdge.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeOfFaces.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_LinearEdge.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VertexPosition.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VtkVolume.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeTool.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshNodeIDFactory.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Mesh.cpp.o                                                             
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FaceOfEdges.cpp.o                                                      
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Downward.cpp.o                                                         
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FacePosition.cpp.o                                                     
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticVolumeOfNodes.cpp.o                                           
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VtkFace.cpp.o                                                          
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_BallElement.cpp.o                                                      
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshObject.cpp.o                                                       
Linking CXX shared library ../../../lib/libSMDS.so
[  1%] Built target SMDS
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMESHDS_Document.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cpp.o                                    
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMESHDS_Document.cpp.o                                
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMDS_Mesh.cpp.o                                       
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DAT_Test.cpp.o                                                    
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMDS_Mesh.cpp.o                                       
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cpp.o                                    
Linking CXX shared library ../../../lib/libDriverDAT.so
[  1%] Built target DriverDAT
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/STL_Test.cpp.o                                                    
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o                                       
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/SMESH_File.cpp.o                                                  
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/Basics_Utils.cpp.o                                                
Linking CXX shared library ../../../lib/libDriverSTL.so
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `NCollection_DataMap<gp_Pnt, SMDS_MeshNode*, (anonymous namespace)::Hasher>::Clear(unsigned int)':
DriverSTL_R_SMDS_Mesh.cpp:(.text+0x1147): undefined reference to `NCollection_BaseMap::Destroy(void (*)(NCollection_ListNode*, opencascade::handle<NCollection_BaseAllocator>&), unsigned int)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_Type>::BeginScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI13Standard_TypeE10BeginScopeEv[_ZN11opencascade6handleI13Standard_TypeE10BeginScopeEv]+0x23): undefined reference to `Standard_Transient::IncrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_Type>::EndScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI13Standard_TypeE8EndScopeEv[_ZN11opencascade6handleI13Standard_TypeE8EndScopeEv]+0x23): undefined reference to `Standard_Transient::DecrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_DomainError>::get()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI20Standard_DomainErrorE3getEv[_ZN11opencascade13type_instanceI20Standard_DomainErrorE3getEv]+0x6b): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<NCollection_BaseAllocator>::EndScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI25NCollection_BaseAllocatorE8EndScopeEv[_ZN11opencascade6handleI25NCollection_BaseAllocatorE8EndScopeEv]+0x23): undefined reference to `Standard_Transient::DecrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_NoSuchObject>::BeginScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI21Standard_NoSuchObjectE10BeginScopeEv[_ZN11opencascade6handleI21Standard_NoSuchObjectE10BeginScopeEv]+0x23): undefined reference to `Standard_Transient::IncrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_NoSuchObject>::EndScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI21Standard_NoSuchObjectE8EndScopeEv[_ZN11opencascade6handleI21Standard_NoSuchObjectE8EndScopeEv]+0x23): undefined reference to `Standard_Transient::DecrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_NoSuchObject>::get()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI21Standard_NoSuchObjectE3getEv[_ZN11opencascade13type_instanceI21Standard_NoSuchObjectE3getEv]+0x6b): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_NoMoreObject>::BeginScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI21Standard_NoMoreObjectE10BeginScopeEv[_ZN11opencascade6handleI21Standard_NoMoreObjectE10BeginScopeEv]+0x23): undefined reference to `Standard_Transient::IncrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_NoMoreObject>::EndScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI21Standard_NoMoreObjectE8EndScopeEv[_ZN11opencascade6handleI21Standard_NoMoreObjectE8EndScopeEv]+0x23): undefined reference to `Standard_Transient::DecrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_NoMoreObject>::get()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI21Standard_NoMoreObjectE3getEv[_ZN11opencascade13type_instanceI21Standard_NoMoreObjectE3getEv]+0x6b): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::handle<NCollection_BaseAllocator>::BeginScope()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI25NCollection_BaseAllocatorE10BeginScopeEv[_ZN11opencascade6handleI25NCollection_BaseAllocatorE10BeginScopeEv]+0x23): undefined reference to `Standard_Transient::IncrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_Failure>::get()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI16Standard_FailureE3getEv[_ZN11opencascade13type_instanceI16Standard_FailureE3getEv]+0x6b): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_Transient>::get()':
DriverSTL_R_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI18Standard_TransientE3getEv[_ZN11opencascade13type_instanceI18Standard_TransientE3getEv]+0x75): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o:(.data.rel.ro._ZTV21Standard_NoMoreObject[_ZTV21Standard_NoMoreObject]+0x30): undefined reference to `Standard_Failure::GetMessageString() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o:(.data.rel.ro._ZTV21Standard_NoSuchObject[_ZTV21Standard_NoSuchObject]+0x30): undefined reference to `Standard_Failure::GetMessageString() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o:(.data.rel.ro._ZTV20Standard_DomainError[_ZTV20Standard_DomainError]+0x30): undefined reference to `Standard_Failure::GetMessageString() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_ConstructionError>::BeginScope()':
DriverSTL_W_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI26Standard_ConstructionErrorE10BeginScopeEv[_ZN11opencascade6handleI26Standard_ConstructionErrorE10BeginScopeEv]+0x23): undefined reference to `Standard_Transient::IncrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o: In function `opencascade::handle<Standard_ConstructionError>::EndScope()':
DriverSTL_W_SMDS_Mesh.cpp:(.text._ZN11opencascade6handleI26Standard_ConstructionErrorE8EndScopeEv[_ZN11opencascade6handleI26Standard_ConstructionErrorE8EndScopeEv]+0x23): undefined reference to `Standard_Transient::DecrementRefCounter() const'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o: In function `opencascade::type_instance<Standard_ConstructionError>::get()':
DriverSTL_W_SMDS_Mesh.cpp:(.text._ZN11opencascade13type_instanceI26Standard_ConstructionErrorE3getEv[_ZN11opencascade13type_instanceI26Standard_ConstructionErrorE3getEv]+0x6b): undefined reference to `Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o:(.data.rel.ro._ZTV26Standard_ConstructionError[_ZTV26Standard_ConstructionError]+0x30): undefined reference to `Standard_Failure::GetMessageString() const'
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libDriverSTL.so] Error 1
make[1]: *** [src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/all] Error 2
make: *** [all] Error 2
It could very well be how I'm linking your OCCT to FreeCAD.
"fight the good fight"
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: STEP file read might be crazy long ...

Post by easyw-fc »

sgrogan wrote: I have the necessary set-up but it will take some some time
would you mind to do also a comparison in loading time between FC latest dev release 9944-64b and CAD Assistant in windows on similar PC hw?
@vejmarie said that his TBB branch and the main branch should have very similar results in loading time, but on the contrary I have quite different performance (like 3:1 times)
vejmarie wrote: I can read the file now in a faster way on my Mac than with CAD Assistant ! (by using parallel OCCT, otherwise at roughly the same speed)
Thx
Maurice
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: STEP file read might be crazy long ...

Post by sgrogan »

easyw-fc wrote:would you mind to do also a comparison in loading time between FC latest dev release 9944-64b and CAD Assistant in windows on similar PC hw?
@vejmarie said that his TBB branch and the main branch should have very similar results in loading time, but on the contrary I have quite different performance (like 3:1 times)
Will do, but it seems vejmarie's occt patch is the key. Linking vejmarie's FreeCAD fork to official OCCT7w/TBB and to vejmarie's OCCT7w/TBB has been, in the past, around 2x (clock on the wall). Next week I should be able to test with easy-fc's script.
@vejmarie, on your local builds, for FreCAD how do you handle -DCMake HAVE_TBB=1? I could definitely be botching this.
"fight the good fight"
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: STEP file read might be crazy long ...

Post by triplus »

I don't know where but i know i have seen it somewhere. That is @vejmarie figured out the progress indicator "refreshing" contributes to the performance penalty when loading STEP file. And he fixed that.

Thanks for doing that!
User avatar
vejmarie
Posts: 713
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: STEP file read might be crazy long ...

Post by vejmarie »

sgrogan wrote:
easyw-fc wrote:would you mind to do also a comparison in loading time between FC latest dev release 9944-64b and CAD Assistant in windows on similar PC hw?
@vejmarie said that his TBB branch and the main branch should have very similar results in loading time, but on the contrary I have quite different performance (like 3:1 times)
Will do, but it seems vejmarie's occt patch is the key. Linking vejmarie's FreeCAD fork to official OCCT7w/TBB and to vejmarie's OCCT7w/TBB has been, in the past, around 2x (clock on the wall). Next week I should be able to test with easy-fc's script.
@vejmarie, on your local builds, for FreCAD how do you handle -DCMake HAVE_TBB=1? I could definitely be botching this.
Hi, I am just turning TBB at cmake level with -DHAVE_TBB=1 ;).
User avatar
vejmarie
Posts: 713
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: STEP file read might be crazy long ...

Post by vejmarie »

triplus wrote:I don't know where but i know i have seen it somewhere. That is @vejmarie figured out the progress indicator "refreshing" contributes to the performance penalty when loading STEP file. And he fixed that.

Thanks for doing that!
Hi Triplus, you are welcome. The patch regarding the progress bar has been included last week, you probably have seen it going through the PR.
Post Reply