I exclusively use Billâs weekly builds and have always found them very stable. I really appreciate the effort he puts into these for people like me who wouldnât know where to start compiling.
The instructions for windows are pretty good and easy to follow⌠I just did all the steps for method 1 some years back now skipping only the usb driver bit and after that it easy to build⌠and seems to have gotten a bit faster to do so over the yearsâŚ
I can be patient or lazy and wait for the weekly build. Most times I see no obvious changes, but occasionally some exciting addition arrives.
I canât find it any more, but I recall a rather significant (not 1-5%, but rather 20-40%) speed-up on the CPU-only path when I compared the Ubuntu-packaged version with the self-compiled one.
A quick comparison now, with the daily AppImage vs locally-compiled. Exporting a single image from my old Panasonic LX7 (10 MPx) with typical processing (filmic/sigmoid, local contrast, diffuse or sharpen), after clearing .cache/darktable and starting the application, waiting for all thumbnails to be built:
AppImage / local, without OpenCL: 17.5970 s / 10.9683 s (160% or 62%, depending on from which side you look at it)
AppImage / local, with OpenCL: 3.5331 s / 3.3196 s (106% or 94%)
CPU: Ryzen 5 5600, GPU: NVidia 1060
Not to depreciate Billâs work, I think he basically builds whatever is on master come Sunday:
What I mean is they are not âcuratedâ or âhigher qualityâ or âcontain hand-picked changesâ. I appreciate his work, and have long used his builds on the Windows laptop I sometimes use to answer Windows-related questions or to test Windows-related issues. Having a reliable source of builds in case the GitHub CI build breaks is valuable.
In this particular case, there was a bug fixed after the weekly build was published. You were affected by that bug: it was the cause why darktable -d opencl
crashed without printing an error message to the console.
From [Native build using MSYS2]
(https://github.com/darktable-org/darktable/tree/master/packaging/windows#native-build-using-msys2)*NOTE:
âIf you are using the Lua scripts, build the installer and install darktable.â
Is there any information on doing this specifically? I have already completed the steps regarding MSYS2 installation.
Itâs been some time but if the question is about Lua it should be installed with the build installer I thinkâŚ
Have you uploaded any of these⌠I could tryâŚ
There is a noticeable performance increase when compiling the software. Itâs a bit time consuming to do it though. Seems like DT needs to be run from the msys terminal. It would be great if there was a way to streamline the process of opening DT rather than using command line all the time. I have no idea on how to do that, unfortunately.
You need to say package instead of install as the target⌠this makes an exe install file and creates a shortcut when you run that to install⌠exe will be in build directory
@priort Aha! I will try that
Yup! It all works perfectly. Problem is, Iâm probably too lazy to be doing this routinely. I was an interesting experiment that taught me a few things. I think I will stay with Billâs weekly builds for the time being.
Thanks everyone for the help!
Using MSYS2 software on windows, Is there a command to do an incremental version update of the github repository into my msys64 folder?
Pacman -Syuu
will update all installed packages
Git pull will sync with the repo. You then need to build again. Donât forget to delete the build folder first.
If it helps, here is a short script that updates from master and (re-)build DT as Windows package. I usually run this script, test the MSYS2 build, then if no issue I un-install then install DT.
#!/bin/bash
lensfun-update-data
cd ~/darktable/
rm -rf build
git pull origin master
git submodule update
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/darktable -DCUSTOM_CFLAGS=ON -DCMAKE_CXX_FLAGS="-O3" -DCMAKE_C_FLAGS="-O3" -DBINARY_PACKAGE_BUILD=OFF ../.
cmake --build . --target package
That a very handy script. Anything to ease the process is great.
Can you please explain the meaning of this syntax?
DCUSTOM_CFLAGS=ON -DCMAKE_CXX_FLAGS=â-O3â -DCMAKE_C_FLAGS=â-O3â -DBINARY_PACKAGE_BUILD=OFF âŚ/.
Thanks
Lazy manâs answerâŚ
Searching for: DCUSTOM_CFLAGS=ON -DCMAKE_CXX_FLAGS=â-O3â -DCMAKE_C_FLAGS=â-O3â -DBINARY_PACKAGE_BUILD=OFF
Searching for: DCUSTOM_CFLAGS=ON -DCMAKE_CXX_FLAGS=â-O3â -DCMAKE_C_FLAGS=â-O3â -DBINARY_PACKAGE_BUILD=OFF
Generating answers for youâŚ
Generating answers for youâŚ
Certainly! The command you provided is a CMake command that sets some flags for the build process. Here is what each flag does:
- DCUSTOM_CFLAGS=ON: This flag enables custom C flags for the build process.
- -DCMAKE_CXX_FLAGS=â-O3â: This flag sets the optimization level for C++ code to O3.
- -DCMAKE_C_FLAGS=â-O3â: This flag sets the optimization level for C code to O3.
- -DBINARY_PACKAGE_BUILD=OFF: This flag disables binary package building.
I hope this helps! Let me know if you have any other questions.
Learn more:
1. flagsunlimited.com2. bestflag.com3. theflagstore.ca
1of30
Can you explain what -O3 means?
Searching for: what does -O3 mean in C++
Searching for: what does -O3 mean in C++
Generating answers for youâŚ
Generating answers for youâŚ
Certainly! In the context of C++, the -O3
flag is used to optimize code for speed. It enables all the optimizations that are included in the -O2
flag, and adds some more optimizations on top of that 1.
The -O3
flag is used to generate code that runs faster, but it may also increase the size of the executable file 1.
I hope this helps! Let me know if you have any other questions.
Learn more:
1. stackoverflow.com2. stackoverflow.com3. caiorss.github.io+1 more
2of30
Can you explain what -O2 means?
Searching for: what does -O2 mean in C++
Searching for: what does -O2 mean in C++
Generating answers for youâŚ
Generating answers for youâŚ
Certainly! In the context of C++, the -O2
flag is used to optimize code for speed. It enables nearly all the optimizations that are supported by the compiler, except for those that involve a space-speed tradeoff such as loop unrolling or function inlining 12.
The -O2
flag is used to generate code that runs faster than the default optimization level (-O0
), but it may also increase the size of the executable file 1.
I hope this helps! Let me know if you have any other questions.
Learn more:
1. stackoverflow.com2. gcc.gnu.org3. stackoverflow.com
3of30
LikeDislikeCopyExport
Get more relevant responsesWhat are some other optimization flags?How do I know which flag to use for my project?Can you explain what -O3 means?
I donât understand what this is @priort it is very incoherent.