bunnei
87d63b858a
Merge pull request #6861 from yzct12345/const-mempy-is-all-the-speed
...
decoders: Optimize memcpy for the other functions
2021-08-15 02:38:12 -07:00
bunnei
aef0ca6f0d
core: hle: kernel: Disable dispatch count tracking on single core.
...
- This would have limited value, and would be a mess to handle properly.
2021-08-14 02:14:19 -07:00
yzct12345
0ba521e634
threadsafe_queue: Fix deadlock
...
This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader.
This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples.
2021-08-13 19:22:51 +00:00
yzct12345
81ed54d13e
logging: Display backtrace on crash
...
This implements backtraces so we don't have to tell users how to use gdb anymore.
This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it.
I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before.
2021-08-13 18:58:35 +00:00
yzct12345
001675dced
logging: Simplify and make thread-safe
...
This simplifies the logging system.
This also fixes some lost messages on startup.
The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.
With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
2021-08-13 18:39:45 +00:00
Sönke Holz
068c66672d
configuration: fix mingw-w64 build
2021-08-13 12:39:14 +02:00
spholz
deb65a5717
network: don't use reinterpret_cast in GetAvailableNetworkInterfaces
2021-08-13 11:58:34 +02:00
Sönke Holz
e660334a21
network: fix mingw-w64 build
...
The header "combaseapi.h" of mingw-w64 defines "interface" as "struct".
2021-08-13 11:23:50 +02:00
Sönke Holz
b18e1d031f
network: don't use assert to check if no network interfaces are returned
2021-08-13 11:21:34 +02:00
bunnei
71d8d84b59
Merge pull request #6862 from german77/badsdl
...
input_common: Disable sdl raw input mode
2021-08-12 21:14:26 -07:00
Sönke Holz
0476751ee2
configuration: move network_interface include to source file
2021-08-13 02:48:39 +02:00
Sönke Holz
a0c4c1a23a
network: use Common::BitCast instead of std::bit_cast
2021-08-13 01:28:14 +02:00
Sönke Holz
8513e59431
network: narrow down scope of "result" in win32 code for
...
GetAvailableNetworkInterfaces
2021-08-13 00:37:03 +02:00
Sönke Holz
04ec426201
configuration: use tr instead of QStringLiteral for "None" item in
...
network interface combobox
2021-08-13 00:34:04 +02:00
Sönke Holz
771de32af1
network: use explicit bool conversions in GetAvailableNetworkInterfaces
2021-08-13 00:31:33 +02:00
Sönke Holz
765e97c347
network: initialize ip_addr in GetHostIPv4Address()
2021-08-13 00:28:44 +02:00
Sönke Holz
acca8aca8c
nifm: use operator*() instead of .value() to get value of std::optional
2021-08-13 00:24:33 +02:00
Sönke Holz
970d81abfc
nifm: treat a missing host IP address as a non-critical error
2021-08-13 00:21:54 +02:00
spholz
78a8249593
Merge branch 'yuzu-emu:master' into fix-lan-play
2021-08-12 22:27:17 +02:00
Sönke Holz
21743daf38
network: correct formatting in network.cpp and network_interface.cpp
2021-08-12 22:15:48 +02:00
spholz
1e98e73828
configuration: add option to select network interface
...
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
2021-08-12 21:32:53 +02:00
bunnei
0509fe3377
Merge pull request #6838 from ameerj/sws-align
...
vic: Specify sws_scale height stride.
2021-08-12 11:28:33 -07:00
german77
2a2f0bfe9e
input_common: Disable sdl raw input mode
2021-08-12 13:17:07 -05:00
yzct12345
430255caf8
decoders: Templates allow memcpy optimizations
2021-08-12 04:45:25 +00:00
lat9nq
5be2d6fd28
settings: Fix MSVC issues
...
According to https://stackoverflow.com/questions/469508 , we run into a
MSVC bug (since VS 2005) when using diamond inheritance for
RangedSetting.
This explicitly implements those functions in RangedSetting. GetValue is
implemented as just calling the inherited version. The explicit
converson operator is reimplemented. I opted for this over ignoring the
warning with a pragma since this specifies the inherited behavior, and I
have now less faith in MSVC to pick the right one.
In addition, we mark destructors as virtual to silence what I believe is
a fair MSVC compilation error.
2021-08-11 17:12:14 -04:00
bunnei
e6b80c2cf8
Merge pull request #6776 from lat9nq/ranged-settings
...
settings: Implement settings ranges
2021-08-10 21:19:01 -07:00
Fernando S
6a082df427
Merge pull request #6820 from yzct12345/split-cache
...
texture_cache: Split out template definitions
2021-08-10 12:23:05 +02:00
Ameer J
9fbe188c01
Merge pull request #6837 from german77/no-pause-screenshot
...
main: Avoid stopping emulation when taking a screenshot
2021-08-09 23:49:48 -04:00
ameerj
a779cede7c
vic: Specify sws_scale height stride.
...
Silences a sws_scale runtime warning about unaligned strides.
2021-08-09 23:24:16 -04:00
bunnei
7df790f1ae
Merge pull request #6823 from yzct12345/memory-cleanup
...
memory: Clean up code
2021-08-09 17:09:56 -07:00
bunnei
3e3bd425c1
Merge pull request #6839 from ameerj/frame-cap-positon
...
configure_general: Swap positions of speed limit and frame limit options
2021-08-09 12:32:07 -07:00
Mai M
2da91ec75b
Merge pull request #6844 from ameerj/vp9-empty-frame
...
vp9: Ensure the first frame is complete
2021-08-08 19:02:39 -04:00
Fernando Sahmkow
23ca1eb82e
yuzu-cmd/CMakeLists: Correct attribution for this function.
2021-08-08 20:24:53 +02:00
ameerj
fa22695705
vp9: Ensure the first frame is complete
...
Silences a runtime error due to the first frame missing the frame data, and being set to hidden despite being a key-frame.
2021-08-08 13:49:00 -04:00
yzct12345
c4eafcc861
texture_cache: Address ameerj's review
2021-08-08 11:02:51 +00:00
Fernando S
859deda3bb
Merge pull request #6834 from K0bin/buffer-image-granularity
...
Respect Vulkan bufferImageGranularity
2021-08-08 11:57:40 +02:00
bunnei
b023413c98
Merge pull request #6698 from german77/SDL_QoL
...
input_common: Improve SDL joystick and hide toggle option
2021-08-08 02:44:42 -07:00
bunnei
00358e2098
Merge pull request #6817 from gidoly/patch-1
...
Add description to fast gpu time option
2021-08-08 01:11:47 -07:00
ameerj
8e0cc3e59a
configure_general: Swap positions of speed limit and frame limit options
2021-08-08 01:00:40 -04:00
german77
48b6d41f1b
input_common: Improve SDL joystick and hide toggle option
2021-08-07 23:11:23 -05:00
bunnei
63325cafbe
Merge pull request #6827 from Morph1984/uuid-hash
...
common: uuid: Add hash function for UUID
2021-08-07 17:18:46 -07:00
german77
acce512ae8
main: Avoid stopping emulation when taking a screenshot
2021-08-07 15:45:29 -05:00
bunnei
bd0e1d3a25
Merge pull request #6830 from ameerj/nvdec-unimpld-codec
...
nvdec: Better logging for unimplemented codecs
2021-08-07 12:37:39 -07:00
bunnei
5060a97210
core: hle: kernel: k_thread: Mark KScopedDisableDispatch as nodiscard.
2021-08-07 12:33:31 -07:00
bunnei
9e3d1d865c
core: cpu_manager: Use invalid core_id on init and simplify shutdown.
2021-08-07 12:33:07 -07:00
bunnei
99bc49e76e
core: hle: service: buffer_queue: Improve management of KEvent.
2021-08-07 12:18:48 -07:00
bunnei
48a3496b93
core: hle: kernel: k_auto_object: Add GetName method.
...
- Useful purely for debugging.
2021-08-07 12:18:48 -07:00
bunnei
36cf96857e
core: hle: service: nvflinger/vi: Improve management of KEvent.
2021-08-07 12:18:47 -07:00
bunnei
5051d3c415
core: hle: kernel: DisableDispatch on suspend threads.
2021-08-07 12:18:47 -07:00
bunnei
1798c3b6b0
core: hle: kernel: k_scheduler: Improve DisableScheduling and EnableScheduling.
2021-08-07 12:18:47 -07:00
bunnei
cbe4e32d38
core: cpu_manager: Use KScopedDisableDispatch.
2021-08-07 12:18:47 -07:00
bunnei
2dfb07388a
core: hle: kernel: Use CurrentPhysicalCoreIndex as appropriate.
2021-08-07 12:18:47 -07:00
bunnei
d1c502720d
core: hle: kernel: k_scheduler: Remove unnecessary MakeCurrentProcess.
2021-08-07 12:18:47 -07:00
bunnei
77ad64b97d
core: hle: kernel: k_scheduler: Improve ScheduleImpl.
2021-08-07 12:18:47 -07:00
bunnei
bedcf19710
core: hle: kernel: k_scheduler: Improve Unload.
2021-08-07 12:18:47 -07:00
bunnei
7569d6774d
core: hle: kernel: k_process: DisableDispatch on main thread.
2021-08-07 12:18:47 -07:00
bunnei
f2b0d28983
core: hle: kernel: k_handle_table: Use KScopedDisableDispatch as necessary.
2021-08-07 12:18:47 -07:00
bunnei
01af2f4162
core: hle: kernel: k_thread: Add KScopedDisableDispatch.
2021-08-07 12:18:47 -07:00
bunnei
2b9560428b
core: hle: kernel: Ensure idle threads are closed before destroying scheduler.
2021-08-07 12:18:47 -07:00
bunnei
68eee94875
core: hle: kernel: Reflect non-emulated threads as core 3.
2021-08-07 12:18:47 -07:00
bunnei
5ea0d3629a
core: cpu_manager: Use jthread.
2021-08-07 12:18:47 -07:00
Robin Kertels
bb29dcb7f2
vulkan_memory_allocator: Respect bufferImageGranularity
2021-08-07 15:28:05 +02:00
bunnei
456adb95ff
Merge pull request #6795 from sankasan/cmd-remove-cursor-fullscreen
...
yuzu-cmd: hide mouse cursor when started fullscreen
2021-08-07 02:00:29 -07:00
bunnei
bd1a764827
Merge pull request #6815 from german77/ui_improvements
...
settings_ui: Add emulated joystick position dot to controller preview
2021-08-06 23:54:23 -07:00
ameerj
928b64d2ce
nvdec: Better logging for unimplemented codecs
2021-08-07 01:08:33 -04:00
bunnei
268b5764c7
Merge pull request #6791 from ameerj/astc-opt
...
astc_decoder: Various performance and memory optimizations
2021-08-06 21:45:24 -07:00
yzct12345
5f97f74a9a
memory: Address lioncash's review
2021-08-07 03:03:21 +00:00
yzct12345
70cc4c0f46
memory: Dedup Read and Write and fix logging bugs
2021-08-07 01:32:06 +00:00
yzct12345
e80323b8b0
texture_cache: Address ameerj's review
2021-08-07 01:27:47 +00:00
spholz
33ebe471e8
Merge branch 'yuzu-emu:master' into fix-lan-play
2021-08-07 02:55:19 +02:00
Sönke Holz
ddeb8d854e
network: GetAndLogLastError: ignore Errno::AGAIN
...
If non-blocking sockets are used, they generate a lot of Errno::AGAIN errors when they didn't receive any data. These errors shouldn't be logged.
2021-08-07 02:54:25 +02:00
bunnei
f183668a87
Merge pull request #6799 from ameerj/vp9-fixes
...
nvdec: Fix VP9 reference frame refreshes
2021-08-06 17:46:46 -07:00
Sönke Holz
dd5c41b5a6
network: GetCurrentIpConfigInfo: return host IP address
...
Service::NIFM::IGeneralService::GetCurrentIpConfigInfo currently hardcodes 192.168.1.100 as the IP address, which prevents LAN play from working correctly.
2021-08-07 02:17:02 +02:00
ameerj
156ea746a3
nvhost_nvdec_common: Remove BufferMap
...
This was mainly used to keep track of mapped buffers for later unmapping. Since unmap is no longer implemented, this no longer seves a valuable purpose.
2021-08-06 20:11:12 -04:00
ameerj
e3688f0627
vp9: Cleanup unused variables
...
With reference frames refreshes fix, we no longer need to buffer two frames in advance.
We can also remove other unused or otherwise unneeded variables.
2021-08-06 20:08:11 -04:00
ameerj
a3f80a97a3
vp9: Fix reference frame refreshes
...
This resolves the artifacting when decoding VP9 streams.
2021-08-06 20:08:08 -04:00
ameerj
cc8ac112fc
nvhost_nvdec_common: Stub UnmapBuffer Ioctl
...
Skip unmapping nvdec buffers to avoid breaking the continuity of the VP9 reference frame addresses, and the risk of invalidating data before the async GPU thread is done with it.
2021-08-06 20:06:30 -04:00
Sönke Holz
652e5e3df0
network: fix fcntl cmds
...
F_SETFL/F_GETFL are the correct commands to set a socket to be non-blocking
2021-08-06 21:08:31 +02:00
bunnei
42d8e08f78
Merge pull request #6822 from yzct12345/clion-assert
...
assert: Avoid empty macros
2021-08-05 22:29:45 -07:00
Morph
d20c5ac720
common: uuid: Add hash function for UUID
...
Used when UUID is a key in an unordered_map. The hash is produced by XORing the high and low 64-bits of the UUID together.
2021-08-06 00:41:55 -04:00
yzct12345
e611f522c2
memory: Clean up CopyBlock too
2021-08-05 21:09:08 +00:00
gidoly
8ba551e1cd
Update configure_graphics_advanced.ui
...
add description too fast gpu time
2021-08-06 06:08:12 +09:00
yzct12345
02e98f6c93
texture_cache: Don't change copyright year
2021-08-05 20:52:12 +00:00
yzct12345
5566f3dbc0
texture_cache: Address ameerj's review
2021-08-05 20:46:24 +00:00
yzct12345
4edfa6ad8f
memory: Address lioncash's review
2021-08-05 20:29:43 +00:00
bunnei
e1a92db519
Merge pull request #6813 from Morph1984/hex-string-to-uuid
...
common: uuid: Add hex string to UUID constructor
2021-08-05 13:29:11 -07:00
yzct12345
6df9611059
memory: Clean up code
2021-08-05 20:11:14 +00:00
yzct12345
7e846be376
assert: Verify formatting
2021-08-05 17:46:22 +00:00
yzct12345
346149dcf9
assert: Avoid empty macros
2021-08-05 17:21:56 +00:00
yzct12345
f9563c8f24
texture_cache: Split templates out
2021-08-05 13:52:30 +00:00
Mai M
a1cb453470
Merge pull request #6819 from Morph1984/i-am-dumb
...
applet_swkbd: Include the null terminator in the buffer size calculation
2021-08-04 23:32:01 -04:00
Mai M
9a7d2e3659
Merge pull request #6818 from Morph1984/hex-util-bug
...
hex_util: Fix incorrect array size in AsArray
2021-08-04 23:31:04 -04:00
Morph
f10dc35dd0
applet_swkbd: Include the null terminator in the buffer size calculation
...
Some games may interpret the read string as a null-terminated string instead of just reading the string up to buffer_size.
2021-08-04 22:32:09 -04:00
Morph
7b39215c8a
hex_util: Fix incorrect array size in AsArray
...
Although this isn't used, this is a potential bug as HexStringToArray will perform an out-of-bounds read.
2021-08-04 22:16:29 -04:00
lat9nq
be16d92060
config: Read connected setting for controllers
...
Currently yuzu will read the mapping but does not connect a controller
despite adding subsequent configurations for it. Read the `connected`
setting for now as a boolean like the Qt frontend.
2021-08-04 17:09:35 -04:00
german77
1fb158ce90
settings_ui: Add emulated joystick position dot to controller preview
2021-08-04 11:46:54 -05:00
Morph
705f111058
common: uuid: Add hex string to UUID constructor
...
This allows for easily converting a hex string into a Common::UUID, which is backed by a 128 bit unsigned integer.
2021-08-04 10:45:41 -04:00
yzct12345
2868d4ba84
nvdec: Implement VA-API hardware video acceleration ( #6713 )
...
* nvdec: VA-API
* Verify formatting
* Forgot a semicolon for Windows
* Clarify comment about AV_PIX_FMT_NV12
* Fix assert log spam from missing negation
* vic: Remove forgotten debug code
* Address lioncash's review
* Mention VA-API is Intel/AMD
* Address v1993's review
* Hopefully fix CMakeLists style this time
* vic: Improve cache locality
* vic: Fix off-by-one error
* codec: Async
* codec: Forgot the GetValue()
* nvdec: Address ameerj's review
* codec: Fallback to CPU without VA-API support
* cmake: Address lat9nq's review
* cmake: Make VA-API optional
* vaapi: Multiple GPU
* Apply suggestions from code review
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
* nvdec: Address ameerj's review
* codec: Use anonymous instead of static
* nvdec: Remove enum and fix memory leak
* nvdec: Address ameerj's review
* codec: Remove preparation for threading
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
2021-08-03 23:43:11 -04:00
Morph
d16a337d98
Merge pull request #6805 from lat9nq/fix-user-profiles
...
config: Only read/write current_user on global config
2021-08-02 23:58:41 -04:00
lat9nq
6ab0c6a808
config: Only read/write current_user on global config
2021-08-02 18:29:24 -04:00