nv2a: adjust display resolution in 1080i mode

This commit is contained in:
Antonio Abbatangelo 2022-02-10 21:18:09 -05:00 committed by mborgerson
parent a654a1f99a
commit 4bd1a07706
2 changed files with 9 additions and 0 deletions

View File

@ -619,6 +619,10 @@
#define NV_PCRTC_RASTER 0x00000808
#define NV_PRMCIO_INTERLACE_MODE 0x00000039
# define NV_PRMCIO_INTERLACE_MODE_DISABLED 0xff
#define NV_PVIDEO_INTR 0x00000100
# define NV_PVIDEO_INTR_BUFFER_0 (1 << 0)
# define NV_PVIDEO_INTR_BUFFER_1 (1 << 4)

View File

@ -4910,6 +4910,11 @@ static void pgraph_render_display(NV2AState *d, SurfaceBinding *surface)
d->vga.get_offsets(&d->vga, &pline_offset, &pstart_addr, &pline_compare);
int line_offset = surface->pitch / pline_offset;
/* Adjust viewport height for interlaced mode, used only in 1080i */
if (d->vga.cr[NV_PRMCIO_INTERLACE_MODE] != NV_PRMCIO_INTERLACE_MODE_DISABLED) {
height *= 2;
}
pgraph_apply_scaling_factor(pg, &width, &height);
glBindFramebuffer(GL_FRAMEBUFFER, d->pgraph.disp_rndr.fbo);