Skip to content

Commit

Permalink
nv2a: Handle framebuffer CPU blit and PVIDEO only rendering
Browse files Browse the repository at this point in the history
Handles two edge cases:
1) CPU blits to the framebuffer without using 3D rendering.
2) Fullscreen PVIDEO rendering without any 3D rendering.

In both cases this change prevents the pgraph code from returning early,
bypassing the special case VGA handling in `sdl2_gl_refresh` and instead
using a special framebuffer texture to render the contents of VRAM.

Fixes #652
Fixes #1165

[Tests](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/antialiasing_tests.cpp)
[HW results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-Antialiasing_tests)
  • Loading branch information
abaire committed Jul 5, 2022
1 parent db389b1 commit 356da2a
Show file tree
Hide file tree
Showing 2 changed files with 225 additions and 138 deletions.
1 change: 1 addition & 0 deletions hw/xbox/nv2a/nv2a_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ typedef struct PGRAPHState {
GLuint display_size_loc;
GLuint line_offset_loc;
GLuint tex_loc;
GLuint vga_framebuffer_tex;
GLuint pvideo_tex;
GLint pvideo_enable_loc;
GLint pvideo_tex_loc;
Expand Down

0 comments on commit 356da2a

Please sign in to comment.