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 16, 2022
1 parent 8d274e5 commit 7f48bc5
Show file tree
Hide file tree
Showing 2 changed files with 273 additions and 144 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
Loading

0 comments on commit 7f48bc5

Please sign in to comment.