Commit Graph

502 Commits

Author SHA1 Message Date
Matt Borgerson 25afb8603d nv2a: Handle renderer init errors more gracefully 2024-12-31 01:37:05 -07:00
Matt Borgerson c1bbe39f22 nv2a/gl: Rename some functions for clarity 2024-12-31 01:37:05 -07:00
Matt Borgerson f3b6d50d99 nv2a: Merge renderer init, init_thread methods 2024-12-31 01:37:05 -07:00
Matt Borgerson 98fa394f84 nv2a: Add note about downloading dirty surfaces during flush 2024-12-31 01:37:05 -07:00
Matt Borgerson 6fd0f175b4 nv2a: Support switching renderers at runtime 2024-12-31 01:37:05 -07:00
Matt Borgerson 7b6b5f396c nv2a/vk: Release report queue nodes at finalize 2024-12-31 01:37:05 -07:00
Matt Borgerson 3ccea5fa12 nv2a/vk: Release renderer state at finalize 2024-12-31 01:37:05 -07:00
Matt Borgerson d6e8307950 nv2a/vk: Always provide early_context_init 2024-12-31 01:37:05 -07:00
Matt Borgerson c4ac083d3d nv2a/vk: Sync RAM buffer during renderer init 2024-12-31 01:37:05 -07:00
Matt Borgerson 71d00d2208 nv2a/vk: Ensure texture bindings exist before dirty check 2024-12-31 01:37:05 -07:00
Matt Borgerson 4bd0406797 nv2a/gl: Make sure vulkan is not set on ShaderState 2024-12-31 01:37:05 -07:00
Matt Borgerson cd2278dd62 nv2a/gl: Ensure shader_binding exists before dirty check 2024-12-31 01:37:05 -07:00
Matt Borgerson 84dd112186 nv2a/gl: Improve renderer teardown 2024-12-31 01:37:05 -07:00
Matt Borgerson c1eb48b62f nv2a/vk: Fix snode->geometry init 2024-12-31 01:37:05 -07:00
Matt Borgerson 40526389f6 nv2a/vk: Clear bindings before tearing down cache 2024-12-31 01:37:05 -07:00
Matt Borgerson 6403c69326 nv2a/vk: Fix shader cache node init flag 2024-12-31 01:37:05 -07:00
Matt Borgerson fadaf19cdd nv2a/vk: Fix GArray free 2024-12-31 01:37:05 -07:00
Matt Borgerson 1973ed7f58 n2va/vk: Drop debug message 2024-12-31 01:37:05 -07:00
Matt Borgerson 27531ec1ca nv2a: Wrap nv2a_vm_state_change direct renderer calls 2024-12-31 01:37:05 -07:00
Matt Borgerson 093e654725 nv2a: Wrap pfifo direct renderer calls 2024-12-31 01:37:05 -07:00
Matt Borgerson 2800b8d22a meson: Move VMA options into meson config 2024-12-31 01:37:05 -07:00
Matt Borgerson 2bc8cb3050 nv2a/vk: Remove extraneous VK_NO_PROTOTYPES defn 2024-12-31 01:37:05 -07:00
Matt Borgerson a5385803db nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
Matt Borgerson 212988421f mcpx: Remove set but not used count variable 2024-12-29 18:42:12 -07:00
Fred Hallock 79441500fe
nv2a: Check supported line width
* Added logic to check for the supported line width range before setting the line width to avoid errors.

I also moved the glLineWidth call so that it could be after the call to get the supported line width range for the desired line type.

* Moved the glLineWidth call outside the if/else

* Moved the code to query line GL_SMOOTH_LINE_WIDTH_RANGE and GL_ALIASED_LINE_WIDTH_RANGE to nv2a_gl_context_init(void) so that it's just called while OpenGL is being initialized.

