08-28-2019 11:11 AM
I'm using video frame buffer read IP with remapper and DPTX 1.4 IP for display. I initiallly set the IP memory format to be RGB8. The IP works fine. Then I tried RGBX8 format, the value loaded into DDR4 has been verified, but the output is not right. When I use all red pixel and set the pattern in RGBX8 format as 0xFF0000FF, memory brouser shows good value. The display has image mixed with red, green and blue colors. ILA check of frame buffer read output also shows pixel value has been shifting, either FF0000, or 00FF00 or 0000FF. I also tried load into a picture, I found the picture shape has been skewed and the color is not right either.
From the above observation, it seems video buffer read IP is still taking 3bytes from memory instead of 4bytes. That could cause both pixel change and image shape skew. I have modified code to make sure Video frame buffer read configures the memory type to be RGBX8 (XVIDC_CSF_MEM_RGBX8 -- 10). Is there anything else I can check?
I'm using vivado 2019.1 and ZCU106 EVM.
Thanks and Regards,
08-29-2019 02:35 AM
Can you provide a screenshot of the options you selected in the Video Frame Buffer Read and Write IP Configuration GUIs?
09-11-2019 03:41 PM
It looks like you are using the Bare Metal drivers to read data from the memory.
You said that when you set the format to RGB you read the expected datat, but when you set the format to RGBX that you see the data moving. You might want to check to see if the data is written into memory in the RGBX format. If the data was writting into memory in RGB format and you try to read it out in RGBX format, you would see similar results to what you are describing, where the data changes position as you read it out of memory.
One way to test that the data is being written into memory in the RGBX format you could use the Video Frame Buffer Write and make sure that it is configured to write in RGBX format.
You might want to look at the Video Frame Buffer Write Example Design. You can find more details about it in PG278 on page 37. To generate it you just right click on an instance of the Video Frame Buffer Write IP and select "Open IP Example Design...". This would give you both the Video Frame Buffer Write and Video Frame Buffer Read to do some testing.