Commit Graph

47 Commits

Author SHA1 Message Date
Unknown W. Brackets 5788e33b2f arm64: Use LDRUH instead of two LDRBs.
Small boost - 5.66x instead of 5x steps.
2017-12-03 06:35:44 -08:00
Henrik Rydgård 4129459495 Avoid an assert in ARM64 emitter, seen in Google Play crash logs 2017-11-29 21:31:42 +01:00
Henrik Rydgård 22e65ba80d Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 2017-08-31 01:14:51 +02:00
Unknown W. Brackets 7699fa55de arm: Jit throughmode 16-bit texcoords.
It's popular, and this makes decoding such verts much faster.
2017-05-06 22:52:58 -07:00
Unknown W. Brackets 257f8dbbc6 GPU: Remove now-unused vertex decoder funcs.
We always convert to float now, so these functions are no longer used.
2017-05-06 18:55:16 -07:00
Henrik Rydgård 440e72d250 Clean up among the logs. Remove MASTER_LOG. 2017-03-06 13:10:23 +01:00
Henrik Rydgard a272a4ee3f Improve error message on vertex decoder compile fail. Also disable a broken vertex JIT function until it can be fixed. 2017-03-03 14:19:36 +01:00
Henrik Rydgård a61cb44b1c Oops, changed the wrong function. 2017-01-29 15:07:25 +01:00
Henrik Rydgard 59f5c53040 Fix recent texture scaling bug. Should help #9250
Not all cases tested yet.
2017-01-29 14:42:59 +01:00
Henrik Rydgård e1bae9aa67 Follow the ARM64 ABI better (update the frame pointer). 2017-01-27 14:19:03 +01:00
Henrik Rydgard 98e0ccf1e1 Vertex JIT: Add some missing functions to ARM/ARM64 decoders. 2017-01-25 20:13:29 +01:00
Henrik Rydgård 3d8c94cf90 Fix bug where if the Vertex Decoder JIT failed, we failed to restore mprotect permissions causing a crash 2017-01-25 19:07:13 +01:00
Henrik Rydgard 1dbeca0618 Only support decoding UV to float in vertex formats. Supporting u8 and 16 was more complexity than it's worth. 2016-12-20 13:42:54 +01:00
Florent Castelli 8c3552de74 cmake: Detect features at compile time
Instead of relying on manually passed down flags from CMake,
we now have ppsspp_config.h file to create the platform defines for us.
This improves support for multiplatform builds (such as iOS).
2016-10-19 12:31:19 +02:00
Henrik Rydgard 03279e1212 Port over the Exynos cacheline size fix from Dolphin. Thanks to lewurm of the mono project for the discovery and original fix.
See https://github.com/dolphin-emu/dolphin/pull/4204 and https://github.com/mono/mono/pull/3549
2016-09-10 09:25:06 +02:00
Henrik Rydgard b264657d56 Implement W^X-compatible path. Works on Windows and Android, hopefully iOS (untested).
Disabled block linking in this mode, can re-enable with some more work later.

