Commit Graph
912 Commits
Author SHA1 Message Date
izzy2lost 14f020dd3b a little more stable and a little better performance. 2026-02-13 03:45:50 -05:00
Matt Borgersonandizzy2lost 999e1a421c nv2a/vk: Target Vulkan >=1.1 2026-02-12 05:23:59 -05:00
Matt Borgersonandizzy2lost 6321e42e91 nv2a/vk: Drop SDL window 2026-02-12 05:23:14 -05:00
Matt Borgersonandizzy2lost 46b93ede3b nv2a: Drop now-unused winding test 2026-02-12 05:21:44 -05:00
Matt Borgersonandizzy2lost 2a0b800dcd nv2a: Move primitive rewriting to client 2026-02-12 05:20:58 -05:00
izzy2lost 612a401408 a little better performance 2026-02-11 15:55:44 -05:00
izzy2lost a1c5f41807 beginning of touch controls 2026-02-09 19:29:00 -05:00
izzy2lost b75429b103 Video working slow bad audio 2026-02-06 19:51:23 -05:00
Matt Borgerson 704ece9ac6 Merge QEMU v10.2.0 2026-01-18 16:36:55 -07:00
Erik AbairandGitHub 24087af22a nv2a: Clip image blits to GPU tile bounds
Hardware blits that overlap an active GPU tile are clipped to the bounds of
that tile. This change checks blits against registered PFB tiles (which are
mirrored to PGRAPH via RDI) and clips blits as needed.
2026-01-15 14:04:14 -07:00
Erik Abairandmborgerson 71e5f2477e nv2a: Fix calculation of palette length
pgraph_get_texture_palette_phys_addr_length returns the length of the palette in
entries whereas the use of the returned data expects bytes. This leads to a
situation where textures that are rendered without any changes to the lower
palette entries will erroneously reuse stale data.

Test: https://github.com/abaire/nxdk_pgraph_tests/blob/0b1ae640fa76ecfc5b7b4f2b5f870404ed106114/src/tests/texture_palette_tests.cpp#L234
HW results: https://abaire.github.io/nxdk_pgraph_tests_golden_results/results/Texture_palette/index.html

Fixes #2646
2026-01-14 23:42:04 -07:00
Erik AbairandGitHub 973e7f9f31 nv2a: Handle zero sized surfaces 2026-01-14 22:17:54 -07:00
Matt Borgerson 739520523f xid: Fix USB_XID_GAMEPAD_S VMState minimum_version_id 2026-01-12 20:01:31 -07:00
Erik Abairandmborgerson c086cd107a nv2a: Handle cubemap textures passed to 2D projective samplers
Tests: https://github.com/abaire/nxdk_pgraph_tests/blob/bb915c94798906b325cc011383e1c2c270515d50/src/tests/texture_3d_as_2d_tests.cpp#L39
HW results: https://abaire.github.io/nxdk_pgraph_tests_golden_results/results/Texture_3D_as_2D/index.html

Fixes #2384
2025-12-26 14:57:31 -07:00
Erik AbairandGitHub 658f01865f nv2a/gl: Check GL_LINK_STATUS when loading cached shaders
The GL docs indicate that GL_LINK_STATUS will be set to false in cases where
the cached binary cannot be loaded successfully. This seems to be separate
from the listed glGetError failure modes, indicating that both likely need to
be tested.
2025-12-18 16:11:23 -07:00
Erik AbairandGitHub eb8e4519ed nv2a/vk: Add preferred physical device to config 2025-11-29 13:56:36 -07:00
Erik AbairandGitHub aa496f863f nv2a: Improve handling of SET_POINT_SIZE 2025-11-28 15:17:11 -07:00
Erik Abairandmborgerson e6e828362e nv2a: Handle 2D textures given to 3D texture modes
Hardware transparently supports passing 2D textures to operations that
are intended to operate on cubemaps. This change introduces a remapping
function to mimic the hardware behavior in cases where the texture
sampler does not match the expectations of the texture mode.

Fixes #1622

Tests: https://github.com/abaire/nxdk_pgraph_tests/blob/4a1fde90854f318a4725178c9c6a7f1fcd016d05/src/tests/texture_2d_as_cubemap_tests.cpp#L79
HW results: https://abaire.github.io/nxdk_pgraph_tests_golden_results/results/Texture_2D_as_cubemap/index.html
2025-11-16 13:13:21 -07:00
Erik Abairandmborgerson a4b8caf743 nv2a: Prevent GL assert on END without BEGIN 2025-11-14 12:01:13 -07:00
Erik AbairandMatt Borgerson febb54bd4d nv2a: Enforce point params min/max size
[Tests](https://github.com/abaire/nxdk_pgraph_tests/blob/5920c89548e47675f28c7e347f07fc3ee54a4709/src/tests/point_sprite_tests.cpp#L27)
[HW results](https://abaire.github.io/nxdk_pgraph_tests_golden_results/results/Point_sprite/index.html)

Fixes #2378
2025-11-10 10:50:21 -07:00
Erik AbairandGitHub 24b4b99a54 nv2a/gl: Prevent depth surface being used as display source 2025-11-06 11:53:21 -07:00
Erik Abairandmborgerson db8d27b9f4 nv2a: More accurate handling of exceptional fog values in VSH
The handling of infinite fog coordinates in #660 does not exactly
match HW behavior for all bias and multiplier values. Further testing
indicates that the handling of the infinite value appears to override
all combinations of FOG_PARAM bias/multipliers, rather than keeping
the bias. This change emulates this behavior and also fixes NaN
handling, which similarly seems to be fog-mode dependent.

Fixes #2474
Fixes #2412
Fixes #2200
Fixes #632
2025-10-29 13:21:58 -07:00
Erik AbairandGitHub dc672ab87b nv2a/gl: Move GPU property check context creation to main thread
GL context must be created from main thread on macOS.
2025-10-28 11:39:19 -07:00
coldhexandmborgerson 5eb603b28d nv2a: Emit separate triangles and line segment from geometry shader
Mesa OpenGL radeonsi driver has a bug where triangles in triangle strips
emitted from geometry shader may have provoking vertices not corresponding
to either first or last vertex convention when GL_FIRST_VERTEX_CONVENTION
is used.

This commit changes geometry shader such that it always emits separate
triangles and line segments and it doesn't matter what vertex OpenGL or
Vulkan implementation chooses as provoking.
2025-10-24 15:31:28 -04:00
coldhexandmborgerson 46741f23cc nv2a/glsl: Delete deprecated FIXME comment about about vertex order 2025-10-24 15:31:28 -04:00