Skip to content

Commit d123983

Browse files
committed
Bugfix in rgba -> hsla conversion for x86
1 parent 1e0c2e7 commit d123983

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

dependencies.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#
2020

2121
# Variables that describe dependencies
22-
LSP_COMMON_LIB_VERSION := 1.0.9
22+
LSP_COMMON_LIB_VERSION := 1.0.10
2323
LSP_COMMON_LIB_NAME := lsp-common-lib
2424
LSP_COMMON_LIB_TYPE := src
2525
LSP_COMMON_LIB_URL := https://github.com/sadko4u/$(LSP_COMMON_LIB_NAME).git

include/private/dsp/arch/generic/graphics.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ namespace lsp
121121
H = (R - G) / d + 4.0f;
122122

123123
// Calculate saturation
124-
if (L < 1.0f)
124+
if (L <= 0.5f)
125125
S = (L != 0.0f) ? d / L : 0.0f;
126126
else
127127
S = (L != 1.0f) ? d / (1.0f - L) : 0.0f;

include/private/dsp/arch/x86/sse2/graphics.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,15 +414,16 @@ namespace lsp
414414
__ASM_EMIT("subps %%xmm2, %%xmm5") /* xmm5 = 1 - L */ \
415415
__ASM_EMIT("cmpps $4, %%xmm2, %%xmm4") /* xmm4 = [ L != 0 ] */ \
416416
__ASM_EMIT("cmpps $4, 0x30 + %[XC], %%xmm3") /* xmm3 = [ L != 1 ] */ \
417+
__ASM_EMIT("movaps 0x40 + %[XC], %%xmm6") /* xmm6 = 0.5 */ \
417418
__ASM_EMIT("divps %%xmm2, %%xmm1") /* xmm1 = D / L */ \
418419
__ASM_EMIT("divps %%xmm5, %%xmm7") /* xmm7 = D / (1-L) */ \
419-
__ASM_EMIT("cmpps $6, %%xmm2, %%xmm6") /* xmm6 = [ L < 1 ] */ \
420+
__ASM_EMIT("cmpps $6, %%xmm2, %%xmm6") /* xmm6 = [ L < 0.5 ] */ \
420421
__ASM_EMIT("andps %%xmm4, %%xmm1") /* xmm1 = [ L != 0 ] & (D/L) */ \
421422
__ASM_EMIT("andps %%xmm3, %%xmm7") /* xmm7 = [ L != 1 ] & (D/(1-L)) */ \
422-
__ASM_EMIT("andps %%xmm6, %%xmm1") /* xmm1 = [ L != 0 ] & [ L < 1 ] & (D/L) */ \
423+
__ASM_EMIT("andps %%xmm6, %%xmm1") /* xmm1 = [ L != 0 ] & [ L < 0.5 ] & (D/L) */ \
423424
__ASM_EMIT("mulps 0x50 + %[XC], %%xmm0") /* xmm0 = H = h * 1/6 */ \
424-
__ASM_EMIT("andnps %%xmm7, %%xmm6") /* xmm6 = [ L > 1 ] & (D/(1-L)) */ \
425-
__ASM_EMIT("orps %%xmm6, %%xmm1") /* xmm1 = s = ([ L != 0 ] & [ L < 1 ] & (D/L)) | ([ L != 1 ] & (D/(1-L))) */ \
425+
__ASM_EMIT("andnps %%xmm7, %%xmm6") /* xmm6 = [ L > 0.5 ] & (D/(1-L)) */ \
426+
__ASM_EMIT("orps %%xmm6, %%xmm1") /* xmm1 = s = ([ L != 0 ] & [ L < 0.5 ] & (D/L)) | ([ L != 1 ] & (D/(1-L))) */ \
426427
__ASM_EMIT("movaps 0x30(%[RGBM]), %%xmm3") /* xmm3 = A */ \
427428
__ASM_EMIT("mulps 0x40 + %[XC], %%xmm1") /* xmm1 = S = s * 0.5 */ \
428429
\

0 commit comments

Comments
 (0)