darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.91k stars 1.15k forks source link

3d LUT: Files in a LUT folder are listed in random order #11560

Closed frischnetz closed 2 years ago

frischnetz commented 2 years ago

After a LUT folder is selected, all contained LUT files can be scrolled through on the top right corner of the module. Yet the files appear to be listed in no determinable order. This behaviour has been around for years.

Expected behavior

The files should be listed alphabetically or in an order selected by the user.

Platform

jade-nl commented 2 years ago

I just tested this on 3.6.1, 3.8.1 and 3.9.0+1210. Sorts perfectly. Numbers before lower case before upper case for files and directories alike.

That being said: I do believe this is a (Linux/UNIX) locale issue that is not darktable specific. For example: If I start darktable after setting LC_ALL=C instead of my default LC_ALL="en_GB.UTF-8" I get a different sort order in darktable.

github-actions[bot] commented 2 years ago

This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

vsz1lu commented 2 years ago

3.9.0~git1765.304038b8-1 version is also affected by this bug Screenshot from 2022-06-18 11-10-55

vsz1lu commented 2 years ago

I just tested this on 3.6.1, 3.8.1 and 3.9.0+1210. Sorts perfectly. Numbers before lower case before upper case for files and directories alike.

That being said: I do believe this is a (Linux/UNIX) locale issue that is not darktable specific. For example: If I start darktable after setting LC_ALL=C instead of my default LC_ALL="en_GB.UTF-8" I get a different sort order in darktable.

maybe 3.9.0+1210 and before was not affected. but newer versions yes.

jade-nl commented 2 years ago

maybe 3.9.0+1210 and before was not affected. but newer versions yes.

Just rechecked with the my current version (3.9.0-1778-g0a1e1fd14), then installed and checked the latest version (4.1.0-1-g1a158fb76):

They sort as expected.

vsz1lu commented 2 years ago

Just rechecked with the my current version (3.9.0-1778-g0a1e1fd14), then installed and checked the latest version (4.1.0-1-g1a158fb76):

They sort as expected.

3.9.0~git1779.1a158fb7-1: Screenshot from 2022-06-22 22-15-53

again and again :)

i think if something is good at some user and wrong at other user is mean: something not work properly ;)

ptilopteri commented 2 years ago

open an xterm instance, change directory to where your LUT files are stored and run " ls -la " and provide the output, please

vsz1lu commented 2 years ago

open an xterm instance, change directory to where your LUT files are stored and run " ls -la " and provide the output, please

drwx------ 1 szilu szilu 4096 jún 23 00:06 . drwx------ 1 szilu szilu 8192 jún 23 00:06 .. drwx------ 1 szilu szilu 0 jún 23 2021 'Alter prints collection' drwx------ 1 szilu szilu 4096 aug 25 2014 BW drwx------ 1 szilu szilu 4096 aug 2 2008 CLUTsample drwx------ 1 szilu szilu 4096 szept 20 2015 Color drwx------ 1 szilu szilu 4096 jún 13 2021 _custom drwx------ 1 szilu szilu 4096 nov 17 2019 'Fujifilm XTrans III BW' drwx------ 1 szilu szilu 4096 nov 17 2019 'Fujifilm XTrans III COLOR' -rwx------ 1 szilu szilu 137996 márc 20 2015 Hald_CLUT_Identity_12.tif -rwx------ 1 szilu szilu 12509 dec 1 2019 Hald_CLUT_Identity_12.tif.xmp -rwx------ 1 szilu szilu 133496 máj 17 2005 Identity_level_16.HCLUT.png drwx------ 1 szilu szilu 12288 jan 9 15:49 Instagram -rwx------ 1 szilu szilu 71024 márc 25 2015 Negative.png -rwx------ 1 szilu szilu 2357 szept 20 2015 README.txt

I don't have problem with the folder structure in the dt 3.8.1

parafin commented 2 years ago

As far as I can see lut3d module just uses readdir to populate the list and doesn’t sort it afterwards. readdir can return files in any order, it depends on OS and filesystem, in some cases it can indeed be sorted alphabetically. You can chech this by passing -f flag to ls.

vsz1lu commented 2 years ago

As far as I can see lut3d module just uses readdir to populate the list and doesn’t sort it afterwards. readdir can return files in any order, it depends on OS and filesystem, in some cases it can indeed be sorted alphabetically. You can chech this by passing -f flag to ls.

hi parafin!

ls -f output:

.. 'Alter prints collection' BW CLUTsample Color 'Fujifilm XTrans III BW' 'Fujifilm XTrans III COLOR' Hald_CLUT_Identity_12.tif Hald_CLUT_Identity_12.tif.xmp Identity_level_16.HCLUT.png Instagram Negative.png README.txt _custom

it's an ntfs file system on a veracrypt volume.

i removed the 3.9.0 and installed the stable 3.8.1: the sorting is perfect in 3.8.1

so looks like something changed in the new master branch maybe resorting after readdir solving the problem - but i'm totally noob in C

up: the issue is same in dt 3.9.0 if i move the 3D lut folder to an ext4 volume

abnormally-distributed commented 2 years ago

Just upgraded to 4.0.0 on Windows 10. I also now have this issue. The order they appear in is total nonsense. For example, in one folder I have 10 luts labeled A01 through A10. They are appearing in the order A09, A08, A01, A03, A04, A06, A10, A07, A02, A05. I did not have this issue before upgrading from the last release.

vsz1lu commented 2 years ago

I also have the issue on with dt 4:

my desktop pc, windows 11 my desktop pc, Ubuntu 22.04 my notebook, windows 11 my notebook, Ubuntu 22.04

again: dt 3.8.1 NOT have this issue.

parafin commented 2 years ago

Yeah, actually I was wrong, there is a sort statement on line 1527 of lut3d.c and it was changed between 3.8.1 and 4.0.0. It was changed by @dterrahe in commit 6ce0aaa656

victoryforce commented 2 years ago

I'm working on a solution to this problem that will work the right way.

abnormally-distributed commented 2 years ago

I'm working on a solution to this problem that will work the right way.

Any updates on that?

victoryforce commented 2 years ago

I'm working on a solution to this problem that will work the right way.

Any updates on that?

I will do PR today, now I am cleaning up the code.