Skip to content

Commit

Permalink
Remove transferFunction from astc options
Browse files Browse the repository at this point in the history
  • Loading branch information
wasimabbas-arm committed Sep 15, 2021
1 parent 10d40df commit ca5309f
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 48 deletions.
9 changes: 0 additions & 9 deletions include/ktx.h
Original file line number Diff line number Diff line change
Expand Up @@ -1197,15 +1197,6 @@ typedef struct ktxAstcParams {
/*!< Combinations of block dimensions that astcenc supports
i.e. 6x6, 8x8, 6x5 etc*/

ktx_uint32_t transferFunction;
/*!< Input/output transfer function for astcenc that can be {linear/srgb}
ASTC supports non-linear sRGB color space at both compression and decompression time.
To keep images in sRGB color space until the point that they are used:
- Compress images with `srgb` transferFunction.
- When loading images, use the sRGB texture formats instead of the regular texture formats.
The sRGB texture formats contain SRGB8_ALPHA8 in the name, for example,
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR. There is an sRGB equivalent for every RGBA format.*/

ktx_uint32_t mode;
/*!< Can be {ldr/hdr} from astcenc*/

Expand Down
37 changes: 10 additions & 27 deletions lib/astc_encode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,6 @@ astcDefaultOptions() {
params.verbose = false;
params.threadCount = 1;
params.blockDimension = KTX_PACK_ASTC_BLOCK_DIMENSION_6x6;
params.transferFunction = KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_UNKNOWN;
params.mode = KTX_PACK_ASTC_ENCODER_MODE_LDR;
params.qualityLevel = KTX_PACK_ASTC_QUALITY_LEVEL_MEDIUM;
params.normalMap = false;
Expand Down Expand Up @@ -302,35 +301,19 @@ astcVkFormat(ktx_uint32_t block_size, bool sRGB) {
static astcenc_profile
astcEncoderAction(const ktxAstcParams &params, const uint32_t* bdb) {

if (params.transferFunction == KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_SRGB &&
params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR) {
ktx_uint32_t transfer = KHR_DFDVAL(bdb, TRANSFER);

if (transfer == KHR_DF_TRANSFER_SRGB &&
params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR)
return ASTCENC_PRF_LDR_SRGB;
}
else if (params.transferFunction == KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_LINEAR &&
params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR) {
return ASTCENC_PRF_LDR;
}
else if (params.transferFunction == KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_LINEAR &&
params.mode == KTX_PACK_ASTC_ENCODER_MODE_HDR) {
return ASTCENC_PRF_HDR;
}
else if (params.transferFunction == KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_UNKNOWN) {
// If no options provided assume the user wants to use
// color space info provided from the file

ktx_uint32_t transfer = KHR_DFDVAL(bdb, TRANSFER);
if (transfer == KHR_DF_TRANSFER_SRGB &&
params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR)
return ASTCENC_PRF_LDR_SRGB;
else if (transfer == KHR_DF_TRANSFER_LINEAR) {
if (params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR)
return ASTCENC_PRF_LDR;
else
return ASTCENC_PRF_HDR;
}
else if (transfer == KHR_DF_TRANSFER_LINEAR) {
if (params.mode == KTX_PACK_ASTC_ENCODER_MODE_LDR)
return ASTCENC_PRF_LDR;
else
return ASTCENC_PRF_HDR;
}
// TODO: Add support for the following
// KTX_PACK_ASTC_ENCODER_ACTION_COMP_HDR_RGB_LDR_ALPHA; not supported
// KTX_PACK_ASTC_ENCODER_ACTION_COMP_HDR_RGB_LDR_ALPHA; currently not supported

return ASTCENC_PRF_LDR_SRGB;
}
Expand Down
7 changes: 0 additions & 7 deletions tools/toktx/toktx.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1389,13 +1389,6 @@ toktxApp::main(int argc, _TCHAR *argv[])
}
}

if (chosenOETF == KHR_DF_TRANSFER_SRGB) {
astcopts.transferFunction = KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_SRGB;
}
else {
astcopts.transferFunction = KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_LINEAR;
}

astcopts.threadCount = options.threadCount;
astcopts.normalMap = options.normalMode;

Expand Down
5 changes: 0 additions & 5 deletions utils/scapp.h
Original file line number Diff line number Diff line change
Expand Up @@ -413,14 +413,12 @@ class scApp : public ktxApp {
struct astcOptions : public ktxAstcParams {
clampedOption<ktx_uint32_t> threadCount;
clampedOption<ktx_uint32_t> blockDimension;
clampedOption<ktx_uint32_t> transferFunction;
clampedOption<ktx_uint32_t> mode;
clampedOption<ktx_uint32_t> qualityLevel;

astcOptions() :
threadCount(ktxAstcParams::threadCount, 1, 10000),
blockDimension(ktxAstcParams::blockDimension, 0, KTX_PACK_ASTC_BLOCK_DIMENSION_MAX),
transferFunction(ktxAstcParams::transferFunction, 0, KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_MAX),
mode(ktxAstcParams::mode, 0, KTX_PACK_ASTC_ENCODER_MODE_MAX),
qualityLevel(ktxAstcParams::qualityLevel, 0, KTX_PACK_ASTC_QUALITY_LEVEL_MAX)
{
Expand All @@ -432,9 +430,6 @@ class scApp : public ktxApp {
structSize = sizeof(ktxAstcParams);
blockDimension.clear();
blockDimension = KTX_PACK_ASTC_BLOCK_DIMENSION_6x6;
transferFunction.clear();
// Default to unknown to have a chance to use color space from file
transferFunction = KTX_PACK_ASTC_ENCODER_TRANSFER_FUNCTION_UNKNOWN;
mode.clear();
qualityLevel.clear();
normalMap = false;
Expand Down

0 comments on commit ca5309f

Please sign in to comment.