Matt Borgerson
f68159d1c4
nv2a/vk: Simplify zeta to texture, add barrier
2024-12-31 01:37:05 -07:00
Matt Borgerson
e20a2b15b3
nv2a/vk: Don't release textures until after draw completes
2024-12-31 01:37:05 -07:00
Matt Borgerson
33db2787f7
nv2a/vk: Fixup depth transition stages
2024-12-31 01:37:05 -07:00
Matt Borgerson
f6d70abd04
nv2a: Fix nv2a_dbg_renderdoc_init on Windows
2024-12-31 01:37:05 -07:00
Matt Borgerson
4e75b5e3ce
nv2a/vk: Always use staging image for surface upload
2024-12-31 01:37:05 -07:00
Matt Borgerson
64e8046d1f
nv2a/vk: Specify local_size_{y,z} = 1 in compute shader
2024-12-31 01:37:05 -07:00
Matt Borgerson
dc5a220486
nv2a/vk: Specify set in compute shader layout
2024-12-31 01:37:05 -07:00
Matt Borgerson
9161e3e14a
nv2a/vk: Create surface if one not currently bound
2024-12-31 01:37:05 -07:00
Matt Borgerson
c802468d05
nv2a/vk: Relax invalid surface compat check
2024-12-31 01:37:05 -07:00
Matt Borgerson
1fec4947b6
nv2a/vk: Ensure clear rect never extends beyond surface
2024-12-31 01:37:05 -07:00
Matt Borgerson
c881f8641f
nv2a/vk: Ensure pack buffer offsets meet minStorageBufferOffsetAlignment
2024-12-31 01:37:05 -07:00
Matt Borgerson
374eada8ef
nv2a/vk: Ensure pg->clearing set before pgraph_vk_surface_update
2024-12-31 01:37:05 -07:00
Matt Borgerson
28092ad13b
nv2a/vk: Only include uniform attr definition when necessary
2024-12-31 01:37:05 -07:00
Matt Borgerson
567bc33a70
nv2a/glsl: Fix project2d usampler lookup
2024-12-31 01:37:05 -07:00
Matt Borgerson
017444b8a0
nv2a/glsl: Ensure sampler type matches texture dimensionality
2024-12-31 01:37:05 -07:00
Matt Borgerson
bc46a9303d
nv2a/vk: Add compute pipeline cache, scale workgroups
2024-12-31 01:37:05 -07:00
Matt Borgerson
8e5a77c45d
nv2a/vk: Fix missing scale in d32_sfloat_s8_uint pack
2024-12-31 01:37:05 -07:00
Matt Borgerson
ddc1a388e8
nv2a/vk: Add vertex memory offset fixme
2024-12-31 01:37:05 -07:00
mborgerson
334c6293fe
nv2a/vk: Fix swapped texture filters
2024-12-31 01:37:05 -07:00
mborgerson
ebe3ee155b
nv2a/vk: Fix compute descriptor pool size
2024-12-31 01:37:05 -07:00
Matt Borgerson
36e7cca1e9
nv2a/glsl: Initialize vars
2024-12-31 01:37:05 -07:00
Matt Borgerson
fc803fe375
nv2a/vk: Omit pipeline fragment shader when no color binding
2024-12-31 01:37:05 -07:00
Matt Borgerson
dd3bb50f11
nv2a/vk: Tighten renderpass dependencies
2024-12-31 01:37:05 -07:00
Matt Borgerson
a209df8aa5
nv2a/vk: Tighten a few layout transitions
2024-12-31 01:37:05 -07:00
Matt Borgerson
177dcc7559
nv2a/vk: Clear render_passes on finalization
2024-12-31 01:37:05 -07:00
Matt Borgerson
5119e3a365
nv2a/vk: Change display renderpass loadOp to don't care
2024-12-31 01:37:05 -07:00
Matt Borgerson
a562007f84
nv2a/vk: Enable synchronization validation
2024-12-31 01:37:05 -07:00
Matt Borgerson
c41853a3f3
nv2a/vk: Finish when queue is empty
2024-12-31 01:37:05 -07:00
Matt Borgerson
a2a193b4e3
nv2a/vk: Add assert_on_validation_msg option
2024-12-31 01:37:05 -07:00
Matt Borgerson
6bb96f607b
nv2a/vk: Add debug_shaders option
2024-12-31 01:37:05 -07:00
Matt Borgerson
bb0221af82
nv2a/vk: Target glslang to SPV 1.6
2024-12-31 01:37:05 -07:00
Matt Borgerson
c63cdc18de
nv2a/vk: Fix integer format border color
2024-12-31 01:37:05 -07:00
Matt Borgerson
b9e68a760b
nv2a/vk: Fix shadowmap readback in frag shader
2024-12-31 01:37:05 -07:00
Matt Borgerson
f08d4a89fb
nv2a/vk: Download any dirty surfaces covering vertex buffers
2024-12-31 01:37:05 -07:00
Matt Borgerson
ad0aec9adb
nv2a/vk: Move overlapping surface download logic to function
2024-12-31 01:37:05 -07:00
Matt Borgerson
da1e72a39a
nv2a/vk: Use additional descriptor sets in compute ops
2024-12-31 01:37:05 -07:00
Matt Borgerson
7018f379b3
nv2a/vk: Add debug helper function for inserting markers
2024-12-31 01:37:05 -07:00
Matt Borgerson
49ae576006
n2va/vk: Assert instead of exit() on validation error
2024-12-31 01:37:05 -07:00
Matt Borgerson
bb69e5cd2f
nv2a/vk: Finalize more display state
2024-12-31 01:37:05 -07:00
Matt Borgerson
7b37a94438
nv2a/vk: Finalize, simplify render passes
2024-12-31 01:37:05 -07:00
Matt Borgerson
e8a39d6f45
nv2a/vk: Use correct min,mag texture filters
2024-12-31 01:37:05 -07:00
Matt Borgerson
a80cfc8573
nv2a/vk: Don't call vkCmdBindVertexBuffers if 0 bindings
2024-12-31 01:37:05 -07:00
Matt Borgerson
497bac61c9
nv2a/vk: Ensure border color type matches format type
2024-12-31 01:37:05 -07:00
Matt Borgerson
2bb2084ece
nv2a/vk: Use textureLod in psh_append_shadowmap
2024-12-31 01:37:05 -07:00
Matt Borgerson
b0e3d00a5d
nv2a/vk: Drop fragment shader when only depth attachment is cleared
2024-12-31 01:37:05 -07:00
Matt Borgerson
126a51724b
nv2a/vk: Finalize clear shaders
2024-12-31 01:37:05 -07:00
Matt Borgerson
f35d489203
nv2a/vk: Fix renderer debug messenger registration
2024-12-31 01:37:05 -07:00
Matt Borgerson
3f0a7e514d
nv2a/vk: Fix display dimensions
2024-12-31 01:37:05 -07:00
Matt Borgerson
9c43c0d702
nv2a/vk: Add barrier after compute to staging buffer copy
2024-12-31 01:37:05 -07:00
Matt Borgerson
89db9590f7
nv2a/vk: Flush vertex ram buffer, insert barrier
2024-12-31 01:37:05 -07:00
Matt Borgerson
9ab8549a4e
nv2a/vk: Insert barrier after staging buffer copies
2024-12-31 01:37:05 -07:00
Matt Borgerson
1a57d4ae94
nv2a/vk: Fix finish queue submission semaphore wait stage
2024-12-31 01:37:05 -07:00
Matt Borgerson
84c09c631c
nv2a/vk: Ensure error message is always set on instance failure
2024-12-31 01:37:05 -07:00
Matt Borgerson
0169caadd0
nv2a/vk: Fallback to UBO if maxPushConstantsSize is insufficient
2024-12-31 01:37:05 -07:00
Matt Borgerson
792ed56d58
nv2a: Block renderer finalization on display present
2024-12-31 01:37:05 -07:00
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 )

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