Brett Lawson
111a25f872
vulkan: Implemented most of the texturing instructions.
2018-10-17 01:18:55 -07:00
Brett Lawson
57ebd7b797
vulkan: Fixed bswap8in16 to actually work with 16-bit integers.
2018-10-17 01:18:55 -07:00
Brett Lawson
aa5b61382d
vulkan: Fixed register writes to be delayed on the ALU group.
...
Sometimes shaders are generated where earlier units write
to registers which are used in later units. In these cases
the later unit should not be seeing the new register value
until after the ALU group.
2018-10-17 01:18:55 -07:00
Brett Lawson
3daf4911ed
gx2: Fix issue where PS_INPUT was assigned incorrect ids.
...
This caused context save/load to fail to save the first
semantic index for each pixel shader input.
2018-10-17 01:18:55 -07:00
Brett Lawson
f7fccb9be9
vulkan: Added support for additional depth buffer formats.
2018-10-17 01:18:55 -07:00
Brett Lawson
4ddb99cb8d
vulkan: Update drawing to cancel if it would be illegal.
...
This is important as some games do draws with missing attribute
buffers, which I expect would cause GPU7 to just fail. But for
us causes vulkan to drop our device.
2018-10-17 01:18:55 -07:00
Brett Lawson
2e3bc73240
vulkan: Added support for CUBEMAP textures.
...
This CUBE instruction implementation may not be perfect.
There are some wierd behaviours we could not explain.
2018-10-17 01:18:55 -07:00
Brett Lawson
a3597f5aeb
vulkan: Added a few more SPIRV operations.
2018-10-17 01:18:55 -07:00
Brett Lawson
30f8ded5ea
vulkan: Fixed bug with some input attribute types.
2018-10-17 01:18:54 -07:00
James Benton
e489125536
spirv: Add support for POSITION_ENA aka FragCoord.
2018-10-17 01:18:54 -07:00
James Benton
84fb5f2220
spirv: Redo some of the loop stuff.
2018-10-17 01:18:54 -07:00
Brett Lawson
5ac3884eaa
vulkan: Added basic support for looping in SPIRV generator.
2018-10-17 01:18:54 -07:00
Brett Lawson
355c58046e
vulkan: Implemented support for uniform buffer based shaders.
2018-10-17 01:18:54 -07:00
Brett Lawson
d0d827407c
vulkan: Fixed error in default value generation.
2018-10-17 01:18:54 -07:00
Brett Lawson
f72c8746fd
vulkan: Implemented DOT4_IEEE for SPIRV generator.
2018-10-17 01:18:54 -07:00
Brett Lawson
a6b80afa4e
vulkan: Correct error in cbuffer variable creation.
2018-10-17 01:18:54 -07:00
Brett Lawson
a30ffed27a
vulkan: Improved depth bias handling.
2018-10-17 01:18:54 -07:00
Brett Lawson
5e85c4ca55
vulkan: Made equality-based alpha testing more resilient.
...
This was important as newer hardware does not guarantee
perfect precision, so equality tests would pass only
sometimes.
2018-10-17 01:18:53 -07:00
Brett Lawson
6520c43171
vulkan: Fix Z and Y corrections in SPIRV shaders.
2018-10-17 01:18:53 -07:00
Brett Lawson
6bc804d5c0
vulkan: Added support for rasterization logic ops.
2018-10-17 01:18:53 -07:00
Brett Lawson
5905faf1c9
vulkan: Implement polygon drawing modes.
2018-10-17 01:18:52 -07:00
Brett Lawson
e72750a215
vulkan: Added support for line widths.
2018-10-17 01:18:52 -07:00
Brett Lawson
e8a7c578ee
vulkan: Only debug report if the extension is enabled.
2018-10-17 01:18:52 -07:00
Brett Lawson
889ed0926b
vulkan: Fixed a bunch of ALU OP2's not using their second parameter.
2018-10-17 01:18:52 -07:00
Brett Lawson
7cdc6a6875
vulkan: Fix issue with SPIRV stack using wrong storage classes.
2018-10-17 01:18:51 -07:00
Brett Lawson
ae2a7d1bfd
vulkan: Keep all staging buffers persistently mapped.
2018-10-17 01:18:51 -07:00
Brett Lawson
d70272bca1
vulkan: Added pooling of descriptor sets.
...
Pooling of descriptor pools wasn't per formant enough,
and our descriptor sets always look the same anyways.
2018-10-17 01:18:50 -07:00
Brett Lawson
0fda685916
vulkan: Added pooling of staging buffers.
2018-10-17 01:18:50 -07:00
Brett Lawson
ef5cdfa2d2
vulkan: Fixed miss-named variable in draw handling.
2018-10-17 01:18:50 -07:00
Brett Lawson
8075ad8367
vulkan: Added debugger UI performance counters.
2018-10-17 01:18:50 -07:00
Brett Lawson
48a575e2ec
vulkan: Added cacheing of attribute buffers.
...
We previously allocated and uploaded the attribute buffers
for every single draw call that was made.
2018-10-17 01:18:50 -07:00
Brett Lawson
f2751802a6
vulkan: Fixed issue with number of active uniform buffers.
2018-10-17 01:18:49 -07:00
Brett Lawson
aa2a90ec71
vulkan: Added PM4 CB tracking to avoid unneeded rehashing.
2018-10-17 01:18:49 -07:00
James Benton
512ac9693a
pm4-replay: Update to use new gpu ringbuffer interface.
2018-10-14 11:35:48 +01:00
James Benton
74aa2c6d2e
cafe/nn: Add Result::Description values.
2018-10-14 09:45:54 +01:00
James Benton
faf11b05d5
cafe/loader: Fix linking of circular dependencies.
...
Fixes #487
2018-10-12 18:52:28 +01:00
James Benton
62e4862037
Add a .clang-format which can be used as a guideline when formatting code.
...
This should not be blindly followed, as I have encounted some of the
following problems with it:
Breaks enum value alignment, e.g.:
ENUM_VALUE(x, 1)
ENUM_VALUE(yyyy, 1)
Becomes
ENUM_VALUE(x, 1)
ENUM_VALUE(yyyy, 1)
Due to needing to use Column Limit: 0 to stop it doing riduculously
inconsistent behaviour due to column limit clashing with the other rules,
it will sometimes join broken lines up to form big ass lines. This should
be ignored and uses should try keep to 80 width with 100 as hard limit.
It forces values to be on a new line in initialised arrays, this might not
be desired.
2018-10-11 22:21:21 +01:00
James Benton
f4fe4a5f76
Rename ENUM_NAMESPACE_{BEG,END} to ENUM_NAMESPACE_{ENTER,EXIT}.
2018-10-11 22:21:13 +01:00
James Benton
bc20ee58ae
Rename BITFIELD to BITFIELD_BEG.
2018-10-11 22:21:07 +01:00
James Benton
89bca06668
Rename CHECK_MEMBER_OFFSET_START to CHECK_MEMBER_OFFSET_BEG.
2018-10-11 22:21:02 +01:00
James Benton
073a4c47a9
Fix copy pasta with hfio_path
2018-10-12 10:44:19 +01:00
James Benton
44a74fb160
latte/pm4: Add WaitRegMem and WaitMem pm4 packets.
2018-10-11 16:15:32 +01:00
James Benton
1bf3e4d1d2
Use pointer.get instead of pointer.getRawPointer where applicable.
...
.get() is preferred because it will still return a be2_val wrapped value,
whereas getRawPointer() returns the underlying type without be2_val wrapper.
2018-10-11 16:15:32 +01:00
James Benton
86893962b7
cpu: Change Pointer::get to use a new pointer_get_type instead of deref type.
...
So we avoid wrapping structs unnecessarily in be2_struct.
2018-10-11 16:15:32 +01:00
James Benton
2a0d2f46c6
cpu: be2_val add helper to access Pointer .get()
2018-10-11 16:15:32 +01:00
James Benton
ad1cb1b284
cpu: Change pointer dereference type to not wrap 1 byte values in be2_val.
2018-10-11 16:15:32 +01:00
James Benton
a1e1932a5c
cpu: Fix dereference_type for Pointer<void>
2018-10-11 16:15:32 +01:00
James Benton
c1b50cd56a
latte: Remove unused DECAF_SET_SWAP_INTERVAL pm4 command.
2018-10-11 16:15:32 +01:00
James Benton
c99152c738
latte: Remove unused DECAF_DEBUGMARKER pm4 command.
2018-10-11 16:15:32 +01:00
James Benton
647ef1ab41
latte: Add CP_COHER_STATUS register id.
2018-10-11 16:15:32 +01:00