bunnei
edbc505e52
hle: kernel: board: k_system_control: Extend to include memory region sizes.
2021-03-21 14:45:03 -07:00
bunnei
28be8aec9a
common: Move common sizes to their own header for code reuse.
2021-03-21 14:45:03 -07:00
MerryMage
59173ff7a7
fiber: Double default stack size
...
Stack overflow occurs with some guest applications
2021-03-10 20:37:56 +00:00
bunnei
8f7eb194af
common: Fiber: use a reference for YieldTo.
...
- Fixes another small leak.
2021-03-07 13:46:53 -08:00
bunnei
68ffac250a
common: fiber: Use weak_ptr when yielding.
...
- Avoids a memory leak, as taking a strong reference of the fiber here causes a circular reference.
- Supersedes #6006 with a more narrow fix.
2021-03-05 22:10:03 -08:00
bunnei
a5ab85ac37
Revert "core: Switch to unique_ptr for usage of Common::Fiber."
2021-03-05 17:08:17 -08:00
bunnei
34a3ee1631
Merge pull request #6006 from bunnei/fiber-unique-ptr
...
core: Switch to unique_ptr for usage of Common::Fiber.
2021-03-04 23:59:06 -08:00
comex
2910aa77b2
[network] Error handling reform
...
`network.cpp` has several error paths which either:
- report "Unhandled host socket error=n" and return `SUCCESS`, or
- switch on a few possible errors, log them, and translate them to
Errno; the same switch statement is copied and pasted in multiple
places in the code
Convert these paths to use a helper function `GetAndLogLastError`, which
is roughly the equivalent of one of the switch statements, but:
- handling more cases (both ones that were already in `Errno`, and a few
more I added), and
- using OS functions to convert the error to a string when logging, so
it'll describe the error even if it's not one of the ones in the
switch statement.
- To handle this, refactor the logic in `GetLastErrorMsg` to expose a
new function `NativeErrorToString` which takes the error number
explicitly as an argument. And improve the Windows version a bit.
Also, add a test which exercises two random error paths.
2021-02-28 17:25:31 -05:00
bunnei
55f556c53e
Merge pull request #5984 from jbeich/gcc-freebsd
...
common,video-core: unbreak GCC 11 build on FreeBSD 13
2021-02-27 14:15:00 -07:00
bunnei
51fb0a6f96
core: Switch to unique_ptr for usage of Common::Fiber.
...
- With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context.
- Fixes a memory leak due to circular reference of the shared pointer.
2021-02-27 11:56:04 -08:00
bunnei
09f7c355c6
Merge pull request #5953 from bunnei/memory-refactor-1
...
Kernel Rework: Memory updates and refactoring (Part 1)
2021-02-27 12:48:35 -07:00
Jan Beich
71526ecfc7
common: add missing header after f3805376f7
...
In file included from src/video_core/dma_pusher.cpp:5:
src/./common/cityhash.h:69:47: error: 'size_t' has not been declared
69 | [[nodiscard]] u64 CityHash64(const char* buf, size_t len);
| ^~~~~~
src/./common/cityhash.h:73:55: error: 'size_t' has not been declared
73 | [[nodiscard]] u64 CityHash64WithSeed(const char* buf, size_t len, u64 seed);
| ^~~~~~
src/./common/cityhash.h:77:56: error: 'size_t' has not been declared
77 | [[nodiscard]] u64 CityHash64WithSeeds(const char* buf, size_t len, u64 seed0, u64 seed1);
| ^~~~~~
src/./common/cityhash.h:80:47: error: 'size_t' has not been declared
80 | [[nodiscard]] u128 CityHash128(const char* s, size_t len);
| ^~~~~~
src/./common/cityhash.h:84:55: error: 'size_t' has not been declared
84 | [[nodiscard]] u128 CityHash128WithSeed(const char* s, size_t len, u128 seed);
| ^~~~~~
2021-02-23 00:04:32 +00:00
bunnei
3acb265c9e
common: wall_clock: Fix integer overflow with StandardWallClock.
...
- Previous optimized impl. resulted in an integer overflow, so revert.
- This is our slow/fallback path that should never be really be used, so the optimization in unimportant.
2021-02-19 18:04:23 -08:00
bunnei
c9235764c7
common: Add implementation of TinyMT (Mersenne Twister RNG).
2021-02-18 16:16:24 -08:00
bunnei
b5b92fd1e5
common: alignment: Add DivideUp utility method.
2021-02-18 16:16:24 -08:00
ReinUsesLisp
f3805376f7
common/cityhash: Use common types
...
Allow sharing return types with the rest of the code base. For example,
we use 'u128 = std::array<u64, 2>', meanwhile Google's code uses
'uint128 = std::pair<u64, u64>'.
While we are at it, use size_t instead of std::size_t.
2021-02-18 00:45:17 -03:00
bunnei
592a649918
common: wall_clock: Optimize GetClockCycles/GetCPUCycles to use a single MUL instruction.
2021-02-15 14:51:43 -08:00
bunnei
0a91599aec
common: Merge uint128 to a single header file with inlines.
2021-02-15 14:46:04 -08:00
lat9nq
a58086ae0d
common: Add -fsized-deallocation as a Clang flag
...
Prevents an operator delete error when compiling with Clang 11.
2021-02-09 21:28:33 -05:00
Morph
ff58ad2050
string_util: Remove MSVC workaround for converting between UTF8/UTF16
...
This has been fixed as of Visual Studio 2019 Version 16.2
2021-02-08 02:56:07 -05:00
bunnei
4a01812ebe
Merge pull request #5885 from MerryMage/ring_buffer-granularity
...
ring_buffer: Remove granularity template argument
2021-02-06 13:18:41 -08:00
MerryMage
8d00265998
ring_buffer: Remove granularity template argument
...
Non-obvious bug in RingBuffer::Push(std::vector<T>&) when granularity != 1
Just remove it altogether because we do not have a use for granularity != 1
2021-02-06 19:16:00 +00:00
bunnei
ea4f62615e
hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement.
2021-02-05 14:03:36 -08:00
bunnei
18175c71ed
common: scope_exit: Add a cancellable ScopeExit macro.
2021-02-05 14:03:36 -08:00
bunnei
4577dcd5f9
common: common_funcs: Add R_UNLESS_NOLOG for scenarios that should not log.
2021-02-05 14:00:36 -08:00
bunnei
8d1afcb90f
common: common_funcs: Change R_UNLESS to LOG_ERROR.
2021-01-28 21:51:16 -08:00
bunnei
091e9e8c41
common: common_funcs: Log error on R_UNLESS.
2021-01-28 21:42:26 -08:00
bunnei
bb966d3e33
common: common_funcs: Add useful kernel macro R_SUCCEED_IF.
2021-01-28 21:42:26 -08:00
bunnei
2fb77adb9f
common: common_funcs: Add a few more useful macros for kernel code.
2021-01-28 21:42:25 -08:00
bunnei
28b822fe38
Merge pull request #5778 from ReinUsesLisp/shader-dir
...
renderer_opengl: Avoid precompiled cache and force NV GL cache directory
2021-01-27 11:34:21 -08:00
bunnei
1e9b1d439f
common: Add missing include to bit_util.h
2021-01-21 15:30:28 -08:00
Lioncash
6ff2db181f
bit_util: Unify implementations of MostSignificantBit32/MostSignificantBit64
...
We can use the standardized CLZ facilities to perform this. This also
allows us to make utilizing functions constexpr and eliminate the
inclusion of an intrinsics header.
2021-01-21 04:07:58 -05:00
ReinUsesLisp
51512d01d8
renderer_opengl: Avoid precompiled cache and force NV GL cache directory
...
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to
be in yuzu's user directory to stop commonly distributed malware from
deleting our driver shader cache. And by setting
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader
cache size.
This has only been implemented on Windows, mostly because previous tests
didn't seem to work on Linux.
Disable the precompiled cache on Nvidia's driver. There's no need to
hide information the driver already has in its own cache.
2021-01-21 00:41:03 -03:00
bunnei
e8401964b4
Merge pull request #5360 from ReinUsesLisp/enforce-memclass-access
...
core: Silence Wclass-memaccess warnings and enforce it
2021-01-17 00:55:10 -08:00
bunnei
a7fd61fcce
Merge pull request #5275 from FernandoS27/fast-native-clock
...
X86/NativeClock: Improve performance of clock calculations on hot path.
2021-01-15 23:01:42 -08:00
bunnei
8def504d73
Merge pull request #5336 from lioncash/tree
...
common/tree: Convert defines over to templates
2021-01-15 21:46:25 -08:00
LC
8be9e5b48b
Merge pull request #5358 from ReinUsesLisp/rename-insert-padding
...
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
2021-01-15 16:19:46 -05:00
ReinUsesLisp
f8650a9580
core: Silence Wclass-memaccess warnings
...
This requires making several types trivial and properly initialize
them whenever they are called.
2021-01-15 16:31:19 -03:00
ReinUsesLisp
3ff978aa4f
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
...
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15 16:27:28 -03:00
bunnei
f728a504aa
Merge pull request #5355 from lioncash/timer
...
common/timer: Remove
2021-01-15 09:42:33 -08:00
LC
9754a8145c
Merge pull request #5357 from ReinUsesLisp/alignment-log2
...
common/alignment: Rename AlignBits to AlignUpLog2 and use constraints
2021-01-15 03:12:36 -05:00
Lioncash
8620de6b20
common/bit_util: Replace CLZ/CTZ operations with standardized ones
...
Makes for less code that we need to maintain.
2021-01-15 02:15:32 -05:00
ReinUsesLisp
89c15dd115
common/alignment: Upgrade to use constraints instead of static asserts
2021-01-15 04:13:39 -03:00
ReinUsesLisp
fe494a0ccd
common/alignment: Rename AlignBits to AlignUpLog2
...
AlignUpLog2 describes what the function does better than AlignBits.
2021-01-15 04:13:33 -03:00
Lioncash
91084d9396
common/timer: Remove
...
This is a leftover from citra and dolphin that isn't used at all,
particularly given the <chrono> header exists.
2021-01-15 01:55:33 -05:00
ReinUsesLisp
95fa57f007
common/color: Remove
...
This is a leftover from Citra we no longer use.
2021-01-15 03:47:43 -03:00
bunnei
0fb19e9bef
Merge pull request #5280 from FearlessTobi/port-5666
...
Port citra-emu/citra#5666 : "Rotate previous log file to "citra_log.txt.old""
2021-01-12 22:16:57 -08:00
Lioncash
b15e1a3501
common/tree: Convert defines over to templates
...
Reworks the tree header to operate off of templates as opposed to a
series of defines.
This allows all tree facilities to obey namespacing rules, and also
allows this code to be used within modules once compiler support is in
place.
This also gets rid to use a macro to define functions and structs for
necessary data types. With templates, these will be generated when
they're actually used, eliminating the need for the separate
declaration.
2021-01-12 16:46:36 -05:00
Lioncash
197b5d19bc
common/tree: Remove unused splay tree defines
...
Makes for less code to take care of.
2021-01-12 02:32:41 -05:00
Lioncash
703c57a119
common/parent_of_member: Replace TYPED_STORAGE define with template alias
...
Provides the same construct, but makes it obey namespacing.
2021-01-11 18:26:04 -05:00