Commit Graph

676 Commits

Author SHA1 Message Date
Samuliak
d79d7fea63 implement sampler cache 2024-08-15 11:44:06 +02:00
Samuliak
9982ac7acb remove more unnecessary rebinds 2024-08-15 10:58:33 +02:00
Samuliak
9a215e064f don't bind textures and buffers which are already bound 2024-08-15 10:15:05 +02:00
Exzap
2843da4479 padscore: Invoke sampling callbacks every 5ms
This fixes high input latency in games like Pokemon Rumble U which update input via the sampling callbacks
2024-08-15 05:00:09 +02:00
Exzap
b0bab273e2 padscore: Simulate queue behaviour for KPADRead 2024-08-15 02:16:24 +02:00
Samuliak
ed7354fa1b reset depth bias 2024-08-14 21:23:18 +02:00
Samuliak
be98734358 fix: incorrect roundEven implementation 2024-08-14 20:58:47 +02:00
Samuliak
0bb99aaa75 set depth bias 2024-08-14 20:28:28 +02:00
Samuliak
c4688e1ad1 stringify utility shader source 2024-08-14 16:21:43 +02:00
Samuliak
d48de5b56f fix: buffer cache crash on shutdown 2024-08-14 15:37:06 +02:00
SamoZ256
52062bd285
Merge branch 'main' into metal 2024-08-14 15:17:35 +02:00
Samuliak
3c1a7479c2 save pipelines to a binary archive 2024-08-14 15:16:10 +02:00
Samuliak
53efb9e5b2 prepare for shader cache 2024-08-14 11:57:01 +02:00
Samuliak
13834ca9cb correct comment 2024-08-14 07:59:22 +02:00
Samuliak
bba2bbcefb use buffer allocator for restrided vertex buffers 2024-08-13 19:00:39 +02:00
Samuliak
27925a4fd9 do vertex buffer restride in a void vertex function 2024-08-13 18:28:10 +02:00
Samuliak
5e9537c777 fix: render pass mess 2024-08-13 16:40:25 +02:00
Skyth (Asilkan)
c49296acdc
Add support for iterating directories in graphics pack content folders. (#1288) 2024-08-13 15:53:04 +02:00
Samuliak
4b7c01ee2a fix: 3D texture copies & fix: present filter 2024-08-13 11:44:49 +02:00
Samuliak
3f52f3acfe fix: cubemap sampling 2024-08-13 07:30:33 +02:00
Exzap
e551f8f524 Fix clang compile error 2024-08-13 05:57:55 +02:00
Exzap
f52970c822 Vulkan: Allow RGBA16F texture format with SRGB bit 2024-08-13 04:47:43 +02:00
Exzap
e02cc42d67 COS: Implement PPC va_list, va_arg and update related functions 2024-08-13 01:00:56 +02:00
Samuliak
0c73ff8452 use multiple command buffers per frame 2024-08-12 14:27:28 +02:00
Samuliak
34d8076ab6 fix: srgb 2024-08-12 11:36:12 +02:00
Samuliak
5e748cdb48 support surface copy parameters 2024-08-12 11:14:55 +02:00
SamoZ256
8496fc1574
Merge branch 'main' into metal 2024-08-12 10:40:53 +02:00
Samuliak
7fb3e1bd1e support cubemap arrays 2024-08-12 10:27:52 +02:00
Samuliak
5bc9913bf4 implement surface copy 2024-08-11 20:31:19 +02:00
Samuliak
8316cee59a prepare for surface copy 2024-08-11 20:09:48 +02:00
Samuliak
eb573fcaca fix: color write mask and unpackHalf2x16 2024-08-11 18:32:50 +02:00
Samuliak
c6ab45a098 fix: vertex buffer leaks 2024-08-11 14:17:40 +02:00
Samuliak
caba20da4b apply gamma correction 2024-08-11 13:47:06 +02:00
Samuliak
6d34d24322 fix: missing color attachments & bind some other state 2024-08-11 13:35:26 +02:00
Samuliak
a38ddb5fc2 fix: shadows 2024-08-08 19:25:12 +02:00
Exzap
598298cb3d Vulkan: Fix stencil front mask 2024-08-08 16:07:45 +02:00
Samuliak
5c246d55bd implement transform feedback 2024-08-08 13:52:48 +02:00
Samuliak
e0791c3bf4 set stencil reference value 2024-08-08 11:58:18 +02:00
Samuliak
a50ce997df fix: writing to depth from a fragment shader 2024-08-07 21:14:31 +02:00
Samuliak
1bcdade83e set stencil state 2024-08-07 20:59:05 +02:00
Samuliak
d3249dc324 implement texture readback 2024-08-07 18:20:09 +02:00
Exzap
bf2208145b Enable async shader compile by default 2024-08-07 16:35:15 +02:00
Samuliak
e2ec602c43 specialize fragment shader output types & fix: shader errors 2024-08-07 13:25:38 +02:00
Samuliak
d7e9aff230 implement triangle fan reindexing 2024-08-07 11:44:16 +02:00
Exzap
d81eb952a4 nsyshid: Silence some logging in release builds 2024-08-06 22:58:23 +02:00
Samuliak
ac651eba77 implement vertex stride workaround 2024-08-06 20:42:38 +02:00
Samuliak
82dcbd98a6 prepare for vertex stride workaround 2024-08-06 19:08:22 +02:00
Samuliak
99ff282720 implement more primitive types & warn about vertex stride 2024-08-06 16:29:06 +02:00
Samuliak
5fc45407db fix: texture swizzle 2024-08-06 13:42:06 +02:00
Samuliak
0a7f30c6a4 implement texture swizzle 2024-08-06 10:23:57 +02:00
Samuliak
d64e64e5ef fix: texture updates and buffer bindings 2024-08-06 06:43:22 +02:00
Samuliak
f11526a244 fix: texture bindings 2024-08-05 08:54:11 +02:00
Samuliak
5030a2e84a implement color buffer clear 2024-08-04 15:09:49 +02:00
Exzap
1575866eca Vulkan: Add R32_X8_FLOAT format 2024-08-04 14:47:51 +02:00
Samuliak
763d57d921 implement texture copy and clear 2024-08-04 13:30:34 +02:00
Samuliak
ce6d4cacd1 implement sampler states 2024-08-03 19:58:40 +02:00
Samuliak
d2edc41680 fix: present issues 2024-08-03 16:15:22 +02:00
Samuliak
fa53af54db fix: memory leaks 2024-08-03 15:26:57 +02:00
Samuliak
fe3b84b4a7 fix: buffer allocator 2024-08-03 15:01:52 +02:00
Samuliak
406a85672d implement depth stencil cache & fix: textureSize 2024-08-03 10:01:57 +02:00
Samuliak
d7411e27f7 implement render pipeline cache 2024-08-03 09:33:32 +02:00
Samuliak
c6f66167a5 fix: viewport 2024-08-03 08:36:34 +02:00
Samuliak
db709c3495 fix: present issue 2024-08-03 08:24:39 +02:00
Samuliak
4022755a33 implement proper bit cast in shaders 2024-08-02 20:25:37 +02:00
Samuliak
4173675f03 implement depth state & texture clears 2024-08-02 19:42:34 +02:00
Samuliak
a2d15858ad fix: shader errors 2024-08-02 17:48:25 +02:00
Samuliak
e4abb305ac implement blending 2024-08-01 20:45:24 +02:00
Samuliak
d4564c18f2 fix: viewport and scissor 2024-08-01 17:55:16 +02:00
Samuliak
1fbd6ad376 set viewport and scissor 2024-07-31 20:50:24 +02:00
Samuliak
be8a560496 optimize index buffers 2024-07-30 19:27:52 +02:00
Samuliak
0cb83d4668 fix: support buffer data & fix: depth 2024-07-29 20:04:41 +02:00
Samuliak
f01130022a rework command encoder system 2024-07-29 19:00:13 +02:00
SamoZ256
89a2c23dd7
Merge branch 'cemu-project:main' into metal 2024-07-29 15:13:39 +02:00
Samuliak
8800de0229 update CMakeLists.txt 2024-07-29 15:12:42 +02:00
Joshua de Reeper
517e68fe57
nsyshid: Tidyups and Fixes (#1275) 2024-07-28 18:50:20 +02:00
Samuliak
7ae29a74cd present 2024-07-28 18:43:47 +02:00
Samuliak
35eea12950 bind default sampler 2024-07-28 16:32:37 +02:00
Samuliak
7ea18d8a5f bind resources to shaders 2024-07-28 07:36:32 +02:00
Samuliak
cb525b22ff implement vertex descriptors & draw 2024-07-27 21:26:26 +02:00
Samuliak
e5395277a7 implement render passes 2024-07-27 19:14:00 +02:00
Samuliak
4c78c6afbb implement texture decoding 2024-07-27 15:20:51 +02:00
Samuliak
4976ff3084 fix: sampling & capture boundaries 2024-07-27 11:36:51 +02:00
Exzap
c73fa3761c Fix compatibility with GCC 2024-07-27 04:45:36 +02:00
Samuliak
af3ce80b7c fix: shader errors and shader crashes 2024-07-26 18:56:30 +02:00
Samuliak
aac9b123a5 improve shadergen & create shaders 2024-07-26 15:43:15 +02:00
Samuliak
69597166f3 start the shader decompiler 2024-07-26 11:42:18 +02:00
Samuliak
46981d7b03 implement pixel formats and texture copy 2024-07-26 08:51:27 +02:00
Exzap
5328e9eb10 CPU: Fix overflow bit calculation in SUBFO instruction
Since rD can overlap with rA or rB the result needs to be stored in a temporary
2024-07-26 06:03:00 +02:00
Exzap
47f1dcf996 debugger: Add symbol support to PPC stack traces
Also moved the declaration to precompiled.h instead of redefining it wherever it is used
2024-07-26 06:03:00 +02:00
Exzap
252429933f debugger: Slightly optimize symbol list updates 2024-07-26 06:03:00 +02:00
Exzap
026d547dcc Use HTTP 1.1 in Nintendo API requests 2024-07-26 06:03:00 +02:00
Exzap
f1685eab66
h264: Use asynchronous decoding when possible (#1257) 2024-07-26 05:48:42 +02:00
Samuliak
9b127be38d create and present drawable 2024-07-25 16:37:38 +02:00
Samuliak
6db893c446 implement texture view & fix: crashes 2024-07-25 14:05:56 +02:00
Samuliak
98370260d3 initialize Metal 2024-07-25 12:53:24 +02:00
Samuliak
2477bad06b start metal backend 2024-07-25 11:18:35 +02:00
capitalistspz
e65abf4898
Suppress unnecessary GTK messages (#1267) 2024-07-23 22:18:55 +02:00
Joshua de Reeper
a1c1a608d7
nsyshid: Emulate Infinity Base (#1246) 2024-07-23 03:18:48 +02:00
Exzap
64232ffdbd
Windows default to non-portable + Reworked MLC handling and related UI (#1252) 2024-07-23 03:13:36 +02:00
goeiecool9999
7522c8470e
resource: move fontawesome to .rodata (#1259) 2024-07-19 14:24:46 +02:00
Exzap
9d366937cd Workaround for compiler issue with Visual Studio 17.10 2024-07-07 08:55:26 +02:00
Joshua de Reeper
5209677f2f
nsyshid: Add SetProtocol and SetReport support for libusb backend (#1243) 2024-07-02 03:32:37 +02:00
Colin Kinloch
64b0b85ed5
Create GamePad window at correct size (#1247)
Don't change the size on canvas initialization
2024-06-29 22:31:47 +02:00
Joshua de Reeper
aefbb918be
nsyshid: Skylander emulation fixes and code cleanup (#1244) 2024-06-28 15:44:49 +02:00
Joshua de Reeper
93b58ae6f7
nsyshid: Add infrastructure and support for emulating Skylander Portal (#971) 2024-06-28 00:55:20 +02:00
Exzap
f3d20832c1 Avoid an unhandled exception when mlc path is invalid 2024-06-25 19:28:21 +02:00
Exzap
d4c2c3d209 nsyskbd: Stub KBDGetKey
Fixes MSX VC games freezing on boot
2024-06-25 15:50:06 +02:00
Exzap
1672f969bb Latte: Add support for vertex format used by Rabbids Land 2024-06-09 17:53:34 +02:00
Exzap
16070458ed Logging: Restructure menu + allow toggeling APIErrors logtype
The logtype "APIErrors" previously was always enabled. This option is intended to help homebrew developers notice mistakes in how they use CafeOS API. But some commercial games trigger these a lot and cause log.txt bloat (e.g. seen in XCX). Thus this commit changes it so that it's off by default and instead can be toggled if desired.

Additionally in this commit:
- COS module logging options are no longer translatable (our debug logging is fundamentally English)
- Restructured the log menu and moved the logging options that are mainly of interest to Cemu devs into a separate submenu
2024-06-02 21:39:40 +02:00
Exzap
5f825a1fa8 Latte: Always allow views with the same format as base texture
Fixes crash/assert in VC N64 titles
2024-06-02 21:39:40 +02:00
Colin Kinloch
d33337d539
Fix GamePad window size (#1224) 2024-05-29 00:36:12 +02:00
Exzap
f576269ed0 Refactor legacy method of emulating thread events 2024-05-29 00:34:11 +02:00
Exzap
da8fd5b7c7 nn_save: Refactor and modernize code 2024-05-29 00:07:37 +02:00
Exzap
1ee9d5c78c coreinit: Tweak JD2019 workaround to avoid XCX softlock 2024-05-27 01:24:24 +02:00
goeiecool9999
aadd2f4a1a
Input: Assign profile name correctly on save (#1217) 2024-05-25 01:48:53 +02:00
qurious-pixel
149fe10a4e
CI+MacOS: Use libusb dylib from vcpkg (#1219) 2024-05-25 01:48:17 +02:00
Exzap
b048a1fd9e Use CURLOPT_USERAGENT instead of manually setting User-Agent 2024-05-22 05:08:03 +02:00
Exzap
a059338890
Add initial NTAG and NFC implementation 2024-05-22 04:45:10 +02:00
goeiecool9999
523a1652df
OpenGL: Restore ProgramBinary cache for GL shaders (#1209) 2024-05-22 04:23:33 +02:00
goeiecool9999
c913a59c7a
TitleList: Add homebrew title type (#1203) 2024-05-22 04:11:02 +02:00
GaryOderNichts
964d2acb44 Filestream_unix: Include cstdarg 2024-05-18 20:47:09 +02:00
GaryOderNichts
a115921b43 Fix inconsistency with int types 2024-05-18 20:37:37 +02:00
GaryOderNichts
eb1983daa6 nfc: Remove backup path 2024-05-18 20:37:37 +02:00
GaryOderNichts
8fe69cd0fb Properly implement NFC result codes 2024-05-18 20:37:37 +02:00
GaryOderNichts
41fe598e33 nfc: Implement UID filter 2024-05-18 20:37:37 +02:00
GaryOderNichts
8e8431113a ntag: Implement NTAGWrite 2024-05-18 20:37:37 +02:00
GaryOderNichts
1c6b209692 Add initial ntag and nfc implementation 2024-05-18 20:37:37 +02:00
GaryOderNichts
84e78088fb PPCCoreCallback: Add support for stack args if GPR limit is reached 2024-05-18 20:37:37 +02:00
splatoon1enjoyer
13b90874f9
Fix commas edge case in strings when parsing an assembly line (#1201) 2024-05-13 16:52:25 +02:00
GaryOderNichts
b2a6cccc89
nn_act: Implement GetTransferableId (#1197) 2024-05-09 12:12:34 +02:00
GaryOderNichts
10d553e1c9
zlib125: Implement deflateInit_ (#1194) 2024-05-07 11:56:28 +02:00
Exzap
3f8722f0a6 Track online-enable and network-service settings per-account instead of globally 2024-05-06 18:18:42 +02:00
Exzap
065fb7eb58 coreinit: Add reschedule special case to avoid a deadlock
Fixes Just Dance 2019 locking up on boot
2024-05-06 09:15:36 +02:00
capitalistspz
7d6d417354
Input: Improve setting of dpd_enable_fg (#1127) 2024-05-06 03:27:30 +02:00
Exzap
bd13d4bdc3 nn_act: Make AcquireToken gracefully fail in offline mode + refactor 2024-05-05 17:05:11 +02:00
Exzap
dd3ed56509 nn_save: Fix inverted condition preventing accessing other title's saves 2024-05-05 10:05:35 +02:00
Exzap
70afe3a033 nlibcurl: Use separte logging type 2024-05-05 09:11:08 +02:00
goeiecool9999
dc480ac00b
Add support for WUHB file format (#1190) 2024-05-05 02:35:01 +02:00
qurious-pixel
f28043e0e9
Linux/Mac Auto-Updater (#1145) 2024-05-05 01:34:36 +02:00
Exzap
a744670486 coreinit: Add export for OSGetForegroundBucketFreeArea 2024-05-05 01:33:15 +02:00
Exzap
48d2a8371b sndcore: Write log message instead of asserting in AXSetDeviceRemixMatrix
Fixes a crash in Watch Dogs due to the non-debug assert
2024-05-05 01:33:15 +02:00
Exzap
91a010fbdd proc_ui: Fix crash due to incorrect version handling
Resolves a crash in NEX Remix
2024-05-04 08:05:10 +02:00
Exzap
a16c37f0c5 coreinit: Rework thread creation
New implementation is much closer to console behavior. For example we didn't align the stack which would cause crashes in the Miiverse applet
2024-05-04 07:05:59 +02:00
Exzap
041f29a914 nn_act: Implement GetTimeZoneId placeholder 2024-05-03 02:44:10 +02:00
Exzap
1b5c885621 nn_acp: Implement ACPGetTitleMetaXml 2024-05-03 02:41:39 +02:00
Exzap
c11d83e9d8 coreinit: Implement MCP_GetTitleId 2024-05-03 02:41:05 +02:00
Exzap
379950d185 coreinit+nn_save: Cleanup some legacy code 2024-05-01 05:06:50 +02:00
Exzap
e7c6862e19 DownloadManager: Fix missing updates 2024-05-01 01:55:55 +02:00
Exzap
1c73dc9e1b Implement proc_ui.rpl + stub SYSSwitchToEManual() to avoid softlocks
- Full reimplementation of proc_ui.rpl with all 19 exports
- Foreground/Background messages now go to the coreinit system message queue as they should (instead of using a hack where proc_ui receives them directly)
- Add missing coreinit API needed by proc_ui: OSGetPFID(), OSGetUPID(), OSGetTitleID(), __OSCreateThreadType()
- Use big-endian types in OSMessage
- Flesh out the stubs for OSDriver_Register and OSDriver_Unregister a bit more since we need to call it from proc_ui. Similiar small tweaks to other coreinit API
- Stub sysapp SYSSwitchToEManual() and _SYSSwitchToEManual() in such a way that they will trigger the expected background/foreground transition, avoiding softlocks in games that call these functions
2024-04-30 23:29:15 +02:00
Exzap
c038e758ae IOSU: Clean up resource on service shutdown
Also set device-dependent thread name
2024-04-30 23:19:11 +02:00