Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions thirdparty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,7 @@ Files extracted from upstream source:
Patches:

- `0001-cmake-generated-headers.patch` ([GH-104347](https://github.com/godotengine/godot/pull/104347))
* Compare with CMake-generated headers to bump version and added potential new config values.
- `0002-disable-16bitlossless.patch` ([GH-104347](https://github.com/godotengine/godot/pull/104347))
- `0003-remove-bmp-ppm-support.patch` ([GH-104347](https://github.com/godotengine/godot/pull/104347))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
diff --git a/thirdparty/libjpeg-turbo/src/jconfig.h b/thirdparty/libjpeg-turbo/src/jconfig.h
new file mode 100644
index 0000000000..42d9654c0f
index 0000000000..50e5986c69
--- /dev/null
+++ b/thirdparty/libjpeg-turbo/src/jconfig.h
@@ -0,0 +1,62 @@
@@ -0,0 +1,69 @@
+// Originally generated by libjpeg-turbo's cmake build, then modified to support multiple platforms.
+
+/* Version ID for the JPEG library.
Expand All @@ -12,10 +12,10 @@ index 0000000000..42d9654c0f
+#define JPEG_LIB_VERSION 62
+
+/* libjpeg-turbo version */
+#define LIBJPEG_TURBO_VERSION 3.1.0
+#define LIBJPEG_TURBO_VERSION 3.1.3
+
+/* libjpeg-turbo version in integer form */
+#define LIBJPEG_TURBO_VERSION_NUMBER 3001000
+#define LIBJPEG_TURBO_VERSION_NUMBER 3001003
+
+/* Support arithmetic encoding when using 8-bit samples */
+#define C_ARITH_CODING_SUPPORTED 1
Expand All @@ -27,8 +27,15 @@ index 0000000000..42d9654c0f
+#define MEM_SRCDST_SUPPORTED 1
+
+/* Use accelerated SIMD routines when using 8-bit samples */
+// Godot: Disabled for simplicity of compiling the library cross-platform.
+// Could be enabled if it's confirmed to be worth the effort.
+//#define WITH_SIMD 1
+
+// Godot: Disable those as they're for forcing different SIMD CPU support
+// via environment variables, that's super niche and we don't build with SIMD.
+#define NO_GETENV
+#define NO_PUTENV
+
+/* This version of libjpeg-turbo supports run-time selection of data precision,
+ * so BITS_IN_JSAMPLE is no longer used to specify the data precision at build
+ * time. However, some downstream software expects the macro to be defined.
Expand Down Expand Up @@ -68,32 +75,29 @@ index 0000000000..42d9654c0f
+#endif
diff --git a/thirdparty/libjpeg-turbo/src/jconfigint.h b/thirdparty/libjpeg-turbo/src/jconfigint.h
new file mode 100644
index 0000000000..45bd3ec321
index 0000000000..38acc75108
--- /dev/null
+++ b/thirdparty/libjpeg-turbo/src/jconfigint.h
@@ -0,0 +1,102 @@
@@ -0,0 +1,103 @@
+// Originally generated by libjpeg-turbo's cmake build, then modified to support multiple platforms.
+
+/* libjpeg-turbo build number */
+#define BUILD "20250317"
+#define BUILD "Godot"
+
+/* How to hide global symbols. */
+#ifndef HIDDEN
+ #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
+ #define HIDDEN __attribute__((visibility("hidden")))
+ #else
+ #define HIDDEN
+ #endif
+#if defined(__GNUC__)
+#define HIDDEN __attribute__((visibility("hidden")))
+#else
+#define HIDDEN
+#endif
+
+/* Compiler's inline keyword */
+#undef inline
+
+/* How to obtain function inlining. */
+#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
+ #define INLINE __inline__ __attribute__((always_inline))
+#if defined(_MSC_VER)
+#define INLINE __forceinline
+#elif defined(__GNUC__)
+#define INLINE __inline__ __attribute__((always_inline))
+#else
+ #define INLINE inline
+#define INLINE inline
+#endif
+
+/* How to obtain thread-local storage */
Expand All @@ -107,7 +111,7 @@ index 0000000000..45bd3ec321
+#define PACKAGE_NAME "libjpeg-turbo"
+
+/* Version number of package */
+#define VERSION "3.1.0"
+#define VERSION "3.1.3"
+
+/* The size of `size_t', as computed by sizeof. */
+#if defined(__SIZEOF_SIZE_T__)
Expand All @@ -126,7 +130,9 @@ index 0000000000..45bd3ec321
+#endif
+
+/* Define to 1 if you have the <intrin.h> header file. */
+/* #undef HAVE_INTRIN_H */
+#if defined(_MSC_VER)
+ #define HAVE_INTRIN_H
+#endif
+
+#if defined(_MSC_VER) && defined(HAVE_INTRIN_H)
+#if (SIZEOF_SIZE_T == 8)
Expand Down Expand Up @@ -171,37 +177,11 @@ index 0000000000..45bd3ec321
+#define D_ARITH_CODING_SUPPORTED 1
+
+/* Use accelerated SIMD routines. */
+// Godot: Disabled for simplicity of compiling the library cross-platform.
+// Could be enabled if it's confirmed to be worth the effort.
+//#define WITH_SIMD 1
+
+#endif
diff --git a/thirdparty/libjpeg-turbo/src/jmorecfg.h b/thirdparty/libjpeg-turbo/src/jmorecfg.h
index 89c7842c87..c96edd2300 100644
--- a/thirdparty/libjpeg-turbo/src/jmorecfg.h
+++ b/thirdparty/libjpeg-turbo/src/jmorecfg.h
@@ -1,3 +1,5 @@
+// Modified to remove lossless jpeg support.
+
/*
* jmorecfg.h
*
@@ -242,7 +244,7 @@ typedef int boolean;

#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
-#define C_LOSSLESS_SUPPORTED /* Lossless JPEG? */
+//#define C_LOSSLESS_SUPPORTED /* Lossless JPEG? */
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
@@ -259,7 +261,7 @@ typedef int boolean;

#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
-#define D_LOSSLESS_SUPPORTED /* Lossless JPEG? */
+//#define D_LOSSLESS_SUPPORTED /* Lossless JPEG? */
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
diff --git a/thirdparty/libjpeg-turbo/src/jversion.h b/thirdparty/libjpeg-turbo/src/jversion.h
new file mode 100644
index 0000000000..40f7a6cc82
Expand Down
39 changes: 27 additions & 12 deletions thirdparty/libjpeg-turbo/patches/0002-disable-16bitlossless.patch
Original file line number Diff line number Diff line change
@@ -1,18 +1,33 @@
diff --git a/thirdparty/README.md b/thirdparty/README.md
index c22ef77af7..52b635df05 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -539,7 +539,7 @@ Patches:
## libjpeg-turbo
diff --git a/thirdparty/libjpeg-turbo/src/jmorecfg.h b/thirdparty/libjpeg-turbo/src/jmorecfg.h
index 89c7842c87..c96edd2300 100644
--- a/thirdparty/libjpeg-turbo/src/jmorecfg.h
+++ b/thirdparty/libjpeg-turbo/src/jmorecfg.h
@@ -1,3 +1,5 @@
+// Modified to remove lossless jpeg support.
+
/*
* jmorecfg.h
*
@@ -242,7 +244,7 @@ typedef int boolean;

- Upstream: https://github.com/libjpeg-turbo/libjpeg-turbo
-- Version: 3.1.0 (20ade4dea9589515a69793e447a6c6220b464535, 2024)
+- Version: 3.1.3 (af9c1c268520a29adf98cad5138dafe612b3d318, 2025)
- License: BSD-3-Clause and IJG
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
-#define C_LOSSLESS_SUPPORTED /* Lossless JPEG? */
+//#define C_LOSSLESS_SUPPORTED /* Lossless JPEG? */
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
@@ -259,7 +261,7 @@ typedef int boolean;

Files extracted from upstream source:
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
-#define D_LOSSLESS_SUPPORTED /* Lossless JPEG? */
+//#define D_LOSSLESS_SUPPORTED /* Lossless JPEG? */
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
diff --git a/thirdparty/libjpeg-turbo/src/turbojpeg.c b/thirdparty/libjpeg-turbo/src/turbojpeg.c
index 45fc0f954c..d514da43d2 100644
index 23dbe6bb75..969174f72e 100644
--- a/thirdparty/libjpeg-turbo/src/turbojpeg.c
+++ b/thirdparty/libjpeg-turbo/src/turbojpeg.c
@@ -1196,9 +1196,6 @@ bailout:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
diff --git a/thirdparty/README.md b/thirdparty/README.md
index c22ef77af7..52b635df05 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -539,7 +539,7 @@ Patches:
## libjpeg-turbo

- Upstream: https://github.com/libjpeg-turbo/libjpeg-turbo
-- Version: 3.1.0 (20ade4dea9589515a69793e447a6c6220b464535, 2024)
+- Version: 3.1.3 (af9c1c268520a29adf98cad5138dafe612b3d318, 2025)
- License: BSD-3-Clause and IJG

Files extracted from upstream source:
diff --git a/thirdparty/libjpeg-turbo/src/turbojpeg-mp.c b/thirdparty/libjpeg-turbo/src/turbojpeg-mp.c
index 6fecc5cb80..21d26536c1 100644
--- a/thirdparty/libjpeg-turbo/src/turbojpeg-mp.c
Expand Down Expand Up @@ -288,20 +275,10 @@ index 6fecc5cb80..21d26536c1 100644
#undef _JSAMPROW
#undef _buffer
diff --git a/thirdparty/libjpeg-turbo/src/turbojpeg.c b/thirdparty/libjpeg-turbo/src/turbojpeg.c
index 45fc0f954c..969174f72e 100644
index d514da43d2..969174f72e 100644
--- a/thirdparty/libjpeg-turbo/src/turbojpeg.c
+++ b/thirdparty/libjpeg-turbo/src/turbojpeg.c
@@ -1196,9 +1196,6 @@ bailout:
#define BITS_IN_JSAMPLE 12
#include "turbojpeg-mp.c"
#undef BITS_IN_JSAMPLE
-#define BITS_IN_JSAMPLE 16
-#include "turbojpeg-mp.c"
-#undef BITS_IN_JSAMPLE

/* TurboJPEG 1.2+ */
DLLEXPORT int tjCompress2(tjhandle handle, const unsigned char *srcBuf,
@@ -3094,48 +3091,3 @@ bailout:
@@ -3091,48 +3091,3 @@ bailout:
free(sizes);
return retval;
}
Expand Down
11 changes: 9 additions & 2 deletions thirdparty/libjpeg-turbo/src/jconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
#define JPEG_LIB_VERSION 62

/* libjpeg-turbo version */
#define LIBJPEG_TURBO_VERSION 3.1.0
#define LIBJPEG_TURBO_VERSION 3.1.3

/* libjpeg-turbo version in integer form */
#define LIBJPEG_TURBO_VERSION_NUMBER 3001000
#define LIBJPEG_TURBO_VERSION_NUMBER 3001003

/* Support arithmetic encoding when using 8-bit samples */
#define C_ARITH_CODING_SUPPORTED 1
Expand All @@ -21,8 +21,15 @@
#define MEM_SRCDST_SUPPORTED 1

/* Use accelerated SIMD routines when using 8-bit samples */
// Godot: Disabled for simplicity of compiling the library cross-platform.
// Could be enabled if it's confirmed to be worth the effort.
//#define WITH_SIMD 1

// Godot: Disable those as they're for forcing different SIMD CPU support
// via environment variables, that's super niche and we don't build with SIMD.
#define NO_GETENV
#define NO_PUTENV

/* This version of libjpeg-turbo supports run-time selection of data precision,
* so BITS_IN_JSAMPLE is no longer used to specify the data precision at build
* time. However, some downstream software expects the macro to be defined.
Expand Down
31 changes: 16 additions & 15 deletions thirdparty/libjpeg-turbo/src/jconfigint.h
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
// Originally generated by libjpeg-turbo's cmake build, then modified to support multiple platforms.

/* libjpeg-turbo build number */
#define BUILD "20250317"
#define BUILD "Godot"

/* How to hide global symbols. */
#ifndef HIDDEN
#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
#define HIDDEN __attribute__((visibility("hidden")))
#else
#define HIDDEN
#endif
#if defined(__GNUC__)
#define HIDDEN __attribute__((visibility("hidden")))
#else
#define HIDDEN
#endif

/* Compiler's inline keyword */
#undef inline

/* How to obtain function inlining. */
#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
#define INLINE __inline__ __attribute__((always_inline))
#if defined(_MSC_VER)
#define INLINE __forceinline
#elif defined(__GNUC__)
#define INLINE __inline__ __attribute__((always_inline))
#else
#define INLINE inline
#define INLINE inline
#endif

/* How to obtain thread-local storage */
Expand All @@ -33,7 +30,7 @@
#define PACKAGE_NAME "libjpeg-turbo"

/* Version number of package */
#define VERSION "3.1.0"
#define VERSION "3.1.3"

/* The size of `size_t', as computed by sizeof. */
#if defined(__SIZEOF_SIZE_T__)
Expand All @@ -52,7 +49,9 @@
#endif

/* Define to 1 if you have the <intrin.h> header file. */
/* #undef HAVE_INTRIN_H */
#if defined(_MSC_VER)
#define HAVE_INTRIN_H
#endif

#if defined(_MSC_VER) && defined(HAVE_INTRIN_H)
#if (SIZEOF_SIZE_T == 8)
Expand Down Expand Up @@ -97,6 +96,8 @@
#define D_ARITH_CODING_SUPPORTED 1

/* Use accelerated SIMD routines. */
// Godot: Disabled for simplicity of compiling the library cross-platform.
// Could be enabled if it's confirmed to be worth the effort.
//#define WITH_SIMD 1

#endif