Skip to content

Commit 368e8c8

Browse files
jenshannoschwalmTurboGit
authored andcommitted
Fix pixelpipe basic-hash for profiles
If we change any color profile they are committed for every history entry so we can't check for them in the piece->hash but must use the final profiles available via pipe->xxx_profile_info.
1 parent 07af571 commit 368e8c8

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/develop/pixelpipe_cache.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,19 @@ static dt_hash_t _dev_pixelpipe_cache_basichash(dt_dev_pixelpipe_t *pipe,
112112
not valid any more.
113113
Do we have to keep the roi of details mask? No as that is always defined by roi_in
114114
of the mask writing module (rawprepare or demosaic)
115-
4) Please note that position is not the iop_order but the position in the pipe
116-
5) Please note that pipe->type, want_details and request_color_pick are only used if a roi is provided
115+
4) If we change any color profile they are committed for every history entry so we can't check
116+
for them in the piece->hash but must use the final profiles available via pipe->xxx_profile_info
117+
5) Please note that position is not the iop_order but the position in the pipe
118+
6) Please note that pipe->type, want_details and request_color_pick are only used if a roi is provided
117119
for better support of dt_dev_pixelpipe_piece_hash()
118120
*/
119121
const uint32_t hashing_pipemode[3] = {(uint32_t)pipe->image.id,
120122
(uint32_t)pipe->type,
121123
(uint32_t)pipe->want_detail_mask };
122124
dt_hash_t hash = dt_hash(DT_INITHASH, &hashing_pipemode, sizeof(uint32_t) * (roi ? 3 : 1));
125+
hash = dt_hash(hash, &pipe->input_profile_info, sizeof(pipe->input_profile_info));
126+
hash = dt_hash(hash, &pipe->work_profile_info, sizeof(pipe->work_profile_info));
127+
hash = dt_hash(hash, &pipe->output_profile_info, sizeof(pipe->output_profile_info));
123128

124129
// go through all modules up to position and compute a hash using the operation and params.
125130
GList *pieces = pipe->nodes;

0 commit comments

Comments
 (0)