Files
V2TMUMemTester/Test_Data_NoMem_TestPatterns.c

762 lines
18 KiB
C

/* V2MemTest - A CLI Tool to test & fix Voodoo² TMU System
* Copyright (C) 2026 ChaCha
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "Test_Data_NoMem.h"
const def_sFaultSourceLineMap ar_sFaultSourceLineMap[] =
{
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_0,
.eTMUFaultSource_TMU0_RES = RA10_1,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_0,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_0,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_0,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_1,
.eTMUFaultSource_TMU0_RES = RA10_2,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_1,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_1,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_1,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_2,
.eTMUFaultSource_TMU0_RES = RA10_3,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_2,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_2,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_2,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_3,
.eTMUFaultSource_TMU0_RES = RA10_4,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_3,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_3,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_3,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_4,
.eTMUFaultSource_TMU0_RES = RA11_1,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_4,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_4,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_4,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_5,
.eTMUFaultSource_TMU0_RES = RA11_2,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_5,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_5,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_5,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_6,
.eTMUFaultSource_TMU0_RES = RA11_3,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_6,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_6,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_6,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_7,
.eTMUFaultSource_TMU0_RES = RA11_4,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_7,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_7,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_7,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_8,
.eTMUFaultSource_TMU0_RES = RA12_1,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_8,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_8,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_8,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_9,
.eTMUFaultSource_TMU0_RES = RA12_2,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_9,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_9,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_9,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_10,
.eTMUFaultSource_TMU0_RES = RA12_3,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_10,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_10,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_10,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_11,
.eTMUFaultSource_TMU0_RES = RA12_4,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_11,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_11,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_11,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_12,
.eTMUFaultSource_TMU0_RES = RA13_1,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_12,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_12,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_12,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_13,
.eTMUFaultSource_TMU0_RES = RA13_2,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_13,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_13,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_13,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_14,
.eTMUFaultSource_TMU0_RES = RA13_3,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_14,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_14,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_14,
},
{
.eTMUFaultSource_FBI = U3_FBI_TF_DATA_15,
.eTMUFaultSource_TMU0_RES = RA13_4,
.eTMUFaultSource_TMU0_FBI = U9_TMU0_TF_DATA_15,
.eTMUFaultSource_TMU0_TMU1 = U9_TMU0_FT_DATA_15,
.eTMUFaultSource_TMU1 = U8_TMU1_TF_DATA_15,
},
};
const def_sTestPattern ar_sExpectedPattern_Test3[] =
{
{
.bReferenceSet = true, // Nominal set
.u8FaultLineIdx = 0,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 0,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 1,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 2,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 3,
.data = {
.access = {
.u16Pix = { {0xF7FE,0xF7FF,0xFFFF,0xFFFF},
{0xF7FE,0xF7FE,0xF7FF,0xFFFF},
{0xF7FE,0xF7FE,0xF7FE,0xF7FE},
{0xF7FE,0xF7FE,0xF7FE,0xF7FE}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 4,
.data = {
.access = {
.u16Pix = { {0xEFFD,0xEFFF,0xFFFF,0xFFFF},
{0xEFFD,0xEFFD,0xEFFF,0xFFFF},
{0xEFFD,0xEFFD,0xEFFD,0xEFFD},
{0xEFFD,0xEFFD,0xEFFD,0xEFFD}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 5,
.data = {
.access = {
.u16Pix = { {0xDFFB,0xDFFF,0xFFFF,0xFFFF},
{0xDFFB,0xDFFB,0xDFFF,0xFFFF},
{0xDFFB,0xDFFB,0xDFFB,0xDFFB},
{0xDFFB,0xDFFB,0xDFFB,0xDFFB}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 6,
.data = {
.access = {
.u16Pix = { {0xBFF7,0xBFFF,0xFFFF,0xFFFF},
{0xBFF7,0xBFF7,0xBFFF,0xFFFF},
{0xBFF7,0xBFF7,0xBFF7,0xBFF7},
{0xBFF7,0xBFF7,0xBFF7,0xBFF7}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 7,
.data = {
.access = {
.u16Pix = { {0x7FEF,0x7FFF,0xFFFF,0xFFFF},
{0x7FEF,0x7FEF,0x7FFF,0xFFFF},
{0x7FEF,0x7FEF,0x7FEF,0x7FEF},
{0x7FEF,0x7FEF,0x7FEF,0x7FEF}
},
.u8APix = { {0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 8,
.data = {
.access = {
.u16Pix = { {0x0000,0x0000,0xFFFF,0xFFFF},
{0x0000,0x0000,0x0000,0xFFFF},
{0x0000,0x0000,0x0000,0x0000},
{0x0000,0x0000,0x0000,0x0000}
},
.u8APix = { {0x00,0x00,0xFF,0xFF},
{0x00,0x00,0x00,0xFF},
{0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 9,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF},
{0xFFFF,0xFFFF,0xFFFF,0xFFFF}
},
.u8APix = { {0xFD,0xFD,0xFF,0xFF},
{0xFD,0xFD,0xFD,0xFF},
{0xFD,0xFD,0xFD,0xFD},
{0xFD,0xFD,0xFD,0xFD}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 10,
.data = {
.access = {
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0xFFFF},
{0xFFDF,0xFFDF,0xFFFF,0xFFFF},
{0xFFDF,0xFFDF,0xFFDF,0xFFFF},
{0xFFDF,0xFFDF,0xFFDF,0xFFDF}
},
.u8APix = { {0xFB,0xFB,0xFB,0xFB},
{0xFB,0xFB,0xFB,0xFB},
{0xFB,0xFB,0xFB,0xFB},
{0xFB,0xFB,0xFB,0xFB}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 11,
.data = {
.access = {
.u16Pix = { {0xFFBF,0xFFFF,0xFFFF,0xFFFF},
{0xFFBF,0xFFBF,0xFFFF,0xFFFF},
{0xFFBF,0xFFBF,0xFFBF,0xFFBF},
{0xFFBF,0xFFBF,0xFFBF,0xFFBF}
},
.u8APix = { {0xF7,0xF7,0xFF,0xFF},
{0xF7,0xF7,0xF7,0xFF},
{0xF7,0xF7,0xF7,0xF7},
{0xF7,0xF7,0xF7,0xF7}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 12,
.data = {
.access = {
.u16Pix = { {0xFF7F,0xFFFF,0xFFFF,0xFFFF},
{0xFF7F,0xFF7F,0xFFFF,0xFFFF},
{0xFF7F,0xFF7F,0xFF7F,0xFF7F},
{0xFF7F,0xFF7F,0xFF7F,0xFF7F}
},
.u8APix = { {0xEF,0xEF,0xFF,0xFF},
{0xEF,0xEF,0xEF,0xFF},
{0xEF,0xEF,0xEF,0xEF},
{0xEF,0xEF,0xEF,0xEF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 13,
.data = {
.access = {
.u16Pix = { {0xFEFF,0xFFFF,0xFFFF,0xFFFF},
{0xFEFF,0xFEFF,0xFFFF,0xFFFF},
{0xFEFF,0xFEFF,0xFEFF,0xFEFF},
{0xFEFF,0xFEFF,0xFEFF,0xFEFF}
},
.u8APix = { {0xDF,0xDF,0xFF,0xFF},
{0xDF,0xDF,0xDF,0xFF},
{0xDF,0xDF,0xDF,0xDF},
{0xDF,0xDF,0xDF,0xDF}
},
}
}
},
{ //OK
.bReferenceSet = false,
.u8FaultLineIdx = 14,
.data = {
.access = {
.u16Pix = { {0xFDFF,0xFFFF,0xFFFF,0xFFFF},
{0xFDFF,0xFDFF,0xFFFF,0xFFFF},
{0xFDFF,0xFDFF,0xFDFF,0xFDFF},
{0xFDFF,0xFDFF,0xFDFF,0xFDFF}
},
.u8APix = { {0xBF,0xBF,0xFF,0xFF},
{0xBF,0xBF,0xBF,0xFF},
{0xBF,0xBF,0xBF,0xBF},
{0xBF,0xBF,0xBF,0xBF}
},
}
}
},
{//OK
.bReferenceSet = false,
.u8FaultLineIdx = 15,
.data = {
.access = {
.u16Pix = { {0xFBFF,0xFFFF,0xFFFF,0xFFFF},
{0xFBFF,0xFBFF,0xFFFF,0xFFFF},
{0xFBFF,0xFBFF,0xFBFF,0xFBFF},
{0xFBFF,0xFBFF,0xFBFF,0xFBFF}
},
.u8APix = { {0x7F,0x7F,0xFF,0xFF},
{0x7F,0x7F,0x7F,0xFF},
{0x7F,0x7F,0x7F,0x7F},
{0x7F,0x7F,0x7F,0x7F}
},
}
}
},
};
const unsigned int uNbPattern_Test3 =
sizeof(ar_sExpectedPattern_Test3)/sizeof(def_sTestPattern);
const def_sTestPattern ar_sExpectedPattern_Test3_Dither[] =
{
{
.bReferenceSet = true, // Nominal set
.u8FaultLineIdx = 0,
.data = {
.access = {
.u16Pix = { {0xFFFF,0xFFFF,0xFFFF,0x0040},
{0xFFFF,0xFFFF,0x0040,0x0040},
{0xFFFF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 0,
.data = {
.access = {
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
{0xFFFF,0xFFFF,0x0040,0x0040},
{0xFFFF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 1,
.data = {
.access = {
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
{0xFFFF,0xFFFF,0x0040,0x0040},
{0xF7FE,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 2,
.data = {
.access = {
.u16Pix = { {0xF7FE,0xFFFF,0xFFFF,0x0040},
{0xFFFF,0xF7FE,0x0040,0x0040},
{0xF7FE,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 3,
.data = {
.access = {
.u16Pix = { {0xF7FE,0xF7FF,0xFFFF,0x0040},
{0xF7FE,0xF7FE,0x0040,0x0040},
{0xF7FE,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 4,
.data = {
.access = {
.u16Pix = { {0xEFFD,0xEFFF,0xFFFF,0x0040},
{0xEFFD,0xEFFD,0x0040,0x0040},
{0xEFFD,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 5,
.data = {
.access = {
.u16Pix = { {0xDFFB,0xDFFF,0xFFFF,0x0040},
{0xDFFB,0xDFFB,0x0040,0x0040},
{0xDFFB,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 6,
.data = {
.access = {
.u16Pix = { {0xBFF7,0xBFFF,0xFFFF,0x0040},
{0xC7F8,0xBFF7,0x0040,0x0040},
{0xBFF7,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 7,
.data = {
.access = {
.u16Pix = { {0x7FEF,0x7FEF,0xFFFF,0x0040},
{0x87F0,0x7FEF,0x0040,0x0040},
{0x7FEF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFF,0xFF,0xFF,0x0F},
{0xFF,0xFF,0x0F,0x0F},
{0xFF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 8,
.data = {
.access = {
.u16Pix = { {0x0040,0x0040,0xFFFF,0x0040},
{0x0040,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0x0F,0x0F,0xFF,0x0F},
{0x0F,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 9,
.data = {
.access = {
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0x0040},
{0xFFFF,0xFFDF,0x0040,0x0040},
{0xFFDF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFD,0xFD,0xFF,0x0F},
{0xFD,0xFD,0x0F,0x0F},
{0xFD,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 10,
.data = {
.access = {
.u16Pix = { {0xFFDF,0xFFFF,0xFFFF,0x0040},
{0xFFDF,0xFFDF,0x0040,0x0040},
{0xFFDF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xFB,0xFB,0xFF,0x0F},
{0xFB,0xFB,0x0F,0x0F},
{0xFB,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 11,
.data = {
.access = {
.u16Pix = { {0xFFBF,0xFFFF,0xFFFF,0x0040},
{0xFFBF,0xFFBF,0x0040,0x0040},
{0xFFBF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xF7,0xF7,0xFF,0x0F},
{0xF7,0xF7,0x0F,0x0F},
{0xF7,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 12,
.data = {
.access = {
.u16Pix = { {0xFF7F,0xFFFF,0xFFFF,0x0040},
{0xFF7F,0xFF7F,0x0040,0x0040},
{0xFF7F,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xEF,0xEF,0xFF,0x0F},
{0xEF,0xEF,0x0F,0x0F},
{0xEF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 13,
.data = {
.access = {
.u16Pix = { {0xFEFF,0xFFFF,0xFFFF,0x0040},
{0xFEFF,0xFEFF,0x0040,0x0040},
{0xFEFF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xDF,0xDF,0xFF,0x0F},
{0xDF,0xDF,0x0F,0x0F},
{0xDF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{ //OK !
.bReferenceSet = false,
.u8FaultLineIdx = 14,
.data = {
.access = {
.u16Pix = { {0xFDFF,0xFFFF,0xFFFF,0x0040},
{0xFDFF,0xFDFF,0x0040,0x0040},
{0xFDFF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0xBF,0xBF,0xFF,0x0F},
{0xBF,0xBF,0x0F,0x0F},
{0xBF,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
{//OK
.bReferenceSet = false,
.u8FaultLineIdx = 15,
.data = {
.access = {
.u16Pix = { {0xFBFF,0xFFFF,0xFFFF,0x0040},
{0xFC1F,0xFBFF,0x0040,0x0040},
{0xFBFF,0x0040,0x0040,0x0040},
{0x0040,0x0040,0x0040,0x0040}
},
.u8APix = { {0x7F,0xFF,0xFF,0x0F},
{0x7F,0x7F,0x0F,0x0F},
{0x7F,0x0F,0x0F,0x0F},
{0x0F,0x0F,0x0F,0x0F}
},
}
}
},
};
const unsigned int uNbPattern_Test3_Dither =
sizeof(ar_sExpectedPattern_Test3_Dither)/sizeof(def_sTestPattern);