Fernando Sahmkow
05054d1dc2
Shader decompiler: do constant propgation before texture pass.
2022-03-13 21:49:40 +01:00
Fernando Sahmkow
fc8251e043
Shader decompiler: Fix storage tracking in deko3d.
2022-03-13 17:41:16 +01:00
bunnei
c7c318b73a
Merge pull request #8007 from ameerj/vs-2022-errors
...
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-13 03:43:06 -07:00
merry
771006f6a8
Merge pull request #8009 from ameerj/dynarmic-exclusives-config
...
config: Write dynarmic exclusive memory configs
2022-03-13 07:42:38 +00:00
ameerj
4a525deb87
config: Write dynarmic exclusive memory configs
...
Ensures the configs are written and saved between boots
2022-03-12 03:42:50 -05:00
ameerj
048522e98b
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-12 02:54:33 -05:00
bunnei
56b249780d
Merge pull request #7997 from Wunkolo/cpu_detect_more
...
cpu_detect: Add additional x86 flags and telemetry
2022-03-11 17:26:41 -08:00
bunnei
bf810f9e10
Merge pull request #8003 from yuzu-emu/revert-7982-fix_cmake_missing_qt5_dbus
...
Revert "build(cmake): fix missing Qt5::DBus target on linux"
2022-03-11 15:22:30 -08:00
bunnei
e8ada87451
Revert "build(cmake): fix missing Qt5::DBus target on linux"
2022-03-11 15:22:24 -08:00
Wunkolo
c802f8fbd2
cpu_detect: Add additional x86 flags and telemetry
...
Adds detection of additional CPU flags to cpu_detect and additions to telemetry output.
This is not exhaustive but guided by features that [dynarmic utilizes](https://github.com/merryhime/dynarmic/blob/bcfe377aaa5138af740e90af5be7a7dff7b62a52/src/dynarmic/backend/x64/host_feature.h#L12-L33 ) as well as features that are currently utilized but not reported to telemetry(invariant_tsc). This is intended to guide future optimizations.
AVX512 in particular is broken up into its individual subsets and some other processor features such as [sha](https://en.wikipedia.org/wiki/Intel_SHA_extensions ) and [gfni](https://en.wikipedia.org/wiki/AVX-512#GFNI ) are added to have some forward-facing data-points.
What used to be a single `CPU_Extension_x64_AVX512` telemetry field
is also broken up into individual `CPU_Extension_x64_AVX512{F,VL,CD,...}` fields.
2022-03-11 10:27:00 -08:00
Wunkolo
21ccb35705
common/telemetry: Update AddField name type to string_view
...
Non-owning `string_view` is flexable and
avoids some of the many redundant copies made over `std::string`
2022-03-11 10:26:59 -08:00
bunnei
df405f81b7
Merge pull request #7982 from BytesGalore/fix_cmake_missing_qt5_dbus
...
build(cmake): fix missing Qt5::DBus target on linux
2022-03-10 23:12:33 -08:00
Mai M
d64f866600
Merge pull request #7999 from merryhime/fix-7992
...
backend: Ensure backend_thread is destructed before message_queue
2022-03-10 08:07:41 -05:00
Merry
a993e93abd
backend: Ensure backend_thread is destructed before message_queue
...
Ensures that stop_token signals that stop has been requested before destruction of conditional_variable
2022-03-10 10:49:15 +00:00
Morph
c5bb496565
Merge pull request #7998 from Wunkolo/cpuid_array
...
cpu_detect: Revert `__cpuid{ex}` array-type argument
2022-03-10 00:09:36 -05:00
Wunkolo
7cb99ccf23
cpu_detect: Revert __cpuid{ex} array-type argument
...
Restores compatibility with MSVC's `__cpuid` intrinsic.
2022-03-09 19:50:01 -08:00
bunnei
23a072fc7a
Merge pull request #7936 from Wunkolo/cpu_detect
...
cpu_detect: Refactor detection of processor features
2022-03-09 15:34:42 -08:00
Wunkolo
b603adb6ac
cpu_detect: Add missing lzcnt detection
2022-03-09 13:57:47 -08:00
Wunkolo
4aa5b5779b
cpu_detect: Refactor cpu/manufacturer identification
...
Set the zero-enum value to Unknown
Move the Manufacterer enum into the CPUCaps structure namespace
Add "ParseManufacturer" utility-function
Fix cpu/brand string buffer sizes(!)
2022-03-09 13:57:47 -08:00
Wunkolo
14618c0e98
cpu_detect: Update array-types to span and array
...
Update some uses of `int` into some more explicitly sized types as well
2022-03-09 13:57:47 -08:00
Wunkolo
609c64196b
cpu_detect: Utilize Bit<N> utility function
2022-03-09 13:57:47 -08:00
Wunkolo
31f8d6f0cf
cpu_detect: Compact capability fields
...
As this structure gets more explicit, bools can be bitfields and
small enums can use smaller types for their span of values.
2022-03-09 13:57:47 -08:00
Wunkolo
fbf00e7fbc
bit_util: Add bit utility function
...
Extracts a singular bit, as a bool, from the specified compile-time index.
2022-03-09 13:57:47 -08:00
bunnei
685526c857
Merge pull request #7975 from bunnei/ldr-fix
...
hle: service: ldr: Use deterministic addresses when mapping NROs.
2022-03-08 17:39:03 -08:00
bunnei
86eaedbf19
hle: service: ldr: Use deterministic addresses when mapping NROs.
...
- Instead of randomization, choose in-order addresses for where to map NROs into memory.
- This results in predictable behavior when debugging and consistent behavior when reproducing issues.
2022-03-08 17:38:20 -08:00
bunnei
d1aae938a9
Merge pull request #7986 from lat9nq/vk-callback
...
core, video_core: Fix two crashes when failing to create the emulated GPU instance
2022-03-08 12:36:57 -08:00
Fernando S
b50dd6199e
Merge pull request #7989 from degasus/maxwell_LUT3
...
shader_recompiler/LOP3: Use brute force python results within switch/case.
2022-03-08 15:40:31 +01:00
Markus Wick
062d95753f
shader_recompiler/LOP3: Use brute force python results within switch/case.
...
Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more.
The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik.
Performance results:
Instructions
0: 8
1: 30
2: 114
3: 80
4: 24
Latency
0: 8
1: 30
2: 194
3: 24
2022-03-08 09:44:28 +01:00
bunnei
0e203d30f9
Merge pull request #7974 from bunnei/improve-code-mem
...
Kernel Memory Updates (Part 5): Revamp MapCodeMemory and UnmapCodeMemory.
2022-03-07 20:28:39 -08:00
bunnei
9dd48f8f89
hle: kernel: KPageTable: Improve implementations of MapCodeMemory and UnmapCodeMemory.
...
- This makes these functions more accurate to the real HOS implementations.
- Fixes memory access issues in Super Smash Bros. Ultimate that occur when un/mapping NROs.
2022-03-07 17:18:20 -08:00
lat9nq
173ddc9e6b
video_core: Cancel Scoped's exit call on GPU failure
...
When CreateRenderer fails, the GraphicsContext that was std::move'd into
it is destroyed before the Scoped that was created to manage its
currency. In that case, the GraphicsContext::Scoped will still call its
destructor at the ending of the function. And because the context is
destroyed, the Scoped will cause a crash as it attempts to call a
destroyed object's DoneCurrent function.
Since we know when the call would be invalid, call the Scoped's Cancel
method. This prevents it from calling a method on a destroyed object.
2022-03-07 18:21:56 -05:00
lat9nq
e3f8340bec
emu_window: Create a way to Cancel the exit of a Scoped
...
If a GraphicsContext is destroyed before its Scoped is destroyed, this
causes a crash as the Scoped tries to call a method in the destroyed
context on exit.
Add a way to Cancel the call when we know that calling the
GraphicsContext will not work.
2022-03-07 18:21:56 -05:00
Fernando S
3e2bc9e813
Merge pull request #7930 from asLody/dma-semaphore
...
MaxwellDMA: Implement semaphore operations
2022-03-07 21:53:38 +01:00
lat9nq
7df809b8b1
core: Don't shutdown a null GPU
...
When CreateGPU fails, yuzu would try and shutdown the GPU instance
regardless of whether any instance was actually created.
Check for nullptr before calling its methods to prevent a crash.
2022-03-07 15:25:20 -05:00
Lody
3ec2e46e15
MaxwellDMA: Implement semaphore operations
2022-03-07 13:46:18 +08:00
Ameer J
7d636e10d7
gl_graphics_pipeline: Improve shader builder synchronization using fences ( #7969 )
...
* gl_graphics_pipeline: Improve shader builder synchronization
Make use of GLsync objects to ensure better synchronization between shader builder threads and the main context
* gl_graphics_pipeline: Make built_fence access threadsafe
* gl_graphics_pipeline: Use GLsync objects only when building in parallel
* gl_graphics_pipeline: Replace GetSync calls with non-blocking waits
The spec states that a ClientWait on a Fence object ensures the changes propagate to the calling context
2022-03-06 16:46:49 +01:00
BytesGalore
f2ef0fede2
build(cmake): fix missing Qt5::DBus link target
2022-03-06 12:21:46 +01:00
Fernando S
bc96f67ce1
Merge pull request #7973 from Morph1984/debug-crash
...
host_memory: Fix fastmem crashes in debug builds
2022-03-06 04:49:27 +01:00
bunnei
9d25f5409d
Merge pull request #7935 from Wunkolo/logging-join-fix
...
logging: Convert `backend_thread` into an `std::jthread`
2022-03-02 19:09:26 -08:00
bunnei
ae301a650e
Merge pull request #7956 from bunnei/improve-mem-manager
...
Kernel Memory Updates (Part 4): Revamp KMemoryManager & other fixes
2022-03-02 17:55:51 -08:00
Morph
5ea520a149
host_memory: Fix fastmem crashes in debug builds
...
It is possible for virtual_offset to not be 0 when the iterator is at the beginning, and thus, std::prev(it) may be evaluated, leading to a crash in debug mode.
Co-Authored-By: Fernando S. <1731197+FernandoS27@users.noreply.github.com >
2022-03-02 18:36:59 -05:00
Fernando S
a4a6aa4b33
Merge pull request #7959 from merryhime/cmpxchg
...
dynarmic: Inline exclusive memory accesses
2022-03-01 22:50:52 +01:00
Mai M
079400000c
Merge pull request #7967 from zhaobot/tx-update-20220301023432
...
Update translations (2022-03-01)
2022-03-01 00:50:28 -05:00
The yuzu Community
e274042d12
Update translations (2022-03-01)
2022-03-01 02:34:54 +00:00
Mai M
7b55338788
Merge pull request #7963 from ameerj/gl_fence_nit
...
gl_fence_manager: Minor optimization to signal querying
2022-02-28 19:53:24 -05:00
Mai M
91f78954f1
Merge pull request #7966 from merryhime/cmake-ffmpeg-endif
...
ffmpeg: Fix mis-maching argument warning for endif
2022-02-28 19:51:10 -05:00
Merry
da236f22b3
ffmpeg: Fix mis-maching argument warning for endif
2022-02-28 21:08:12 +00:00
merry
4b709cce07
dynarmic: Update to latest master
2022-02-28 20:10:13 +00:00
bunnei
82ca8230ad
hle: kernel: Re-create memory layout at initialization.
...
- As this can only be derived once.
2022-02-27 18:00:09 -08:00
bunnei
41c9c93736
hle: kernel: Remove unused pool locals.
2022-02-27 18:00:09 -08:00