You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1581 lines
51 KiB
C
1581 lines
51 KiB
C
//=====================================================================
|
|
// Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files(the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions :
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// THE SOFTWARE.
|
|
//
|
|
//=====================================================================
|
|
#ifndef BC7_ENCODE_KERNEL_H
|
|
#define BC7_ENCODE_KERNEL_H
|
|
|
|
#if defined(ISPC)||defined(ASPM)
|
|
//#include "..\..\Common\Common_Def.h"
|
|
#include "Common_Def.h"
|
|
#else
|
|
#include "Common_Def.h"
|
|
#endif
|
|
|
|
// cmp param uniform data tracking
|
|
typedef CGU_UINT8 CGU_CHANNEL;
|
|
typedef CGV_UINT32 CGV_SHIFT32;
|
|
typedef CGV_UINT8 CGV_BYTE;
|
|
typedef CGV_FLOAT CGV_ERROR;
|
|
typedef CGV_FLOAT CGV_IMAGE;
|
|
typedef CGV_INT CGV_EPOCODE;
|
|
typedef CGV_UINT8 CGV_CMPOUT;
|
|
typedef CGV_UINT8 CGV_INDEX;
|
|
typedef CGV_UINT32 CGV_INDEXPACKED;
|
|
typedef CGV_UINT32 CGV_CMPOUTPACKED;
|
|
typedef CGV_INT CGV_LEVELS;
|
|
typedef CGV_INT CGV_SUBSETS;
|
|
typedef CGV_INT CGV_MASK;
|
|
typedef CGV_INT CGV_ITTERATIONS;
|
|
typedef CGV_INT CGV_PARTID;
|
|
typedef CGV_INT CGV_FIXUPINDEX;
|
|
typedef CGV_INT CGV_RAMP;
|
|
typedef CGV_INT CGV_ENTRIES;
|
|
typedef CGV_INT CGV_TYPEINT;
|
|
typedef CGV_UINT32 CGV_TYPEUINT32;
|
|
typedef CGU_UINT8 CGU_BYTE;
|
|
typedef CGV_CMPOUT CGUV_CMPOUT;
|
|
typedef CGU_UINT8 CGUV_DSTPTR;
|
|
|
|
#define USE_VARYING
|
|
#ifdef USE_VARYING
|
|
typedef CGV_INT CGUV_BLOCKWIDTH;
|
|
#else
|
|
typedef CGU_INT CGUV_BLOCKWIDTH;
|
|
#endif
|
|
|
|
#ifndef ASPM_GPU
|
|
|
|
struct cmp_bc7_state
|
|
{
|
|
CGV_IMAGE block[16][4];
|
|
CGV_SHIFT32 best_data[4];
|
|
} ;
|
|
|
|
|
|
typedef enum
|
|
{
|
|
CGU_FORMAT_Unknown, // Undefined texture format.
|
|
|
|
// Channel Component formats-------------------------------------------------------------------------------
|
|
CGU_FORMAT_RGBA_8888, // RGBA format with 8-bit fixed channels.
|
|
|
|
// Formats supported by GPU
|
|
CGU_FORMAT_BC1, // A four component opaque (or 1-bit alpha) compressed texture format for Microsoft DirectX10. Identical to DXT1. Four bits per pixel.
|
|
CGU_FORMAT_BC6H, // BC6H compressed texture format
|
|
CGU_FORMAT_BC7, // BC7 compressed texture format
|
|
|
|
// Formats supported by CPU
|
|
CGU_FORMAT_GTC, // GTC Gradient Texture Compressor
|
|
CGU_FORMAT_MAX
|
|
} CGU_FORMAT;
|
|
|
|
//------------------------------------
|
|
// The structure describing a texture
|
|
//------------------------------------
|
|
struct CGU_Texture_Type
|
|
{
|
|
// Optional Settings
|
|
CGU_FLOAT m_fquality; // Minimum resulting quality to maintain while processing the texture, default is 0.05
|
|
CGU_INT8 m_nBlockHeight; // Size of the texture tiles (blocks) to use.during processing
|
|
CGU_INT8 m_nBlockWidth; // default = 4
|
|
CGU_INT8 m_nBlockDepth; // default = 1
|
|
|
|
// Required settings
|
|
CGU_FORMAT m_format; // Texture format
|
|
CGU_UINT32 m_src_width; // Width of the texture.
|
|
CGU_UINT32 m_src_height; // Height of the texture.
|
|
CGU_UINT32 m_stride; // Number of bytes to start of next line
|
|
CGU_UINT32 m_dwDataSize; // Size of the allocated texture data.
|
|
CGU_UINT8* m_pData; // Pointer to the texture data
|
|
};
|
|
|
|
#endif // End of ASPM_CPU
|
|
|
|
#define SOURCE_BLOCK_SIZE 16 // Size of a source block in pixels (each pixel has RGBA:8888 channels)
|
|
#define COMPRESSED_BLOCK_SIZE 16 // Size of a compressed block in bytes
|
|
#define MAX_CHANNELS 4
|
|
#define MAX_SUBSETS 3 // Maximum number of possible subsets
|
|
#define MAX_SUBSET_SIZE 16 // Largest possible size for an individual subset
|
|
#define BC7_qFAST_THRESHOLD 0.50f
|
|
#define MAX_INDEX_BITS 4 // Maximum number of index bits
|
|
|
|
typedef struct
|
|
{
|
|
CGV_IMAGE image;
|
|
CGV_INDEX index;
|
|
} CMP_di;
|
|
|
|
typedef struct
|
|
{
|
|
CGV_IMAGE image;
|
|
CGV_UINT8 index;
|
|
} CMP_du;
|
|
|
|
#define MAX_PARTITION_ENTRIES 64
|
|
|
|
#define MAX_PARTITIONS_TABLE 193
|
|
|
|
#define MAX_PARTITIONS 64 // Maximum number of partition types
|
|
|
|
#define EPSILON 0.00390625f
|
|
#define DIMENSION 4
|
|
#define BlockX 4
|
|
#define BlockY 4
|
|
#define QUANT_RT 250.0f // quality = 0.05f
|
|
//==========================================================================================================
|
|
#define LOG_CL_RANGE 5
|
|
#define LOG_CL_BASE 2
|
|
#define BIT_BASE 5
|
|
#define BIT_RANGE 9
|
|
#define MAX_CLUSTERS_BIG 16
|
|
#define MAX_CLUSTERS 8
|
|
#define BTT(bits) (bits-BIT_BASE)
|
|
#define CLT(cl) (cl-LOG_CL_BASE)
|
|
|
|
#define MAX_TRY_QUANT_TRACE 2 // used in optQuantTrace_d : increasing this has no gain in quality!, keep it set at 2
|
|
#define MAX_TRY_SHAKER 5 // used in ep_shaker_2_d if set at 4 PSNR drops by -0.1 SSIM stays the same
|
|
#define NUM_BLOCK_TYPES 8 // Number of block types in the format
|
|
|
|
#define BC7_MAX_TRACE 25000
|
|
|
|
// If this is defined, ramp calculation is done via math floor and division.
|
|
// Otherwise, ramp calculation is done by bit shifting
|
|
#define USE_HIGH_PRECISION_INTERPOLATION_BC7
|
|
|
|
typedef struct
|
|
{
|
|
CGU_INT32 k;
|
|
CGV_FLOAT d;
|
|
} TRACE;
|
|
|
|
|
|
typedef struct
|
|
#ifdef ASPM
|
|
BC7_EncodeState
|
|
#endif
|
|
{
|
|
CGV_IMAGE image_src[64];
|
|
CGV_CMPOUT cmp_out[COMPRESSED_BLOCK_SIZE];
|
|
|
|
// Common
|
|
CGV_ERROR opaque_err; // error for coding alpha=255
|
|
CGV_ERROR best_err;
|
|
|
|
// set per mode
|
|
CGU_CHANNEL channels3or4;
|
|
CGU_UINT8 bits;
|
|
CGU_INT clusters;
|
|
CGU_BYTE componentBits;
|
|
CGU_UINT8 numPartitionModes;
|
|
CGU_INT maxSubSets;
|
|
CGU_UINT8 numClusters0[2];
|
|
CGU_UINT8 numClusters1[2];
|
|
CGU_UINT8 max_idxMode;
|
|
CGU_INT modeBits[2];
|
|
CGU_BOOL optimizedQ;
|
|
|
|
CGU_UINT32 validModeMask;
|
|
CGU_INT part_count;
|
|
CGU_CHANNEL channels;
|
|
|
|
// use_icmp
|
|
CGV_CMPOUTPACKED best_cmp_out[5];
|
|
CGV_BOOL cmp_isout16Bytes;
|
|
CGU_INT refineIterations;
|
|
CGU_INT fastSkipTreshold;
|
|
}
|
|
#ifndef ASPM
|
|
BC7_EncodeState
|
|
#endif
|
|
;
|
|
|
|
typedef struct
|
|
#ifdef ASPM
|
|
cmp_mode_parameters
|
|
#endif
|
|
{
|
|
CGV_EPOCODE color_qendpoint[8];
|
|
CGV_EPOCODE alpha_qendpoint[8];
|
|
CGV_INDEXPACKED best_color_index[2];
|
|
CGV_INDEXPACKED best_alpha_index[2];
|
|
CGV_INDEX color_index[SOURCE_BLOCK_SIZE];
|
|
CGV_INDEX alpha_index[SOURCE_BLOCK_SIZE];
|
|
CGV_SHIFT32 idxMode;
|
|
CGV_SHIFT32 rotated_channel;
|
|
}
|
|
#ifndef ASPM
|
|
cmp_mode_parameters
|
|
#endif
|
|
;
|
|
|
|
|
|
typedef struct
|
|
#ifdef ASPM
|
|
BC7_Encode
|
|
#endif
|
|
{
|
|
// Global data setup at initialization time
|
|
CGU_FLOAT quality; // range is 0 to 1
|
|
CGU_FLOAT errorThreshold; // use 5 to 75
|
|
CGU_UINT32 validModeMask; // bit for mode masks def to 0xFF
|
|
CGU_BOOL imageNeedsAlpha; // default: false
|
|
CGU_BOOL colourRestrict; // default: false
|
|
CGU_BOOL alphaRestrict; // default: false
|
|
|
|
// Used to track errors in internal state code
|
|
CGV_ERROR opaque_err;
|
|
CGV_ERROR best_err;
|
|
|
|
CGU_FLOAT minThreshold;
|
|
CGU_FLOAT maxThreshold;;
|
|
|
|
// icmp code settings
|
|
CGU_INT refineIterations;
|
|
CGU_INT part_count;
|
|
CGU_INT channels;
|
|
|
|
}
|
|
#ifndef ASPM
|
|
BC7_Encode
|
|
#endif
|
|
;
|
|
|
|
CMP_CONSTANT CGU_FLOAT rampWeights[5][SOURCE_BLOCK_SIZE] = {
|
|
{ 0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}, // 0 bit index
|
|
{ 0.000000f,1.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}, // 1 bit index
|
|
{ 0.000000f,0.328125f,0.671875f,1.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}, // 2 bit index
|
|
{ 0.000000f,0.140625f,0.281250f,0.421875f,0.578125f,0.718750f,0.859375f,1.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}, // 3 bit index
|
|
{ 0.000000f,0.062500f,0.140625f,0.203125f,0.265625f,0.328125f,0.406250f,0.468750f,0.531250f,0.593750f,0.671875f,0.734375f,0.796875f,0.859375f,0.937500f,1.000000f} // 4 bit index
|
|
};
|
|
|
|
#ifndef ASPM_GPU
|
|
typedef struct
|
|
#ifdef ASPM
|
|
BC7_EncodeRamps
|
|
#endif
|
|
{
|
|
CGU_INT ep_d[4][256];
|
|
#ifdef USE_BC7_SP_ERR_IDX
|
|
CGU_UINT8 sp_err[3*4*256*2*2*16];
|
|
CGU_INT sp_idx[3*4*256*2*2*16*2];
|
|
#endif
|
|
#ifdef USE_BC7_RAMP
|
|
CGU_FLOAT ramp[3*4*256*256*16];
|
|
#endif
|
|
CGU_BOOL ramp_init;
|
|
}
|
|
#ifndef ASPM
|
|
BC7_EncodeRamps
|
|
#endif
|
|
;
|
|
#endif
|
|
|
|
CMP_CONSTANT CGU_UINT8 npv_nd[2][8] = {
|
|
{1,2,4,8,16,32,0,0}, // 3
|
|
{1,2,4,0,0 ,0 ,0,0} // 4
|
|
};
|
|
|
|
typedef enum
|
|
{
|
|
NO_ALPHA,
|
|
COMBINED_ALPHA,
|
|
SEPARATE_ALPHA
|
|
} CMP_BCE;
|
|
|
|
// Endpoint encoding type
|
|
typedef enum
|
|
{
|
|
NO_PBIT,
|
|
ONE_PBIT,
|
|
TWO_PBIT,
|
|
THREE_PBIT,
|
|
FOUR_PBIT,
|
|
FIVE_PBIT
|
|
} CMP_PBIT;
|
|
|
|
typedef struct
|
|
#ifdef ASPM
|
|
BC7_Encode_local
|
|
#endif
|
|
{
|
|
// Data for compressing a particular block mode
|
|
CGV_INT clusters[2];
|
|
CGV_BYTE parityBits;
|
|
CGV_BYTE componentBits[MAX_CHANNELS];
|
|
|
|
CMP_BCE encodingType; // Type of block
|
|
CGU_UINT8 partitionBits; // Number of bits for partition data
|
|
CGU_UINT8 rotationBits; // Number of bits for component rotation
|
|
CGU_UINT8 indexModeBits; // Number of bits for index selection
|
|
CMP_PBIT pBitType; // Type of P-bit encoding
|
|
CGU_UINT8 subsetCount; // Number of subsets
|
|
CGU_UINT8 indexBits[2]; // Number of bits per index in each index set
|
|
|
|
// Bulky temporary data used during compression of a block
|
|
CGV_UINT8 storedindex[MAX_PARTITIONS][MAX_SUBSETS][MAX_SUBSET_SIZE];
|
|
CGV_ERROR storedError[MAX_PARTITIONS];
|
|
CGV_UINT8 sortedModes[MAX_PARTITIONS];
|
|
|
|
// This stores the min and max for the components of the block, and the ranges
|
|
CGV_IMAGE blockMin[MAX_CHANNELS];
|
|
CGV_IMAGE blockMax[MAX_CHANNELS];
|
|
CGV_IMAGE blockRange[MAX_CHANNELS];
|
|
CGV_IMAGE blockMaxRange;
|
|
}
|
|
#ifndef ASPM
|
|
BC7_Encode_local
|
|
#endif
|
|
;
|
|
|
|
|
|
|
|
typedef enum
|
|
{
|
|
CART,
|
|
SAME_PAR,
|
|
BCC,
|
|
SAME_FCC,
|
|
FCC,
|
|
FCC_SAME_BCC,
|
|
} CMP_qt;
|
|
|
|
// Block component encoding
|
|
|
|
|
|
// Descriptor structure for block encodings
|
|
typedef struct
|
|
{
|
|
uniform CMP_BCE encodingType; // Type of block
|
|
CGU_UINT8 partitionBits; // Number of bits for partition data
|
|
CGU_UINT8 rotationBits; // Number of bits for component rotation
|
|
CGU_UINT8 indexModeBits; // Number of bits for index selection
|
|
CGU_UINT8 scalarBits; // Number of bits for one scalar endpoint
|
|
CGU_UINT8 vectorBits; // Number of bits for one vector endpoint(excluding P bits)
|
|
uniform CMP_PBIT pBitType; // Type of P-bit encoding
|
|
CGU_UINT8 subsetCount; // Number of subsets
|
|
CGU_UINT8 indexBits[2]; // Number of bits per index in each index set
|
|
} CMP_BTI;
|
|
|
|
typedef enum
|
|
{
|
|
COMP_RED = 0,
|
|
COMP_GREEN = 1,
|
|
COMP_BLUE = 2,
|
|
COMP_ALPHA = 3
|
|
} COMPONENT;
|
|
|
|
CMP_CONSTANT CGU_UINT8 componentRotations[4][4] = {
|
|
{ COMP_ALPHA, COMP_RED, COMP_GREEN, COMP_BLUE },
|
|
{ COMP_RED, COMP_ALPHA, COMP_GREEN, COMP_BLUE },
|
|
{ COMP_GREEN, COMP_RED, COMP_ALPHA, COMP_BLUE },
|
|
{ COMP_BLUE, COMP_RED, COMP_GREEN, COMP_ALPHA }
|
|
};
|
|
|
|
CMP_CONSTANT CMP_BTI bti[NUM_BLOCK_TYPES] = {
|
|
//encodingType,partitionBits,rotationBits,indexModeBits,scalarBits,vectorBits,pBitType, subsetCount,indexBits[0]&[1]
|
|
{ NO_ALPHA, 4, 0, 0, 0, 12, TWO_PBIT, 3, { 3, 0 } }, // Format Mode 0
|
|
{ NO_ALPHA, 6, 0, 0, 0, 18, ONE_PBIT, 2, { 3, 0 } }, // Format Mode 1
|
|
{ NO_ALPHA, 6, 0, 0, 0, 15, NO_PBIT, 3, { 2, 0 } }, // Format Mode 2
|
|
{ NO_ALPHA, 6, 0, 0, 0, 21, TWO_PBIT, 2, { 2, 0 } }, // Format Mode 3
|
|
{ SEPARATE_ALPHA, 0, 2, 1, 6, 15, NO_PBIT, 1, { 2, 3 } }, // Format Mode 4
|
|
{ SEPARATE_ALPHA, 0, 2, 0, 8, 21, NO_PBIT, 1, { 2, 2 } }, // Format Mode 5
|
|
{ COMBINED_ALPHA, 0, 0, 0, 0, 28, TWO_PBIT, 1, { 4, 0 } }, // Format Mode 6
|
|
{ COMBINED_ALPHA, 6, 0, 0, 0, 20, TWO_PBIT, 2, { 2, 0 } } // Format Mode 7
|
|
};
|
|
|
|
CMP_CONSTANT CGU_UINT8 par_vectors_nd[2][8][64][2][4] = {
|
|
{ // 3D
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{1,1,1,0},{1,1,1,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{1,1,1,0}},{{1,1,1,0},{0,0,0,0}},{{1,1,1,0},{1,1,1,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{1,1,0,0},{1,1,0,0}},{{1,0,1,0},{1,0,1,0}},{{0,1,1,0},{0,1,1,0}},{{0,0,0,0},{1,1,1,0}},{{1,1,1,0},{0,0,0,0}},{{0,1,0,0},{0,1,0,0}},{{1,1,1,0},{1,1,1,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{1,1,0,0},{0,0,0,0}},{{1,0,1,0},{0,0,0,0}},{{0,1,1,0},{0,0,0,0}},{{0,0,0,0},{1,1,0,0}},{{1,1,0,0},{1,1,0,0}},{{1,0,1,0},{1,1,0,0}},{{0,1,1,0},{1,1,0,0}},
|
|
{{0,0,0,0},{1,0,1,0}},{{1,1,0,0},{1,0,1,0}},{{1,0,1,0},{1,0,1,0}},{{0,1,1,0},{1,0,1,0}},{{0,0,0,0},{0,1,1,0}},{{1,1,0,0},{0,1,1,0}},{{1,0,1,0},{0,1,1,0}},{{0,1,1,0},{0,1,1,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{1,1,0,0},{0,0,0,0}},{{1,0,1,0},{0,0,0,0}},{{0,1,1,0},{0,0,0,0}},{{0,0,0,0},{1,1,0,0}},{{1,1,0,0},{1,1,0,0}},{{1,0,1,0},{1,1,0,0}},{{0,1,1,0},{1,1,0,0}},
|
|
{{0,0,0,0},{1,0,1,0}},{{1,1,0,0},{1,0,1,0}},{{1,0,1,0},{1,0,1,0}},{{0,1,1,0},{1,0,1,0}},{{0,0,0,0},{0,1,1,0}},{{1,1,0,0},{0,1,1,0}},{{1,0,1,0},{0,1,1,0}},{{0,1,1,0},{0,1,1,0}},
|
|
{{1,0,0,0},{1,1,1,0}},{{0,1,0,0},{1,1,1,0}},{{0,0,1,0},{1,1,1,0}},{{1,1,1,0},{1,1,1,0}},{{1,0,0,0},{0,0,1,0}},{{0,1,0,0},{0,0,1,0}},{{0,0,1,0},{0,0,1,0}},{{1,1,1,0},{0,0,1,0}},
|
|
{{1,0,0,0},{1,0,0,0}},{{0,1,0,0},{1,0,0,0}},{{0,0,1,0},{1,0,0,0}},{{1,1,1,0},{1,0,0,0}},{{1,0,0,0},{0,1,0,0}},{{0,1,0,0},{0,1,0,0}},{{0,0,1,0},{0,1,0,0}},{{1,1,1,0},{0,1,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
},
|
|
{ // 4D
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{1,1,1,1},{1,1,1,1}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{1,1,1,1}},{{1,1,1,1},{0,0,0,0}},{{1,1,1,1},{1,1,1,1}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,1,1,1}},{{0,1,1,1},{0,0,0,0}},{{0,1,1,1},{0,1,1,1}},{{1,0,0,0},{1,0,0,0}},{{1,0,0,0},{1,1,1,1}},{{1,1,1,1},{1,0,0,0}},{{1,1,1,1},{1,1,1,1}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,1,1,1}},{{0,1,1,1},{0,0,0,0}},{{0,1,1,1},{0,1,1,1}},{{1,0,0,0},{1,0,0,0}},{{1,0,0,0},{1,1,1,1}},{{1,1,1,1},{1,0,0,0}},{{1,1,1,1},{1,1,1,1}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,1,1}},{{0,0,1,1},{0,0,0,0}},{{0,1,0,1},{0,1,0,1}},{{1,0,0,0},{1,0,0,0}},{{1,0,0,0},{1,0,1,1}},{{1,0,1,1},{1,0,0,0}},{{1,1,0,1},{1,1,0,1}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
{
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},
|
|
{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}},{{0,0,0,0},{0,0,0,0}}
|
|
},
|
|
},
|
|
};
|
|
|
|
#ifndef ASPM_GPU
|
|
// =============================== USED BY DECODER THIS CODE NEEDS TO BE UPDATED =========================================
|
|
CMP_CONSTANT CGU_UINT32 BC7_FIXUPINDICES_LOCAL[MAX_SUBSETS][MAX_PARTITIONS][3] =
|
|
{
|
|
// One subset
|
|
{
|
|
{0, 0, 0},
|
|
},
|
|
|
|
{
|
|
{0, 15},{0, 15},{0, 15},{0, 15},
|
|
{0, 15},{0, 15},{0, 15},{0, 15},
|
|
{0, 15},{0, 15},{0, 15},{0, 15},
|
|
{0, 15},{0, 15},{0, 15},{0, 15},
|
|
{0, 15},{0, 2},{0, 8},{0, 2},
|
|
{0, 2},{0, 8},{0, 8},{0, 15},
|
|
{0, 2},{0, 8},{0, 2},{0, 2},
|
|
{0, 8},{0, 8},{0, 2},{0, 2},
|
|
{0, 15},{0, 15},{0, 6},{0, 8},
|
|
{0, 2},{0, 8},{0, 15},{0, 15},
|
|
{0, 2},{0, 8},{0, 2},{0, 2},
|
|
{0, 2},{0, 15},{0, 15},{0, 6},
|
|
{0, 6},{0, 2},{0, 6},{0, 8},
|
|
{0, 15},{0, 15},{0, 2},{0, 2},
|
|
{0, 15},{0, 15},{0, 15},{0, 15},
|
|
{0, 15},{0, 2},{0, 2},{0, 15},
|
|
},
|
|
|
|
// Three subsets
|
|
{
|
|
{0, 3,15}, {0, 3, 8}, {0,15, 8}, {0,15, 3},
|
|
{0, 8,15}, {0, 3,15}, {0,15, 3}, {0,15, 8},
|
|
{0, 8,15}, {0, 8,15}, {0, 6,15}, {0, 6,15},
|
|
{0, 6,15}, {0, 5,15}, {0, 3,15}, {0, 3, 8},
|
|
{0, 3,15}, {0, 3, 8}, {0, 8,15}, {0,15, 3},
|
|
{0, 3,15}, {0, 3, 8}, {0, 6,15}, {0,10, 8},
|
|
{0, 5, 3}, {0, 8,15}, {0, 8, 6}, {0, 6,10},
|
|
{0, 8,15}, {0, 5,15}, {0,15,10}, {0,15, 8},
|
|
{0, 8,15}, {0,15, 3}, {0, 3,15}, {0, 5,10},
|
|
{0, 6,10}, {0,10, 8}, {0, 8, 9}, {0,15,10},
|
|
{0,15, 6}, {0, 3,15}, {0,15, 8}, {0, 5,15},
|
|
{0,15, 3}, {0,15, 6}, {0,15, 6}, {0,15, 8},
|
|
{0, 3,15}, {0,15, 3}, {0, 5,15}, {0, 5,15},
|
|
{0, 5,15}, {0, 8,15}, {0, 5,15}, {0,10,15},
|
|
{0, 5,15}, {0,10,15}, {0, 8,15}, {0,13,15},
|
|
{0,15, 3}, {0,12,15}, {0, 3,15}, {0, 3, 8}
|
|
|
|
},
|
|
|
|
};
|
|
|
|
CMP_STATIC void SetDefaultBC7Options(BC7_Encode *BC7Encode)
|
|
{
|
|
if (BC7Encode)
|
|
{
|
|
// Set for max quality
|
|
BC7Encode->quality = 1.0f;
|
|
BC7Encode->minThreshold = 5.0f;
|
|
BC7Encode->maxThreshold = 80.0f;
|
|
BC7Encode->errorThreshold = 5.0f;
|
|
BC7Encode->validModeMask = 0xFF;
|
|
|
|
BC7Encode->imageNeedsAlpha = FALSE;
|
|
BC7Encode->colourRestrict = FALSE;
|
|
BC7Encode->alphaRestrict = FALSE;
|
|
|
|
BC7Encode->channels = 4;
|
|
BC7Encode->part_count = 128;
|
|
}
|
|
}
|
|
|
|
#ifndef ASPM
|
|
//=====================
|
|
// Used by Decoder
|
|
//=====================
|
|
__constant CGU_FLOAT rampLerpWeightsBC7[5][16] =
|
|
{
|
|
{ 0.0 }, // 0 bit index
|
|
{ 0.0, 1.0 }, // 1 bit index
|
|
{ 0.0, 21.0 / 64.0, 43.0 / 64.0, 1.0 }, // 2 bit index
|
|
{ 0.0, 9.0 / 64.0, 18.0 / 64.0, 27.0 / 64.0, 37.0 / 64.0, 46.0 / 64.0, 55.0 / 64.0, 1.0 }, // 3 bit index
|
|
{ 0.0, 4.0 / 64.0, 9.0 / 64.0, 13.0 / 64.0, 17.0 / 64.0, 21.0 / 64.0, 26.0 / 64.0, 30.0 / 64.0,
|
|
34.0 / 64.0, 38.0 / 64.0, 43.0 / 64.0, 47.0 / 64.0, 51.0 / 64.0, 55.0 / 64.0, 60.0 / 64.0, 1.0 } // 4 bit index
|
|
};
|
|
|
|
|
|
__constant CGU_UINT8 BC7_PARTITIONS[MAX_SUBSETS][MAX_PARTITIONS][MAX_SUBSET_SIZE] =
|
|
{
|
|
// Single subset partitions for both BC6H abd BC7
|
|
{
|
|
{
|
|
0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
},
|
|
},
|
|
|
|
{
|
|
{ // 0
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 1
|
|
0,0,0,1,
|
|
0,0,0,1,
|
|
0,0,0,1,
|
|
0,0,0,1
|
|
},
|
|
|
|
{ // 2
|
|
0,1,1,1,
|
|
0,1,1,1,
|
|
0,1,1,1,
|
|
0,1,1,1
|
|
},
|
|
|
|
{ // 3
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,1,1,1
|
|
},
|
|
|
|
{ // 4
|
|
0,0,0,0,
|
|
0,0,0,1,
|
|
0,0,0,1,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 5
|
|
0,0,1,1,
|
|
0,1,1,1,
|
|
0,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 6
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
0,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 7
|
|
0,0,0,0,
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
0,1,1,1
|
|
},
|
|
|
|
{ // 8
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
0,0,0,1,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 9
|
|
0,0,1,1,
|
|
0,1,1,1,
|
|
1,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 10
|
|
0,0,0,0,
|
|
0,0,0,1,
|
|
0,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 11
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
0,0,0,1,
|
|
0,1,1,1
|
|
},
|
|
|
|
{ // 12
|
|
0,0,0,1,
|
|
0,1,1,1,
|
|
1,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 13
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 14
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
1,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 15
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 16
|
|
0,0,0,0,
|
|
1,0,0,0,
|
|
1,1,1,0,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 17
|
|
0,1,1,1,
|
|
0,0,0,1,
|
|
0,0,0,0,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 18
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,0,0,0,
|
|
1,1,1,0
|
|
},
|
|
|
|
{ // 19
|
|
0,1,1,1,
|
|
0,0,1,1,
|
|
0,0,0,1,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 20
|
|
0,0,1,1,
|
|
0,0,0,1,
|
|
0,0,0,0,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 21
|
|
0,0,0,0,
|
|
1,0,0,0,
|
|
1,1,0,0,
|
|
1,1,1,0
|
|
},
|
|
|
|
{ // 22
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,0,0,0,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 23
|
|
0,1,1,1,
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,0,0,1
|
|
},
|
|
|
|
{ // 24
|
|
0,0,1,1,
|
|
0,0,0,1,
|
|
0,0,0,1,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 25
|
|
0,0,0,0,
|
|
1,0,0,0,
|
|
1,0,0,0,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 26
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
0,1,1,0
|
|
},
|
|
|
|
{ // 27
|
|
0,0,1,1,
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 28
|
|
0,0,0,1,
|
|
0,1,1,1,
|
|
1,1,1,0,
|
|
1,0,0,0
|
|
},
|
|
|
|
{ // 29
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
1,1,1,1,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 30
|
|
0,1,1,1,
|
|
0,0,0,1,
|
|
1,0,0,0,
|
|
1,1,1,0
|
|
},
|
|
|
|
{ // 31
|
|
0,0,1,1,
|
|
1,0,0,1,
|
|
1,0,0,1,
|
|
1,1,0,0
|
|
},
|
|
// ----------- BC7 only shapes from here on -------------
|
|
{ // 32
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
0,1,0,1
|
|
},
|
|
|
|
{ // 33
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
0,0,0,0,
|
|
1,1,1,1
|
|
},
|
|
|
|
{ // 34
|
|
0,1,0,1,
|
|
1,0,1,0,
|
|
0,1,0,1,
|
|
1,0,1,0
|
|
},
|
|
|
|
{ // 35
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
1,1,0,0,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 36
|
|
0,0,1,1,
|
|
1,1,0,0,
|
|
0,0,1,1,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 37
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
1,0,1,0,
|
|
1,0,1,0
|
|
},
|
|
|
|
{ // 38
|
|
0,1,1,0,
|
|
1,0,0,1,
|
|
0,1,1,0,
|
|
1,0,0,1
|
|
},
|
|
|
|
{ // 39
|
|
0,1,0,1,
|
|
1,0,1,0,
|
|
1,0,1,0,
|
|
0,1,0,1
|
|
},
|
|
|
|
{ // 40
|
|
0,1,1,1,
|
|
0,0,1,1,
|
|
1,1,0,0,
|
|
1,1,1,0
|
|
},
|
|
|
|
{ // 41
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
1,1,0,0,
|
|
1,0,0,0
|
|
},
|
|
|
|
{ // 42
|
|
0,0,1,1,
|
|
0,0,1,0,
|
|
0,1,0,0,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 43
|
|
0,0,1,1,
|
|
1,0,1,1,
|
|
1,1,0,1,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 44
|
|
0,1,1,0,
|
|
1,0,0,1,
|
|
1,0,0,1,
|
|
0,1,1,0
|
|
},
|
|
|
|
{ // 45
|
|
0,0,1,1,
|
|
1,1,0,0,
|
|
1,1,0,0,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 46
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
1,0,0,1,
|
|
1,0,0,1
|
|
},
|
|
|
|
{ // 47
|
|
0,0,0,0,
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 48
|
|
0,1,0,0,
|
|
1,1,1,0,
|
|
0,1,0,0,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 49
|
|
0,0,1,0,
|
|
0,1,1,1,
|
|
0,0,1,0,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 50
|
|
0,0,0,0,
|
|
0,0,1,0,
|
|
0,1,1,1,
|
|
0,0,1,0
|
|
},
|
|
|
|
{ // 51
|
|
0,0,0,0,
|
|
0,1,0,0,
|
|
1,1,1,0,
|
|
0,1,0,0
|
|
},
|
|
|
|
{ // 52
|
|
0,1,1,0,
|
|
1,1,0,0,
|
|
1,0,0,1,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 53
|
|
0,0,1,1,
|
|
0,1,1,0,
|
|
1,1,0,0,
|
|
1,0,0,1
|
|
},
|
|
|
|
{ // 54
|
|
0,1,1,0,
|
|
0,0,1,1,
|
|
1,0,0,1,
|
|
1,1,0,0
|
|
},
|
|
|
|
{ // 55
|
|
0,0,1,1,
|
|
1,0,0,1,
|
|
1,1,0,0,
|
|
0,1,1,0
|
|
},
|
|
|
|
{ // 56
|
|
0,1,1,0,
|
|
1,1,0,0,
|
|
1,1,0,0,
|
|
1,0,0,1
|
|
},
|
|
|
|
{ // 57
|
|
0,1,1,0,
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
1,0,0,1
|
|
},
|
|
|
|
{ // 58
|
|
0,1,1,1,
|
|
1,1,1,0,
|
|
1,0,0,0,
|
|
0,0,0,1
|
|
},
|
|
|
|
{ // 59
|
|
0,0,0,1,
|
|
1,0,0,0,
|
|
1,1,1,0,
|
|
0,1,1,1
|
|
},
|
|
|
|
{ // 60
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
0,0,1,1,
|
|
0,0,1,1
|
|
},
|
|
|
|
{ // 61
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
1,1,1,1,
|
|
0,0,0,0
|
|
},
|
|
|
|
{ // 62
|
|
0,0,1,0,
|
|
0,0,1,0,
|
|
1,1,1,0,
|
|
1,1,1,0
|
|
},
|
|
|
|
{ // 63
|
|
0,1,0,0,
|
|
0,1,0,0,
|
|
0,1,1,1,
|
|
0,1,1,1
|
|
},
|
|
},
|
|
|
|
|
|
// Table.P3 - only for BC7
|
|
|
|
{
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,2,2,1,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
2,2,1,1,
|
|
2,2,2,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
2,0,0,1,
|
|
2,2,1,1,
|
|
2,2,1,1
|
|
},
|
|
|
|
{
|
|
0,2,2,2,
|
|
0,0,2,2,
|
|
0,0,1,1,
|
|
0,1,1,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,1,2,2,
|
|
1,1,2,2
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,0,2,2,
|
|
0,0,2,2
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
0,0,2,2,
|
|
1,1,1,1,
|
|
1,1,1,1
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
2,2,1,1,
|
|
2,2,1,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
1,1,1,1,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
2,2,2,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,1,2,
|
|
0,0,1,2,
|
|
0,0,1,2,
|
|
0,0,1,2
|
|
},
|
|
|
|
{
|
|
0,1,1,2,
|
|
0,1,1,2,
|
|
0,1,1,2,
|
|
0,1,1,2
|
|
},
|
|
|
|
{
|
|
0,1,2,2,
|
|
0,1,2,2,
|
|
0,1,2,2,
|
|
0,1,2,2
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,1,1,2,
|
|
1,1,2,2,
|
|
1,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
2,0,0,1,
|
|
2,2,0,0,
|
|
2,2,2,0
|
|
},
|
|
|
|
{
|
|
0,0,0,1,
|
|
0,0,1,1,
|
|
0,1,1,2,
|
|
1,1,2,2
|
|
},
|
|
|
|
{
|
|
0,1,1,1,
|
|
0,0,1,1,
|
|
2,0,0,1,
|
|
2,2,0,0
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
1,1,2,2,
|
|
1,1,2,2,
|
|
1,1,2,2
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
0,0,2,2,
|
|
0,0,2,2,
|
|
1,1,1,1
|
|
},
|
|
|
|
{
|
|
0,1,1,1,
|
|
0,1,1,1,
|
|
0,2,2,2,
|
|
0,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,1,
|
|
0,0,0,1,
|
|
2,2,2,1,
|
|
2,2,2,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,1,1,
|
|
0,1,2,2,
|
|
0,1,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
1,1,0,0,
|
|
2,2,1,0,
|
|
2,2,1,0
|
|
},
|
|
|
|
{
|
|
0,1,2,2,
|
|
0,1,2,2,
|
|
0,0,1,1,
|
|
0,0,0,0
|
|
},
|
|
|
|
{
|
|
0,0,1,2,
|
|
0,0,1,2,
|
|
1,1,2,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,1,1,0,
|
|
1,2,2,1,
|
|
1,2,2,1,
|
|
0,1,1,0
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,1,1,0,
|
|
1,2,2,1,
|
|
1,2,2,1
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
1,1,0,2,
|
|
1,1,0,2,
|
|
0,0,2,2
|
|
},
|
|
|
|
{
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
2,0,0,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,1,2,2,
|
|
0,1,2,2,
|
|
0,0,1,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
2,0,0,0,
|
|
2,2,1,1,
|
|
2,2,2,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,2,
|
|
1,1,2,2,
|
|
1,2,2,2
|
|
},
|
|
|
|
{
|
|
0,2,2,2,
|
|
0,0,2,2,
|
|
0,0,1,2,
|
|
0,0,1,1
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
0,0,1,2,
|
|
0,0,2,2,
|
|
0,2,2,2
|
|
},
|
|
|
|
{
|
|
0,1,2,0,
|
|
0,1,2,0,
|
|
0,1,2,0,
|
|
0,1,2,0
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
1,1,1,1,
|
|
2,2,2,2,
|
|
0,0,0,0
|
|
},
|
|
|
|
{
|
|
0,1,2,0,
|
|
1,2,0,1,
|
|
2,0,1,2,
|
|
0,1,2,0
|
|
},
|
|
|
|
{
|
|
0,1,2,0,
|
|
2,0,1,2,
|
|
1,2,0,1,
|
|
0,1,2,0
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
2,2,0,0,
|
|
1,1,2,2,
|
|
0,0,1,1
|
|
},
|
|
|
|
{
|
|
0,0,1,1,
|
|
1,1,2,2,
|
|
2,2,0,0,
|
|
0,0,1,1
|
|
},
|
|
|
|
{
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
2,2,2,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
2,1,2,1,
|
|
2,1,2,1
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
1,1,2,2,
|
|
0,0,2,2,
|
|
1,1,2,2
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
0,0,1,1,
|
|
0,0,2,2,
|
|
0,0,1,1
|
|
},
|
|
|
|
{
|
|
0,2,2,0,
|
|
1,2,2,1,
|
|
0,2,2,0,
|
|
1,2,2,1
|
|
},
|
|
|
|
{
|
|
0,1,0,1,
|
|
2,2,2,2,
|
|
2,2,2,2,
|
|
0,1,0,1
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
2,1,2,1,
|
|
2,1,2,1,
|
|
2,1,2,1
|
|
},
|
|
|
|
{
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
0,1,0,1,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,2,2,2,
|
|
0,1,1,1,
|
|
0,2,2,2,
|
|
0,1,1,1
|
|
},
|
|
|
|
{
|
|
0,0,0,2,
|
|
1,1,1,2,
|
|
0,0,0,2,
|
|
1,1,1,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
2,1,1,2,
|
|
2,1,1,2,
|
|
2,1,1,2
|
|
},
|
|
|
|
{
|
|
0,2,2,2,
|
|
0,1,1,1,
|
|
0,1,1,1,
|
|
0,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,2,
|
|
1,1,1,2,
|
|
1,1,1,2,
|
|
0,0,0,2
|
|
},
|
|
|
|
{
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
2,1,1,2,
|
|
2,1,1,2
|
|
},
|
|
|
|
{
|
|
0,1,1,0,
|
|
0,1,1,0,
|
|
2,2,2,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
0,0,1,1,
|
|
0,0,1,1,
|
|
0,0,2,2
|
|
},
|
|
|
|
{
|
|
0,0,2,2,
|
|
1,1,2,2,
|
|
1,1,2,2,
|
|
0,0,2,2
|
|
},
|
|
|
|
{
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
0,0,0,0,
|
|
2,1,1,2
|
|
},
|
|
|
|
{
|
|
0,0,0,2,
|
|
0,0,0,1,
|
|
0,0,0,2,
|
|
0,0,0,1
|
|
},
|
|
|
|
{
|
|
0,2,2,2,
|
|
1,2,2,2,
|
|
0,2,2,2,
|
|
1,2,2,2
|
|
},
|
|
|
|
{
|
|
0,1,0,1,
|
|
2,2,2,2,
|
|
2,2,2,2,
|
|
2,2,2,2
|
|
},
|
|
|
|
{
|
|
0,1,1,1,
|
|
2,0,1,1,
|
|
2,2,0,1,
|
|
2,2,2,0
|
|
},
|
|
},
|
|
};
|
|
#endif
|
|
|
|
#endif // !ASPM_GPU
|
|
|
|
|
|
|
|
#endif
|