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 Jun 1, 2023
1 parent 546fe06 commit 9c29b9e
Show file tree
Hide file tree
Showing 2 changed files with 274 additions and 143 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 @@ -270,6 +270,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 9c29b9e

Please sign in to comment.