Skip to content

Commit

Permalink
ChangeLog.md: Document 4e028ec
Browse files Browse the repository at this point in the history
+ bump version to 3.0 beta2
  • Loading branch information
dcommander committed Feb 8, 2023
1 parent 2a5a3c6 commit 6c61033
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -10,7 +10,7 @@ if(CMAKE_EXECUTABLE_SUFFIX)
endif()

project(libjpeg-turbo C)
set(VERSION 2.1.90)
set(VERSION 2.1.91)
set(COPYRIGHT_YEAR "1991-2023")
string(REPLACE "." ";" VERSION_TRIPLET ${VERSION})
list(GET VERSION_TRIPLET 0 VERSION_MAJOR)
Expand Down
25 changes: 23 additions & 2 deletions ChangeLog.md
@@ -1,7 +1,7 @@
3.0 beta1
3.0 beta2
=========

### Significant changes relative to 2.1.5:
### Significant changes relative to 2.1.5.1:

1. Significantly sped up the computation of optimal Huffman tables. This
speeds up the compression of tiny images by as much as 2x and provides a
Expand Down Expand Up @@ -134,6 +134,27 @@ to create a 12-bit-per-component or 16-bit-per-component JPEG image.
TurboJPEG API documentation for more details.


2.1.5.1
=======

### Significant changes relative to 2.1.5:

1. The SIMD dispatchers in libjpeg-turbo 2.1.4 and prior stored the list of
supported SIMD instruction sets in a global variable, which caused an innocuous
race condition whereby the variable could have been initialized multiple times
if `jpeg_start_*compress()` was called simultaneously in multiple threads.
libjpeg-turbo 2.1.5 included an undocumented attempt to fix this race condition
by making the SIMD support variable thread-local. However, that caused another
issue whereby, if `jpeg_start_*compress()` was called in one thread and
`jpeg_read_*()` or `jpeg_write_*()` was called in a second thread, the SIMD
support variable was never initialized in the second thread. On x86 systems,
this led the second thread to incorrectly assume that AVX2 instructions were
always available, and when it attempted to use those instructions on older x86
CPUs that do not support them, an illegal instruction error occurred. The SIMD
dispatchers now ensure that the SIMD support variable is initialized before
dispatching based on its value.


2.1.5
=====

Expand Down

0 comments on commit 6c61033

Please sign in to comment.