To enable W^X on other platforms than iOS, simply change PlatformIsWXExclusive.
2016-08-28 14:52:08 +02:00
Unknown W. Brackets 7127de302e Avoid some unused variable warnings. 2016-08-05 10:48:18 -07:00
Unknown W. Brackets 4113fd940c Add ugly invalidation workaround for SGS7s.
Otherwise they just crash, and crash often.  Special thanks to Jaaan for
numerous trials to try to find the best way to solve the crashes.
2016-05-23 21:35:28 -07:00
Henrik Rydgard 6a373fe09a Make it possible to view vertex decoders through the shader viewing mechanism (even though they aren't strictly shaders, they fit the model). 2015-10-24 10:41:31 +02:00
Unknown W. Brackets 3233116749 Use fixed regs for uv bounds check in arm64. 2015-09-13 15:06:29 -07:00
Unknown W. Brackets dff4aeb30f Correct uv bound pointers in arm vertexjit. 2015-09-13 14:55:10 -07:00
Unknown W. Brackets 31106d063c Fix MSVC 2015 highlighting for ARM/ARM64. 2015-09-13 10:02:55 -07:00
Unknown W. Brackets 72a73045bb Add uv range to arm64 and non-jit decoders. 2015-09-13 10:01:37 -07:00
Unknown W. Brackets a98706f813 arm64: Correct some offset snapping. 2015-07-05 08:59:36 -07:00
Unknown W. Brackets 46c1030530 arm64: small optimization for weights. 2015-07-05 08:35:51 -07:00
Unknown W. Brackets 809f398760 arm64: Set vertexFullAlpha. 2015-07-05 00:17:06 -07:00
Unknown W. Brackets 37bc3cd347 arm64: Optimize some texcoord and normal decode. 2015-07-04 23:40:11 -07:00
Unknown W. Brackets f8bb7f3c52 arm64: Optimize pos and nrm conversions. 2015-07-04 18:22:16 -07:00
Unknown W. Brackets 75c8ccd2c1 arm64: Update emitter from Dolphin.
From dolphin-emu/dolphin@d09d59007a.
2015-07-04 00:00:28 -07:00
Henrik Rydgard 3587b36f86 Minor cleanups in BackgroundAudio and ARM64 vtx dec. Update native. 2015-06-22 00:09:02 +02:00
Unknown W. Brackets 0597b92998 For consistency, push fp regs here too. 2015-06-14 09:24:56 -07:00
Henrik Rydgard e848247f88 ARM64: Also save FP registers around the JIT dispatcher loop 2015-06-14 13:03:46 +02:00
Henrik Rydgard 2c05334d47 ARM64: Fix bug where we didn't save the FP registers correctly in the vertex decoder.
Also port a few ops from dolphin's ARM64 emitter.
2015-06-14 12:56:44 +02:00
Henrik Rydgard 5736f3aba6 Shouldn't check for NEON on ARM64 2015-06-11 12:44:45 +02:00
Henrik Rydgård d0b35e88a2 No need to generate a zero register.. 2015-04-06 18:13:46 +02:00
Henrik Rydgård a7b7fedc9f Cleaup. Add a missing vertex dec func. 2015-04-06 18:13:45 +02:00
Henrik Rydgård 4bd95b0cb7 ARM64: Fixup software skinning. Now seems to work, at least in a bunch of games.. 2015-04-06 18:13:45 +02:00
Henrik Rydgård 459ba28655 ARM64: SW skinning runs without crashing but is broken. 2015-04-06 18:13:44 +02:00
Henrik Rydgård f937b4b74b ARM64 vtxdec: Basic implementation of the 16-bit color formats 2015-04-06 18:13:43 +02:00
Henrik Rydgård 597595f279 ARM64: Start implementing soft-skinning. Disabled for now, needs work. 2015-04-06 18:13:43 +02:00
Henrik Rydgård a710abb58b A bunch more vertex decoder funcs 2015-04-06 18:13:41 +02:00
Henrik Rydgard ff758f58ad ARM64: The Return of the Pointer Truncator - The Movie 2015-04-06 18:13:26 +02:00
Henrik Rydgard db0fd1042f Add "Arm64EmitterTest" which can run on startup to play around with instructions. 2015-04-06 18:13:26 +02:00
Henrik Rydgard 1e9fdf08c5 Temporarily disable vertexjit 2015-04-06 18:13:23 +02:00
Henrik Rydgard 5496b3d3b1 ARM64: Some minor vertex decoder work. Hm, I think SCVTF will actually divide by 128.0, not 127.0 :/ 2015-04-06 18:13:20 +02:00
Henrik Rydgard a12e448fb4 ARM64: Stub vertex decoder jit, implementing just enough for the cube.elf cube. 2015-04-06 18:13:18 +02:00
Henrik Rydgard b309c83973 Initial work on ARM64, based on the ARM jit. 2015-04-06 18:13:01 +02:00