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

Stake: Intro FMV blinks between uninitialized data and movie frames #1165

Open
abaire opened this issue Jul 5, 2022 · 6 comments · May be fixed by #1146
Open

Stake: Intro FMV blinks between uninitialized data and movie frames #1165

abaire opened this issue Jul 5, 2022 · 6 comments · May be fixed by #1146
Labels
bug Something isn't working

Comments

@abaire
Copy link
Contributor

abaire commented Jul 5, 2022

Title

https://xemu.app/titles/4d440004/#Stake

Bug Description

The intro FMV for this game blinks rapidly between stale data (showing the xbox splash with incorrect pitch/resolution) and the movie content. Likely one frame correct, one frame incorrect.

This bug is not the same as #652, that fix does not work here and I don't see CPU writes to the framebuffer.

@theboy181 uploaded a video on Discord, I can confirm that I see the same behavior

Expected Behavior

Video playback should not alternate between valid and invalid frames.

xemu Version

Version: 0.7.56
Branch: master
Commit: d06a0c2
Date: Sat Jul 2 03:53:35 PM UTC 2022

System Information

CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
OS Platform: Linux
OS Version: Ubuntu 21.10
Manufacturer: NVIDIA Corporation
GPU Model: NVIDIA GeForce GTX 1070/PCIe/SSE2
Driver: 4.0.0 NVIDIA 470.129.06
Shader: 4.00 NVIDIA via Cg compiler

Additional Context

No response

@abaire abaire added the bug Something isn't working label Jul 5, 2022
@abaire
Copy link
Contributor Author

abaire commented Jul 5, 2022

nv2a_pgraph_flip_stall
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_SURFACE_COLOR_OFFSET<0x210> (0x3E30000)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xD1)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xD3)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_WAIT_FOR_IDLE<0x110> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x7C600021)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_INCREMENT_WRITE<0x12C> (0x0)
nv2a_pgraph_flip_increment_write 0x0 -> 0x1
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_STALL<0x130> (0x0)
nv2a_pgraph_flip_stall
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_SURFACE_COLOR_OFFSET<0x210> (0x3D04000)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xD5)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xD7)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_WAIT_FOR_IDLE<0x110> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x7A080021)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_INCREMENT_WRITE<0x12C> (0x0)
nv2a_pgraph_flip_increment_write 0x1 -> 0x0
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_STALL<0x130> (0x0)
nv2a_pgraph_flip_stall
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_SURFACE_COLOR_OFFSET<0x210> (0x3E30000)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xD9)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xDB)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_WAIT_FOR_IDLE<0x110> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x7C600021)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_INCREMENT_WRITE<0x12C> (0x0)
nv2a_pgraph_flip_increment_write 0x0 -> 0x1
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_STALL<0x130> (0x0)
nv2a_pgraph_flip_stall
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_SURFACE_COLOR_OFFSET<0x210> (0x3D04000)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xDD)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_BACK_END_WRITE_SEMAPHORE_RELEASE<0x1D70> (0xDF)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_SET_COLOR_CLEAR_VALUE<0x1D90> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_WAIT_FOR_IDLE<0x110> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x7A080021)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_INCREMENT_WRITE<0x12C> (0x0)
nv2a_pgraph_flip_increment_write 0x1 -> 0x0
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_NO_OPERATION<0x100> (0x0)
nv2a_pgraph_method 0: NV20_KELVIN_PRIMITIVE<0x97> -> NV097_FLIP_STALL<0x130> (0x0)

There is very little pgraph activity during the playback, just backbuffer swapping and the pgraph_surface_access_callback isn't invoked at all.

@abaire
Copy link
Contributor Author

abaire commented Jul 5, 2022

Looks like it's a pvideo overlay

@abaire
Copy link
Contributor Author

abaire commented Jul 5, 2022

I think the issue is that no 3d rendering is done to one of the backbuffers, meaning that no SurfaceBinding is set. This causes nv2a_get_framebuffer_surface to bail out early, bypassing the rendering of the pvideo surface entirely and causing stale VGA data to be displayed instead. If PVIDEO is enabled I assume it should be rendered regardless of whether there is any 3d rendering going on (e.g., in the case of a CPU blit with PVIDEO on top of it or this case where it looks like VRAM isn't being mutated directly at all).

@Triticum0
Copy link

This also affects these games #1049.

@Triticum0

This comment was marked as off-topic.

@abaire
Copy link
Contributor Author

abaire commented Jul 5, 2022

@Triticum0 :

This also affects these games #1049.

Cool, once I have a fix for this case I'll ping you to see if it fixes #1049 and we can close both if it does.

Also if you tell me what games you have, you could look into #573 and #1030. There the same issue, which affect more games that probably 100 or more and in terms of fmv issues they are the worst it terms of issues.

The slow playback will probably need a separate investigation (running under a profiler like #573 (comment)). I have 9 or so of the games in 1030 and can eventually look at them, but it might be worth starting a chat on Discord about this to see if there are other folks who can run profilers to gather more information. I don't think it'll be related to this issue, so let's discuss more either in Discord or in the comment thread of one of those issues rather than this one.

abaire added a commit to abaire/xemu that referenced this issue Jul 5, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 5, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 5, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 5, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 5, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 6, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 6, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 7, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 7, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 7, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 7, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 15, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 15, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 15, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 16, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 16, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jul 16, 2022
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue May 31, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue May 31, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jun 1, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jun 1, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jun 4, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jun 4, 2023
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 xemu-project#652
Fixes xemu-project#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)
abaire added a commit to abaire/xemu that referenced this issue Jun 5, 2023
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 xemu-project#652
Fixes xemu-project#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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants