Commit Graph

25 Commits

Author SHA1 Message Date
wheremyfoodat
6d1ef7cb4f Memory rework pt 2 (#801)
* Memory: Rework FCRAM management entirely

Disables a lot of functionality... but I didn't want to commit too much to this commit
Also reworks virtual memory management somewhat (but needs more work)

* Accurately handle MemoryState for virtual memory

Previously all non-free blocks were marked as Reserved

* Memory: Consolidate state and permission changes

Can now use a single function to change either state, permissions, or both
Also merge vmem blocks that have the same state and permissions

* Memory: Fix double reset for FCRAM manager

Fix minor bug with permission tracking

* Memory: Implement Protect operation in ControlMemory

* Memory: Implement Unmap in ControlMemory

Also do a sanity check to make sure the memory region is free for linear allocations

* Memory: Make TLS only 0x200 bytes for each thread

Also move TLS to Base region

* RO: Unmap CROs when unloaded

Thanks @noumidev

* Kernel: Return used app memory for Commit ResourceLimit

Not quite correct, but nothing to be done until process management is improved
Also remove the stack limit for CXIs (thanks amogus)

* Kernel: Report used app memory for GetProcessInfo 2

Not really correct, but it should be accurate for applications at least

* Formatting changes

* Initial fastmem support

* PCSX2 fastmem depression

* Move away from PCSX2 fastmem

* Add enum_flag_ops.hpp

* Finally building on Windows

* Almost got a PoC

* Fix arm64 builds

* This somehow works

* This also works...

* Properly fix fastmem

* Add free region manager

* Update boost

* Add ScopeExit

* Comment out asserts on Linux/Mac/Android

* Comment out ASSERT_MSG asserts too

* Fix derp

* Attempt to fix Android

* Disable fastmem on Android

* Fix Android again maybe pt 2

* android pls

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Update host_memory.cpp

* Properly reset memory arena on reset

* Proper ashmem code for Android

* more

* Add temporary Android buildjet script for faster prototype builds

* Fix fastmem (again)

* Clean up shared memory

* Remove Android BuildJet runner

* a

* Revert "a"

This reverts commit 5443ad6f2a794c19c9b1a1567ca1c7f58eed78cd.

* Re-add ELF support

* Re-add 3DSX support

* GetSystemInfo, GetProcessInfo: Memory sizes should be in bytes

* Update Boost

* Update metal-cpp

* Fix metal renderer compilation

* Fix fastmem mapping

* Clean up fastmem code

* Fix oopsie again

* Emulator: Reorder struct

* Kernel types: Cleanup

* Cleanup

* More cleanup

* Make invalid mprotects warn instead of panicking

* Add setting for toggling fastmem

* More cleanup

* Properly initialize BSS to zeroes

* Remove unused code

* Formatting

* Cleanup

* Memory/CRO: Workaround for Pokemon XY

* NCSD loader: Fix BSS (again)

* NCSD loader: Fix BSS (again) (again)

* More memory fixes

* Memory: Remove unused code

* FS: Warn on unimplemented functions instead of panic

* Update software_keyboard.cpp

* Libretro: Add fastmem option

* FRD: Stub SaveLocalAccountData

---------

Co-authored-by: PSI-Rockin <PSI-Rockin@users.noreply.github.com>
2025-08-07 20:18:09 +03:00
wheremyfoodat
0446bcdaa1 Add Metal support to Qt frontend and clean up renderer creation code (#795)
* Qt: Initial support for Metal renderer

* Clean up graphics context code

* Nits

* More nits

* Qt: Move screen-related stuff to own folder

* Qt: Make screen widget polymorphic

* Qt: Re-add Metal

* Add factory for screen widget

* Qt: Support compilation without Metal

* Qt: Fix build without Metal

* Oops

* oops
2025-07-26 23:13:08 +03:00
wheremyfoodat
1c0f65c740 Screen layouts: Add configurable screen sizes 2025-07-05 02:36:03 +03:00
wheremyfoodat
62748eef47 Initial screen layout implementation 2025-07-04 17:53:36 +03:00
wheremyfoodat
630952f36b SDL/Qt: Better resizing & fullscreen support 2025-06-28 23:34:12 +03:00
wheremyfoodat
a0aa11dac0 Add optional texture hashing 2025-06-23 02:45:13 +03:00
wheremyfoodat
e635b9ec8a Metal: Use std::unique_ptr for texture decode 2025-03-16 13:52:32 +02:00
wheremyfoodat
c061bb7b47 Format 2025-03-14 12:38:58 +02:00
Samuliak
67f0388eae metal: remove unused texture functions 2025-03-11 08:40:21 +01:00
Samuliak
1a460d73be metal: implement texture swizzling 2025-03-11 08:35:35 +01:00
Samuliak
2111c94f1e metal: check for format support 2025-03-11 08:24:16 +01:00
Samuliak
3a654b3609 metal: implement texture decoder 2025-03-11 08:23:59 +01:00
wheremyfoodat
c59ee99364 Metal: Reimplement some texture formats on iOS 2025-03-10 02:47:41 +02:00
wheremyfoodat
e378a52b5a ios: Simplify MTKView interface (still doesn't work though) 2025-03-08 20:32:42 +02:00
wheremyfoodat
fb59320829 More iOS work 2025-03-07 17:36:09 +02:00
wheremyfoodat
9bc50a4b9c More iOS progress 2025-03-06 23:42:12 +02:00
wheremyfoodat
0a65519867 Fix Metal renderer compilation on iOS 2025-03-05 02:06:10 +02:00
wheremyfoodat
d7e4cf18b5 Metal: IWYU fixes 2024-11-09 14:39:15 +02:00
wheremyfoodat
10451a676b Metal: Remove padding in DrawFragmentFunctionHash 2024-11-09 13:25:24 +02:00
wheremyfoodat
49b65242b9 First Metal cleanup & formatting pass 2024-11-09 13:11:38 +02:00
Samuliak
272c24d8e4 don't bind resources unnecessarily 2024-10-31 13:45:05 +01:00
Samuliak
158be432fc rework the lut system 2024-10-31 09:25:01 +01:00
Samuliak
90420160f2 correct comment 2024-09-24 14:51:27 +02:00
Samuliak
8830747e90 clear render targets after creation 2024-08-29 19:43:36 +02:00
Samuliak
98b5d56021 metal: add all the files 2024-08-16 10:06:56 +02:00