Connor McLaughlin
b6f871d2b9
JIT optimizations and refactoring ( #675 )
...
* CPU/Recompiler: Use rel32 call where possible for no-args
* JitCodeBuffer: Support using preallocated buffer
* CPU/Recompiler/AArch64: Use bl instead of blr for short branches
* CPU/CodeCache: Allocate recompiler buffer in program space
This means we don't need 64-bit moves for every call out of the
recompiler.
* GTE: Don't store as u16 and load as u32
* CPU/Recompiler: Add methods to emit global load/stores
* GTE: Convert class to namespace
* CPU/Recompiler: Call GTE functions directly
* Settings: Turn into a global variable
* GPU: Replace local pointers with global
* InterruptController: Turn into a global pointer
* System: Replace local pointers with global
* Timers: Turn into a global instance
* DMA: Turn into a global instance
* SPU: Turn into a global instance
* CDROM: Turn into a global instance
* MDEC: Turn into a global instance
* Pad: Turn into a global instance
* SIO: Turn into a global instance
* CDROM: Move audio FIFO to the heap
* CPU/Recompiler: Drop ASMFunctions
No longer needed since we have code in the same 4GB window.
* CPUCodeCache: Turn class into namespace
* Bus: Local pointer -> global pointers
* CPU: Turn class into namespace
* Bus: Turn into namespace
* GTE: Store registers in CPU state struct
Allows relative addressing on ARM.
* CPU/Recompiler: Align code storage to page size
* CPU/Recompiler: Fix relative branches on A64
* HostInterface: Local references to global
* System: Turn into a namespace, move events out
* Add guard pages
* Android: Fix build
2020-07-31 17:09:18 +10:00
Connor McLaughlin
8b0c3f0dc8
FileSystem: Use wide strings for fopen on Windows
2020-07-31 16:04:06 +10:00
Connor McLaughlin
3edb8e113e
StringUtil: Add wide string<->utf8 conversion for Windows
2020-07-31 16:04:00 +10:00
Connor McLaughlin
c7b457de9e
CubebAudioStream: Continue even without minimum latency
...
Fixes audio not functioning on Android.
2020-07-29 02:38:04 +10:00
Connor McLaughlin
08b26edceb
CDImage: Fix incorrect track length
...
Shouldn't affect much, other than the game properties window.
2020-07-25 02:36:41 +10:00
Connor McLaughlin
10f23667c9
CDImage: Fix incorrect pregap file offset calculation
...
Should fix repeating audio at the start of some tracks.
2020-07-24 13:47:21 +10:00
Connor McLaughlin
f3df4f91a2
libretro: Implement disk control interface
2020-07-23 02:36:23 +10:00
Connor McLaughlin
266d70c629
Common/FileSystem: Add IsAbsolutePath() and tests
2020-07-23 02:35:37 +10:00
Connor McLaughlin
3187d07d03
CDImage: Add memory CD image class
2020-07-22 00:03:07 +10:00
Connor McLaughlin
cf366d3fba
CDImage: Fix crash reading subq from lead-in
2020-07-22 00:02:51 +10:00
Connor McLaughlin
03c3b10054
CDSubChannelReplacement: Use subq union directly
2020-07-22 00:02:44 +10:00
Connor McLaughlin
eb7da791ea
CommonHostInterface: Fix command line help not printing on Windows
2020-07-21 20:09:54 +10:00
Connor McLaughlin
71cef1de3f
GL/ContextGLX: Add additional logging
2020-07-15 15:50:30 +10:00
Connor McLaughlin
282f166e7a
Vulkan/StagingBuffer: Don't try to invalidate unmapped buffer
...
Fixes crash on Mali.
2020-07-12 00:40:05 +10:00
Connor McLaughlin
fb6538da35
Vulkan/Context: Allocate SSBO descriptors in global set
...
Fixes vram write buffer creation failing on Mali.
2020-07-12 00:38:27 +10:00
Connor McLaughlin
4ce5f7e802
GLContext: Wayland support
2020-07-11 03:28:25 +10:00
Connor McLaughlin
a5fe740e30
Fix a bunch of compiler warnings
2020-07-09 13:30:16 +10:00
Connor McLaughlin
9685be9064
D3D11/ShaderCache: Remove feature level 12 enum usage
...
It's not used anyway.
2020-07-09 13:00:44 +10:00
Connor McLaughlin
46dfccef81
Common/DimensionalArray: Don't break clang
2020-07-08 15:40:08 +10:00
Connor McLaughlin
a68bbb3e85
Common/DimensionalArray: Work around VC2017 issue
2020-07-08 15:04:47 +10:00
Connor McLaughlin
6ae5caa23b
Common/StringUtil: Add missing include
2020-07-08 12:45:49 +10:00
Connor McLaughlin
01287cb7da
build: Support building libretro core for Android
2020-07-07 20:27:14 +10:00
Connor McLaughlin
729e1b3392
GLContext: Fix Android context creation
2020-07-07 00:59:49 +10:00
Connor McLaughlin
da180a1c4f
Vulkan: Fix crash when device creation fails
2020-07-07 00:59:42 +10:00
Connor McLaughlin
1d4b5e22cb
Vulkan: Fall back to geometryShader when fillModeNonSolid unsupported
2020-07-07 00:59:35 +10:00
Connor McLaughlin
9b3e344ad8
Renderers: Support empty shader cache
2020-07-04 22:14:07 +10:00
Connor McLaughlin
f396a2c373
Renderers: Make shader cache path a prefix instead of directory
2020-07-04 22:14:07 +10:00
Connor McLaughlin
b9ffca1ddf
libretro: Vulkan renderer support
2020-07-04 22:14:07 +10:00
Connor McLaughlin
bf08385051
WindowInfo: Add surface_scale field
2020-07-01 01:57:25 +10:00
Connor McLaughlin
7d88bba764
Common: Add an image helper class
2020-07-01 00:56:46 +10:00
Connor McLaughlin
f3b2953e40
Common/StringUtil: Add FromChars overload for bool
2020-07-01 00:56:46 +10:00
Connor McLaughlin
2a38090e7a
HostDisplay: Move most backend logic to FrontendCommon
2020-06-30 03:03:56 +10:00
Connor McLaughlin
dc7cc3b67f
Common/ByteStream: Fix buffer corruption in MemoryByteStream
2020-06-30 02:44:01 +10:00
Connor McLaughlin
ea1066f76e
GL/StreamBuffer: Use glBufferData() on all drivers
2020-06-29 14:44:16 +10:00
Connor McLaughlin
745b53e4cb
GL/Context: Fix crash in some GLX drivers
2020-06-27 17:35:08 +10:00
Connor McLaughlin
2cfb811569
Merge pull request #565 from lioncash/stamp
...
timestamp: Correct duplicate conditionals
2020-06-24 01:32:52 +10:00
Connor McLaughlin
84d4423719
Merge pull request #564 from lioncash/leak
...
file_system: Prevent resource leaks in DeleteDirectory()
2020-06-24 01:31:52 +10:00
Lioncash
4c82705e34
timestamp: Correct duplicate conditionals
...
Previously, the milliseconds field wasn't being used in comparisons on
Windows.
2020-06-23 06:24:06 -04:00
Lioncash
987b11a1d2
timestamp: Implement operator!= in terms of operator==
...
Same behavior, less code.
2020-06-23 06:20:29 -04:00
Lioncash
83a01c27a2
file_system: Prevent resource leaks in DeleteDirectory()
...
We need to remember to close the search handle in the error cases.
2020-06-23 06:13:54 -04:00
Lioncash
292a0a6800
file_system: Correct duplicate conditionals in CreateDirectory()
2020-06-23 06:09:38 -04:00
Connor McLaughlin
3ca9d578b3
Merge pull request #559 from lioncash/field
...
bitfield: Make interface fully constexpr
2020-06-23 19:58:06 +10:00
Connor McLaughlin
e228588823
Merge pull request #561 from lioncash/rectangle
...
rectangle: Correct assignment of right within SetExtents
2020-06-23 19:56:16 +10:00
Lioncash
e064196f25
rectangle: Correct assignment of right within SetExtents
...
Previously left was being assigned twice in a row.
2020-06-23 05:50:43 -04:00
Lioncash
0abe4c60b4
cd_image: Make use of std::array where applicable
...
Simplifies array copies.
2020-06-23 05:35:26 -04:00
Lioncash
a27aa45e6a
bitfield: Make interface fully constexpr
...
Given C++17 is being used, the entire interface is capable of being
constexpr.
2020-06-23 05:27:40 -04:00
Connor McLaughlin
9265dd72ba
Vulkan/ShaderCache: Skip writing pipeline cache when size matches
...
Comparing all the data wasn't working, at least for Intel. I'm guessing
there's some modification time field in there which keeps changing.
2020-06-22 15:58:10 +10:00
Connor McLaughlin
eaca5eca07
GPU/Vulkan: Use Metal layer instead NSView on macOS.
2020-06-22 15:58:07 +10:00
Connor McLaughlin
1455e793d5
Vulkan: Fix crash when drag-resizing window
2020-06-22 15:57:54 +10:00
Connor McLaughlin
bf60f9dd61
GPU/Vulkan: Use geometry shader for line rendering at >1xIR
2020-06-21 01:33:08 +10:00