James Benton
6bec2b4cc1
cafe/gx2: Set GX2InitDepthBufferRegs ARRAY_MODE to surfaceInfo tileMode.
...
Just in case addrlib decides to change the tile mode.
2018-11-07 11:49:03 +00:00
James Benton
be8e90d7e2
Implement nn::ipc CafeOS client and IOS server and add first ACP services.
2018-11-07 11:47:19 +00:00
James Benton
97670c8bfa
common: Add make_filled_array function.
2018-11-07 11:47:19 +00:00
James Benton
6bc79419d0
nn: Add ok(), failed() methods to Result.
2018-11-07 11:47:19 +00:00
James Benton
cddab11ec7
ios/kernel: Fix kernel thread TLS.
...
Copied the name IpcBufferPool from someone else, it's actually TLS.
2018-11-07 11:47:19 +00:00
James Benton
20ed81228c
ios/kernel: Change allocateProcessStatic to use alignof and placement new.
2018-11-07 11:47:19 +00:00
James Benton
827b7d582d
ios/kernel: Fix ios_kernel_timer.h
2018-11-07 11:47:19 +00:00
James Benton
192c433642
cafe/coreinit: Fix ipc driver submit event name.
2018-11-07 11:47:19 +00:00
James Benton
89b4ebeb99
cafe/coreinit: Call driverOnInit at startup.
2018-11-07 11:47:19 +00:00
James Benton
b13c00e572
cpu: Fix phys_this.
2018-11-07 11:47:19 +00:00
James Benton
2a585d158d
cafe/gx2: Fix unsigned / signed comparison.
2018-11-07 11:47:19 +00:00
James Benton
b77a5e1d60
Add a new tiling library and use it for untiling in gfdtool.
...
More optimised - copies as much data as it can rather than operating on
single pixels.
And much easier to use than addrlib.
2018-11-07 11:47:19 +00:00
James Benton
5679752759
cafe/gx2: Add support for writing cubemaps to DDS file.
2018-11-07 11:47:19 +00:00
James Benton
0da7d9fabd
decaf: Improve logger creation.
2018-11-07 11:47:19 +00:00
Brett Lawson
4c9b203eb5
vulkan: Use an SRGB swap chain rather than RGB.
...
This is neccessary for many games, which render with an
incorrect gamma otherwise. This change does however break
other games which are not using SRGB surfaces. Seeing
things a bit more bright rather than quite a bit darker
is probably for the best. Must implement gamma correction!
2018-11-05 05:32:23 -08:00
Brett Lawson
f419f88bae
vulkan: Allow some invalid sampler XY filters.
...
NLand appears to bind an illegal sampler. For now we
will expressely allow it in this case and warn instead
of crashing decaf.
2018-11-05 05:32:23 -08:00
Brett Lawson
4c7665da8a
cafe/gx2: Implemented some needed GX2Perf methods.
2018-11-05 05:32:23 -08:00
Brett Lawson
f7ee783bba
vulkan: Implement support for Geometry Shaders!
2018-11-05 05:32:23 -08:00
Brett Lawson
046ac84424
spirv: Improved export handling, added support for gl_LayerID.
2018-11-05 05:30:05 -08:00
Brett Lawson
6255961b43
vulkan: Added validation bypass for dual-bound textures.
...
Sometimes, games will incorrectly bind a color buffer as both
the active framebuffer as well as a texture in that draw. This
is illegal in Vulkan, but happens nevertheless.
2018-11-05 04:53:14 -08:00
Brett Lawson
201d3b9c7e
spirv: Improved vertex attribute fetching.
...
There are a few changes here. Mainly related to avoiding
the INT8 type (which is not directly supported yet), as well
as correctly handling packed float types.
2018-11-05 04:51:25 -08:00
Brett Lawson
200739cd3b
spirv: Improved applySelMask implementation.
...
It now will condense down to less instructions or more occasions.
2018-11-05 04:48:42 -08:00
Brett Lawson
b2401b03c2
spirv: Write floats as bitcasted integers.
...
This is required as sometimes we are not sure if a value is used
as a float or an integer. In the case of an integer, the storage
and compilation by the drivers could cause the data to change.
2018-11-05 04:48:29 -08:00
Brett Lawson
92a79d5bd0
vulkan: Added some missing needed extensions.
2018-11-05 04:47:19 -08:00
Brett Lawson
e28740a3ad
vulkan: A bunch of surface management changes...
...
-Added better support for 3D and CUBEMAP textures.
-Improved debug naming of surface/surfaceview objects.
-Added regeneration for framebuffers and views on surface update.
When the a surface gets upgraded internally, the framebuffer and
imageview objects still pointed to the old images rather than the
new ones.
2018-11-05 04:46:14 -08:00
Brett Lawson
4b5f20a272
vulkan: Fixed issue with surface swizzles being lost in error.
...
We were masking away the swizzle from color buffer base addresses
for no apparent reason...
2018-11-05 04:37:49 -08:00
Brett Lawson
c53ccbb947
vulkan: Added support for DISABLED special op.
...
This removes all color buffers from a draw if the special op
is set to disable color writes. This is used by depth-only
clears sometimes.
2018-11-05 04:37:24 -08:00
Brett Lawson
6c1aa9b0df
vulkan: Improved shader debug dumping names and formats.
2018-11-05 04:37:02 -08:00
Brett Lawson
30cf2f9f4e
spirv: Updated loops to track pixel state using the stack.
...
This fixes an issue where loops being entered whenever the pixel
state is already false would cause the state to be incorrect
upon leaving the loop section.
2018-11-05 04:34:54 -08:00
Brett Lawson
6629ba0095
spirv: Updated KILL instructions to exit shaders.
...
This appears to be required as Geometry shaders use the KILL
instructions to check that the ringbuffers do not overflow.
2018-11-05 04:34:53 -08:00
Brett Lawson
119e221152
vulkan: Added support for Occlusion Queries.
2018-11-05 04:34:52 -08:00
Brett Lawson
0b231ed79f
spirv: Allowed more cases of fragment coordinate locations.
2018-11-05 04:33:52 -08:00
Brett Lawson
779e789ad0
spirv: Improved CBUFFER structure generation.
...
This makes the GLSL generated from the SPIRV easier to parse.
Previously, the structure name conflict would cause the names
to become CBUFFER_1_1_1_1 etc...
2018-11-05 04:33:51 -08:00
Brett Lawson
24ddb22114
spirv: Improved OMOD_D2 implementation.
...
This is more in line with the ISA description, and would be
ever so slightly faster.
2018-11-05 04:33:50 -08:00
Brett Lawson
02d85148d1
spirv: Added support for the GET_GRADIENTS instructions.
2018-11-05 04:28:45 -08:00
Brett Lawson
6320347f64
libgpu: Fixed some latte formats being described incorrectly.
2018-11-05 04:28:44 -08:00
Brett Lawson
6dd58668fb
cafe/nn_temp: Fixed static data not being registered.
2018-11-05 04:28:44 -08:00
Brett Lawson
5348f608ab
spirv: Updated CUBE instruction implementation.
...
Literally have no clue where I got this implementation from, but
it appears to work correctly... Doesn't match any examples I
have, or have seen....
2018-11-05 04:28:43 -08:00
Brett Lawson
32596bfefe
cafe/coreinit: Fixed MPTaskQueue locking up due to missing atomics.
2018-11-05 04:28:43 -08:00
Brett Lawson
156afec604
cafe/gx2: Fixed incorrect color buffer tile type being configured.
2018-11-05 04:27:33 -08:00
Brett Lawson
df97141fbe
cafe/gx2: Implemented GX2GetMainCoreId function.
2018-11-05 04:27:33 -08:00
Brett Lawson
cfdf667a2d
cafe/gx2: Fixed geometry shader uniform block ids being cleared.
...
The ordering of the memcpy and the ID set was inverted. Clearing
the id after it had already been set.
2018-11-05 04:27:32 -08:00
Brett Lawson
e046673f48
cafe/gx2: Fixed registers not being initialized to 0.
2018-11-05 04:27:32 -08:00
Brett Lawson
002a5bb7bb
cafe/gx2: Added support for OnFlip event callbacks.
2018-11-05 04:27:31 -08:00
Brett Lawson
b01fe26932
cafe/gx2: Added detection for unsupported event callbacks.
2018-11-05 04:27:31 -08:00
Brett Lawson
d580667fea
cafe/gx2: Correctly subtract sample counts in GX2 occlusion results.
...
When reading occlusion results, technically there is meant to be
two fetches of the total sample counts. Then a subtraction of the
two is used to determine the specific queries counts.
2018-11-05 04:27:30 -08:00
Brett Lawson
6b00b500e0
vulkan: Remove pragma optimizes included in error.
2018-11-05 04:27:30 -08:00
Brett Lawson
08ae140c73
vulkan: Improved support for SET/CLEAR logic ops.
2018-11-05 04:27:29 -08:00
Brett Lawson
945b2662e0
vulkan: Consistently use front triangles for polygon offsets.
2018-11-05 04:23:45 -08:00
Brett Lawson
417655c3c8
spirv: Fixed incorrect implementation of SIN/COS.
2018-11-05 04:23:44 -08:00