Skip to content

Commit a4f1c09

Browse files
authored
Merge pull request #189 from EXP-code/copilot/sub-pr-183-yet-again
Only apply HDF5 shuffle filter when compression is enabled
2 parents f8d281b + ae5b00f commit a4f1c09

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

expui/BiorthBasis.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5166,9 +5166,11 @@ namespace BasisClasses
51665166
auto dcpl3 = HighFive::DataSetCreateProps{}; // covariance
51675167

51685168
// Properties for sample stats
5169-
if (H5compress) {
5169+
// Note: Sample stats only use Deflate compression, not Szip
5170+
if (H5compress > 0) {
51705171
unsigned int csz = sampleCounts.size();
51715172
dcpl1.add(HighFive::Chunking({csz, 1}));
5173+
// Only apply shuffle filter when Deflate compression is enabled (guaranteed by outer if)
51725174
if (H5shuffle) dcpl1.add(HighFive::Shuffle());
51735175
dcpl1.add(HighFive::Deflate(H5compress));
51745176
}
@@ -5207,7 +5209,7 @@ namespace BasisClasses
52075209
stanza.createAttribute<unsigned>
52085210
("fullCovar", HighFive::DataSpace::From(icov)).write(icov);
52095211

5210-
if (H5compress) {
5212+
if (H5compress > 0 || H5szip) {
52115213
// Szip parameters
52125214
const int options_mask = H5_SZIP_NN_OPTION_MASK;
52135215
const int pixels_per_block = 8;
@@ -5218,6 +5220,7 @@ namespace BasisClasses
52185220
HighFive::Chunking data_dims2{std::min<unsigned>(csz2, H5chunk), 1};
52195221

52205222
dcpl2.add(data_dims2);
5223+
// Only apply shuffle filter when compression is enabled (guaranteed by outer if)
52215224
if (H5shuffle) dcpl2.add(HighFive::Shuffle());
52225225
if (H5szip) {
52235226
dcpl2.add(HighFive::Szip(options_mask, pixels_per_block));
@@ -5231,6 +5234,7 @@ namespace BasisClasses
52315234
HighFive::Chunking data_dims3{std::min<unsigned>(csz3, H5chunk), 1};
52325235

52335236
dcpl3.add(data_dims3);
5237+
// Only apply shuffle filter when compression is enabled (guaranteed by outer if)
52345238
if (H5shuffle) dcpl3.add(HighFive::Shuffle());
52355239
if (H5szip) {
52365240
dcpl3.add(HighFive::Szip(options_mask, pixels_per_block));

exputil/EmpCylSL.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7381,10 +7381,11 @@ void EmpCylSL::WriteH5Cache()
73817381
//
73827382
auto dcpl = HighFive::DataSetCreateProps{};
73837383

7384-
if (H5compress) {
7384+
if (H5compress > 0 || H5szip) {
73857385
// Chunking
73867386
unsigned long nx = NUMX + 1, ny = NUMY + 1;
73877387
dcpl.add(HighFive::Chunking({nx, ny}));
7388+
// Only apply shuffle filter when compression is enabled (guaranteed by outer if)
73887389
if (H5shuffle) dcpl.add(HighFive::Shuffle());
73897390
if (H5szip) {
73907391
const int options_mask = H5_SZIP_NN_OPTION_MASK;

0 commit comments

Comments
 (0)