Commit Graph

739 Commits

Author SHA1 Message Date
Samuliak
074f9f6f3e align buffer stride after setting to min stride 2024-08-29 09:28:38 +02:00
Samuliak
7a28985454 properly implement 0 stride vertex buffers 2024-08-29 09:23:34 +02:00
Samuliak
b011d756ee adjust texture swizzle 2024-08-29 08:47:22 +02:00
Samuliak
64610c161f limit buffer allocation size 2024-08-28 20:14:56 +02:00
Samuliak
bbed00751f hack: don't attempt to compile shaders with errors 2024-08-28 20:09:45 +02:00
Samuliak
a6c8d83436 release unused buffers 2024-08-28 16:42:55 +02:00
Samuliak
35740c5c8e always do texture copies on gpu 2024-08-28 15:26:42 +02:00
Samuliak
be76dadb90 do surface copy properly 2024-08-28 13:43:06 +02:00
Samuliak
1b44269d70 simplify flush 2024-08-28 13:24:01 +02:00
Samuliak
163eeea102 use texture views for surface copies 2024-08-28 13:19:51 +02:00
Samuliak
366be049a4 fix: validation errors 2024-08-28 11:51:31 +02:00
squidbus
9a53b19403
CI+build: Improve macOS builds (#1310) 2024-08-28 11:06:49 +02:00
Samuliak
0e61471c5e skip draws when pipeline is invalid 2024-08-27 16:01:50 +02:00
Samuliak
4572f906a3 fix: infinite command buffer wait 2024-08-27 16:01:27 +02:00
Samuliak
b7a1adec91 clip mode 2024-08-27 14:39:52 +02:00
Samuliak
3439b3259e uncomment drc swap buffer 2024-08-27 08:18:17 +02:00
Samuliak
cd8b74ba32 fix: buffer allocator leaks 2024-08-26 18:31:22 +02:00
Samo Z
b7f88d093a implement buffer locking system 2024-08-26 12:22:33 +02:00
Exzap
1234e2c118
Preparations for 2.1 (#1306) 2024-08-26 11:43:38 +02:00
Samo Z
6c8947d0e5 fix: temporary buffer allocator 2024-08-26 08:07:49 +02:00
Samo Z
a693bf564f fix: issues on Intel Macs 2024-08-25 20:32:46 +02:00
Samuliak
96d6168c50 add: additional debug info 2024-08-25 10:15:10 +02:00
Samuliak
c905399f1f fix: ImGui issues 2024-08-25 10:09:18 +02:00
bl
dc9d99b03b
nn_fp: Implement GetMyComment and UpdateCommentAsync (#1173) 2024-08-24 21:03:03 +02:00
Samuliak
b105a383aa add: basic debug overlay 2024-08-24 17:48:02 +02:00
Samuliak
6bf3406793 implement IsPadWindowActive 2024-08-24 17:30:56 +02:00
Samuliak
c4a26d4c70 report total vram correctly 2024-08-24 17:06:50 +02:00
Samuliak
7499c3fbe7 add: ImGui support 2024-08-24 17:03:49 +02:00
Exzap
573c98b2f8 GfxPack: Workaround for invisible detail panel
Fixes #1307
There is probably a better way to calculate the maximum width. But this suffices for now as a workaround
2024-08-23 19:26:33 +02:00
Samuliak
d4a1074425 rework the present system 2024-08-23 10:52:20 +02:00
Samuliak
6bb191212b simplify texture readback 2024-08-23 09:41:00 +02:00
Samuliak
28aef858f2 fix: texture readback 2024-08-23 09:00:00 +02:00
Samuliak
8e87b9676a fix: missing lod parameter 2024-08-22 18:20:26 +02:00
Samuliak
c05b2d0b48 don't stringify shader source & move vertex buffer bindings by 1 2024-08-22 15:02:49 +02:00
Samuliak
67a64c9fe9 rework the binding system 2024-08-22 13:58:50 +02:00
Samuliak
3d0055af6a end render pass if attachment is being read 2024-08-21 15:53:40 +02:00
Samuliak
4f7288d937 fix: rect mesh shader errors 2024-08-21 14:51:36 +02:00
Samuliak
339af5c4c5 support formats with X components 2024-08-21 13:49:15 +02:00
Samuliak
a832bc225e support rect primitive emulation 2024-08-21 12:12:45 +02:00
Samuliak
7500a54b38 fix: geometry shaders 2024-08-21 08:17:41 +02:00
Samuliak
76cf3de80b disable vertex buffer restride for object shaders 2024-08-20 20:27:41 +02:00
Samuliak
97f441ecf1 draw with geometry shaders 2024-08-20 20:14:02 +02:00
Samuliak
2f4ceb33e0 patch object and mesh shaders 2024-08-20 18:59:25 +02:00
Samuliak
9679c6b7e8 set primitive count in mesh shaders 2024-08-20 17:33:55 +02:00
Samuliak
46269c0069 fix: mesh shader errors 2024-08-20 09:52:54 +02:00
Samuliak
b10bcd422e emit mesh shaders 2024-08-20 09:20:22 +02:00
Samuliak
6b1360415b emit object shaders 2024-08-20 08:22:24 +02:00
Samuliak
ca256eb764 check for pixel format support 2024-08-19 16:40:36 +02:00
Samuliak
69a36246fb do GPU texture loading on non-apple GPUs 2024-08-19 16:14:06 +02:00
Samuliak
b59dbfc9c3 hack: increase xfb ring buffer size 2024-08-19 16:02:36 +02:00
Samuliak
e2f66b8aa3 fix: streamout 2024-08-19 13:07:30 +02:00
Samuliak
9aa72e6295 report vram usage 2024-08-18 20:03:37 +02:00
Samuliak
9bb7479d16 use more efficient cpu cache mode when possible 2024-08-18 17:40:41 +02:00
Samuliak
be0a69a5e2 do texture load on GPU if no unified memory 2024-08-18 14:49:25 +02:00
Samuliak
485a652c85 use managed storage mode when dedicated memory 2024-08-18 14:37:39 +02:00
Samuliak
269e072139 move buffer allocators to separate file & fix: high memory usage 2024-08-18 11:32:24 +02:00
Samuliak
265785772a rework buffer allocator 2024-08-18 11:13:49 +02:00
Samuliak
07989d828c fix: performance regression 2024-08-17 19:54:55 +02:00
Samuliak
b8e9bb355c fix: GPU hangs (hack) 2024-08-17 19:05:00 +02:00
Samuliak
83a08b2247 fix: some Metal validation errors 2024-08-17 17:51:37 +02:00
Samuliak
502d5b8b2f include debug information 2024-08-16 16:38:01 +02:00
Samuliak
0d0152d6e0 fix: present 2024-08-16 15:33:49 +02:00
Exzap
958137a301 vpad: Keep second channel empty if no extra GamePad is configured 2024-08-15 18:27:08 +02:00
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