Ok, here we go, 16 layers...
GPU_DECA_DDR3_version_16_Jan_20_2021.zip = 16 layers.
Parameters...
PDI_LAYERS = 4
SDI_LAYERS = 4
This means that the layers 0 through 15 =
PDI layer 0 -> SDI 0,1,2,3 = Layer 0,1,2,3
PDI layer 1 -> SDI 0,1,2,3 = Layer 4,5,6,7
PDI layer 2 -> SDI 0,1,2,3 = Layer 8,9,10,11
PDI layer 3 -> SDI 0,1,2,3 = Layer 12,13,14,15.
Note that to save on blockram resources, the TILE/FONT mode & memory is only available for PDI_LAYER 0. This means the tile/font mode is only functional on layers 0,1,2&3. The available ram for the font is set to 65536 bytes. This means a 256 character 16x16 pixel font with 8bpp, IE 256 colors per pixel font is possible.
Remember, the 'CLK_DIVIDER' must be at least =3 to have all SDI layers 0,1,2,&3 functional.
IE, if the 'CLK_DIVIDER' = 1, (needed for 720p@60hz, or 1080p@30hz) then only SDI layers 0&1 will function meaning only layers 0,1,4,5,8,9,12,&13 are functional. That's 8 functional window layers.
IE, if the 'CLK_DIVIDER' = 0, (needed for 1080p@60hz) then only SDI layer 0 will function meaning only layers 0,4,8,12 are functional. That's 4 functional window layers.
Do not forget to disable any unused layers as they will still eat DDR3 bandwidth, especially in 1080p@60hz as that mode eats a ton of DDR3 bandwidth. Even if the SDI layer arent functional, my controller will still try to do the DDR3 reading for those unseen SDI layers, but at full speed wasting bandwidth and potentially corrupting the display's line buffer.
The new layer swapping controls are at address 0x00F0 through 0x00FF. These controls allows you to quick swap which layers sit on top of each other allowing you to move which window appears in front of one another. This means you can also move a tile enabled layer in the 0,1,2,&3 to a different position in the window stack. Documentation is coming.
Note that by default, layer 15 is the bottom window layer, layer 0 is the top window layer. Only the BGC color setting is below layer 15 and it cannot be swapped anywhere above like all other windows 0 through 15.
You may take a look at the Debugger_test_bin_files.zip file and load the 14 layer bobafet example,and play with the swap controls in the RS232 debugger to see how you can swap which window sits in front of another.
Things left to do:
1. Fix a bug in my DDR3 controller to allow bug free support for 'Quarter Rate' mode to allow 400MHz DDR3 support fixing the current red timing report.
2. Have Nockieboy do something interesting with all 16 layers.
3. Add a hardware pixel collision detector between window layers.