* Removed the lineWidth local variable. It's simpler to just call glLineWidth in the if and else blocks
2024-11-23 11:49:01 +13:00
Fred Hallock 7f5176bc5f
nv2a: Scale line thickness by surface scale factor 2024-11-14 21:48:22 -07:00
Matt Borgerson a8d8ef5484 nv2a: Drop unused ShaderState field material_alpha 2024-07-22 23:52:43 -07:00
Ryzee119 e7633ed4a5 eeprom: Use sha1 and rc4 util for hashing functions 2024-06-12 17:29:02 -07:00
Matt Borgerson 2be220df98 nv2a: Implement HILO texture modifier 2024-05-21 00:44:29 -07:00
Matt Borgerson b3fc80b3a8 nv2a: Implement ZCLIP_MIN,MAX with gl_ClipDistance 2023-10-22 00:22:03 -07:00
Matt Borgerson 5fa08d20d6 nv2a: Scale Z by full depth range in inverse viewport transform 2023-10-22 00:22:03 -07:00
Matt Borgerson d6e5342f89 nvnet: Add unicast and multicast filtering 2023-10-18 01:33:40 -07:00
Matt Borgerson ccb1211cd6 nvnet: Use HWADDR_PRIx for debug hwaddr printing 2023-10-18 01:33:40 -07:00
Matt Borgerson de611d611b nv2a: Left-align surface type in nv2a_pgraph_surface_target trace 2023-07-27 22:23:52 -07:00
Matt Borgerson 5c495db618 nv2a: Add [last_]surface_shape.clip_y to vmstate 2023-07-27 22:09:02 -07:00
Matt Borgerson 8da35b81a8 Merge remote-tracking branch 'origin/master' into sync/qemu-7.2.0 2023-07-15 17:24:01 -07:00
Erik Abair 7bfb7c8537 nv2a: Remove assert on TEXGEN_OBJECT_LINEAR
The behavior seems to match HW.

[Test](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/texgen_tests.cpp#L22)
![HW results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-Texgen#objectlinearpng)

Fixes #379
2023-07-09 21:19:43 -07:00
Erik Abair 22aaac801c nv2a: Compile fix for DEBUG_NV2A enabled 2023-07-08 21:52:41 -07:00
Matt Borgerson 976319b391 Merge remote-tracking branch 'origin/master' into sync/qemu-7.2.0 2023-06-18 01:19:02 -07:00
Matt Borgerson 0ee7502c23 ui: Make aspect ratio config independent, add autodetect 2023-06-18 00:58:39 -07:00
mborgerson 129c48dd6e
ui: Blank screen when VGA SCREEN_OFF is set 2023-06-14 03:36:47 -07:00
Matt Borgerson bb05a4f181 nv2a: Fix SET_ANTI_ALIASING_CONTROL
- Rename from SET_SMOOTHING_CONTROL
- Use correct register
2023-06-11 22:52:32 -07:00
Erik Abair 5cd1e3cbca nv2a: (Probably partial) handling for `1D7C`
Implements handling for the unknown 0x1D7C command in order to match observed
behavior in the MS Dashboard and Tenchu: Return from Darkness.

Setting 1D7C's low bit appears to disable the line and poly smoothing commands.

Fixes #1162

[Test](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/three_d_primitive_tests.cpp)
[HW Results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-3D_primitive)
2023-06-11 22:44:13 -07:00
Antonio Abbatangelo 546fe068de nv2a: Ignore nop draws in SET_BEGIN_END_OP_END 2023-05-17 00:15:47 +08:00
Erik Abair 9723b435fb nv2a: Make multiplication by 0 match HW behavior.
Fixes #1008

The nv2a returns 0 for anything multiplied by zero, including exceptional
values such as Inf and NaN. Desktop GPUs do not enforce this, leading to
conditions where NaNs wipe out calculations and lead to erroneous behavior.

[Test](https://github.com/abaire/nxdk_vsh_tests/blob/main/src/tests/americasarmyshader.cpp)
[HW Results](https://github.com/abaire/nxdk_vsh_tests_golden_results/wiki/Results-AmericasArmyShader)
2023-05-01 13:58:48 -07:00
wutno 065c74a00f nv2a: Don't manually set NV_PFB_CFG0 reg 2023-03-06 14:02:41 -07:00
Dustin Holden d8fa50e524 smc: Implement read/write of SMC error code storage 2023-02-14 17:10:40 -07:00
Matt Borgerson 3afd8456d5 xbox.c: Fix null string warning 2023-01-23 00:30:40 -07:00
Matt Borgerson 8e3a1b2b2c xbox: Drop old pcms->pit_enabled setting 2023-01-23 00:30:40 -07:00
Matt Borgerson b1a59ba2e9 nv2a: Add missing vga headers 2023-01-23 00:30:40 -07:00