Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] VIDC doesn't render image correctly when display area is partially outside the border area #33

Open
1 task done
RichardBrown384 opened this issue Jul 30, 2024 · 0 comments
Labels
bug Something isn't working component:vidc

Comments

@RichardBrown384
Copy link
Owner

RichardBrown384 commented Jul 30, 2024

Checklist

  • The application is running with a good CMOS configuration.

Describe the bug
One of the core assumptions we made about the VIDC is that the display area is wholly contained with the border area.

It appears that some titles don't respect this assumption and have the some of the display area lying outside of the border area.

This causes visual issues with the affected titles. Primarily a skewed picture since we're not fetching enough pixels per line since we're ignoring those display pixels outside the border area.

To Reproduce
N/A

Expected behaviour
The picture should be drawn correctly with no skew.

Please complete the following information

  • Version [CURRENT HEAD]

Additional context
As far as I know the VTI manuals don't describe what should happen when the display area is partially outside the border area. We should probably reconsult the manual and find more documentation for the VIDC.

Sarah Walker's reply here sheds light on the matter.

  1. Inside the display region the VIDC will fetch and shift data (even outside the border area).
  2. However, blanking is active unless the display and border are active.
  3. When blanking is active, black is sent to the display.

Example VIDC state:

horizontalCyclePixels= {uint32_t} 512 [0x200]
horizontalSyncWidthPixels = {uint32_t} 38 [0x26]
horizontalBorderStartPixels = {uint32_t} 135 [0x87]
horizontalDisplayStartPixels = {uint32_t} 133 [0x85]
horizontalDisplayStart = {uint32_t} 2349842432 [0x8C0FC000]
horizontalDisplayEndPixels = {uint32_t} 453 [0x1c5]
horizontalDisplayEnd = {uint32_t} 2419572736 [0x9037C000]
horizontalBorderEndPixels = {uint32_t} 503 [0x187]
horizontalCursorStartPixels = {uint32_t} 294 [0x126]
horizontalInterlace = {uint32_t} 128 [0x80]
@RichardBrown384 RichardBrown384 added bug Something isn't working component:vidc labels Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working component:vidc
Projects
None yet
Development

No branches or pull requests

1 participant