dont recall expensive branchy func
This commit is contained in:
parent
6a5f86f201
commit
402fa3ae93
|
|
@ -856,19 +856,14 @@ uvec2 DecodeBlockSize(uint mode_layout, uint mode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint DecodeMaxWeight(uint mode) {
|
uint DecodeMaxWeight(uint mode_layout, uint mode) {
|
||||||
const uint mode_layout = FindLayout(mode);
|
const uint mode0_or = (mode & 0x3) << 1;
|
||||||
uint weight_index = (mode & 0x10) != 0 ? 1 : 0;
|
const uint mode5_or = (mode & 0xc) >> 1;
|
||||||
if (mode_layout < 5) {
|
const uint cmp_moden = 0 - uint(mode_layout < 5);
|
||||||
weight_index |= (mode & 0x3) << 1;
|
const uint cmp_add6 = 0 - (uint(mode_layout != 9) & (mode >> 9) & 1);
|
||||||
} else {
|
return (((mode >> 4) & 1)
|
||||||
weight_index |= (mode & 0xc) >> 1;
|
| (mode0_or & cmp_moden) | (mode5_or & ~cmp_moden))
|
||||||
}
|
+ (6 & cmp_add6) - 1;
|
||||||
weight_index -= 2;
|
|
||||||
if ((mode_layout != 9) && ((mode & 0x200) != 0)) {
|
|
||||||
weight_index += 6;
|
|
||||||
}
|
|
||||||
return weight_index + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DecompressBlock(ivec3 coord) {
|
void DecompressBlock(ivec3 coord) {
|
||||||
|
|
@ -903,7 +898,7 @@ void DecompressBlock(ivec3 coord) {
|
||||||
base_cem = StreamBits(6);
|
base_cem = StreamBits(6);
|
||||||
}
|
}
|
||||||
const uint base_mode = base_cem & 3;
|
const uint base_mode = base_cem & 3;
|
||||||
const uint max_weight = DecodeMaxWeight(mode);
|
const uint max_weight = DecodeMaxWeight(mode_layout, mode);
|
||||||
const uint weight_bits = GetPackedBitSize(size_params, dual_plane, max_weight);
|
const uint weight_bits = GetPackedBitSize(size_params, dual_plane, max_weight);
|
||||||
const uint extra_cem_bits = base_mode > 0 ? ((0x85200 >> (num_partitions * 4)) & 0x0f) : 0;
|
const uint extra_cem_bits = base_mode > 0 ? ((0x85200 >> (num_partitions * 4)) & 0x0f) : 0;
|
||||||
const uint plane_selector_bits = dual_plane ? 2 : 0;
|
const uint plane_selector_bits = dual_plane ? 2 : 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue