MCPcopy Create free account
hub / github.com/GPUOpen-Tools/compressonator / ReIndexShapef

Function ReIndexShapef

cmp_compressonatorlib/bc6h/bc6h_encode.cpp:823–884  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

821}
822
823void ReIndexShapef(AMD_BC6H_Format& BC6H_data, int shape_indices[BC6H_MAX_SUBSETS][MAX_SUBSET_SIZE])
824{
825 float error = 0;
826 float bestError;
827 int bestIndex = 0;
828 int sub0index = 0;
829 int sub1index = 0;
830 int MaxPallet;
831 int region = (BC6H_data.region - 1);
832
833 if (region == 0)
834 MaxPallet = 16;
835 else
836 MaxPallet = 8;
837
838 for (int i = 0; i < BC6H_MAX_SUBSET_SIZE; i++)
839 {
840 // subset 0 or subset 1
841 if (PARTITIONS[region][BC6H_data.d_shape_index][i])
842 {
843 bestError = FLT_MAX;
844 bestIndex = 0;
845
846 // For two shape regions max Pallet is 8
847 for (int j = 0; j < MaxPallet; j++)
848 {
849 // Calculate error from original
850 error = abs(BC6H_data.din[i][0] - BC6H_data.Paletef[1][j].x) + abs(BC6H_data.din[i][1] - BC6H_data.Paletef[1][j].y) +
851 abs(BC6H_data.din[i][2] - BC6H_data.Paletef[1][j].z);
852 if (error < bestError)
853 {
854 bestError = error;
855 bestIndex = j;
856 }
857 }
858
859 shape_indices[1][sub1index] = bestIndex;
860 sub1index++;
861 }
862 else
863 {
864 // This is shared for one or two shape regions max Pallet either 16 or 8
865 bestError = FLT_MAX;
866 bestIndex = 0;
867
868 for (int j = 0; j < MaxPallet; j++)
869 {
870 // Calculate error from original
871 error = abs(BC6H_data.din[i][0] - BC6H_data.Paletef[0][j].x) + abs(BC6H_data.din[i][1] - BC6H_data.Paletef[0][j].y) +
872 abs(BC6H_data.din[i][2] - BC6H_data.Paletef[0][j].z);
873 if (error < bestError)
874 {
875 bestError = error;
876 bestIndex = j;
877 }
878 }
879
880 shape_indices[0][sub0index] = bestIndex;

Callers 1

EncodePatternMethod · 0.70

Calls 1

absFunction · 0.85

Tested by

no test coverage detected