Commit Graph

21177 Commits (2afef2b6091324e29c9cb57c1412a99c9e076862)
 

Author SHA1 Message Date
Fernando S f9e1f559b1
Merge pull request #8000 from liamwhite/hagi
Initial support for Wii Hagi emulator
3 years ago
bunnei cc285b9924
Merge pull request #8015 from FernandoS27/fix-global-mem
Shader decompiler: Fix storage tracking in deko3d.
3 years ago
byte[] be0e6a2bb4 Maxwell3D: Link to override constant definition in nouveau 3 years ago
Fernando S 0331b8d799
Merge pull request #8016 from merryhime/kill-mem-use
dynarmic: Reduce size of code caches
3 years ago
byte[] 364c67e49b Maxwell3D: restore original topology when topology overrides are disabled 3 years ago
Liam 37aa472269 Maxwell3D: Use override constants from nouveau
This fixes some incorrect rendering in Sunshine
3 years ago
Merry 220674d0d6 dynarmic: Reduce size of code caches 3 years ago
Fernando Sahmkow 185fc03c3c Shader decompiler: do constant propgation before texture pass. 3 years ago
Fernando Sahmkow ec9f0f064e Shader decompiler: Fix storage tracking in deko3d. 3 years ago
bunnei 8decc8d1a5
Merge pull request #8007 from ameerj/vs-2022-errors
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
3 years ago
merry 1f6bbb6257
Merge pull request #8009 from ameerj/dynarmic-exclusives-config
config: Write dynarmic exclusive memory configs
3 years ago
ameerj 6b164a80a1 config: Write dynarmic exclusive memory configs
Ensures the configs are written and saved between boots
3 years ago
ameerj f87f8d4610 rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
ImageFetch offsets for 2D array coordinates have a different composite size than the coordinates. The rescaling pass was not taking this into account.

Fixes broken shaders when scaling is enabled in Astral Chain, and likely other titles.
3 years ago
ameerj e8c50e709e emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors 3 years ago
BytesGalore 948f6e1112 build(cmake): fix missing Qt5::DBus link target for bundled linux package 3 years ago
bunnei 27cc7b6a73
Merge pull request #7997 from Wunkolo/cpu_detect_more
cpu_detect: Add additional x86 flags and telemetry
3 years ago
Liam 56c646d82c Maxwell3D: Restrict topology override effect to after the register is set 3 years ago
bunnei 5c74dd6462
Merge pull request #8003 from yuzu-emu/revert-7982-fix_cmake_missing_qt5_dbus
Revert "build(cmake): fix missing Qt5::DBus target on linux"
3 years ago
bunnei 15fdc2cd09
Revert "build(cmake): fix missing Qt5::DBus target on linux" 3 years ago
Wunkolo d248c1203e 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](bcfe377aaa/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.
3 years ago
Wunkolo 29a7a61806 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`
3 years ago
Liam 70e632f153 Maxwell3D: mark index buffers as dirty after updating counts 3 years ago
bunnei 8180b262fc
Merge pull request #7982 from BytesGalore/fix_cmake_missing_qt5_dbus
build(cmake): fix missing Qt5::DBus target on linux
3 years ago
Liam 82c3042c0f TextureCacheRuntime: allow converting D24S8 to ABGR8
I can't see how this would be useful, but Galaxy uses it.
3 years ago
Liam f1521183f8 Maxwell3D: read small-index draw and primitive topology override registers
This allows Galaxy and Sunshine to render for the first time.
3 years ago
Mai M e200161982
Merge pull request #7999 from merryhime/fix-7992
backend: Ensure backend_thread is destructed before message_queue
3 years ago
Merry 22f50c6bc1 backend: Ensure backend_thread is destructed before message_queue
Ensures that stop_token signals that stop has been requested before destruction of conditional_variable
3 years ago
Morph 52f8f00434
Merge pull request #7998 from Wunkolo/cpuid_array
cpu_detect: Revert `__cpuid{ex}` array-type argument
3 years ago
Wunkolo d9b1199ffb cpu_detect: Revert `__cpuid{ex}` array-type argument
Restores compatibility with MSVC's `__cpuid` intrinsic.
3 years ago
bunnei 9a97ef4647
Merge pull request #7936 from Wunkolo/cpu_detect
cpu_detect: Refactor detection of processor features
3 years ago
Wunkolo 873a9fa7e5 cpu_detect: Add missing `lzcnt` detection 3 years ago
Wunkolo ec5f3351b6 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(!)
3 years ago
Wunkolo 86e9e60f07 cpu_detect: Update array-types to `span` and `array`
Update some uses of `int` into some more explicitly sized types as well
3 years ago
Wunkolo 3c33ba7f18 cpu_detect: Utilize `Bit<N>` utility function 3 years ago
Wunkolo d233de8194 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.
3 years ago
Wunkolo add2cfcb96 bit_util: Add `bit` utility function
Extracts a singular bit, as a bool, from the specified compile-time index.
3 years ago
bunnei 6f670381cf
Merge pull request #7975 from bunnei/ldr-fix
hle: service: ldr: Use deterministic addresses when mapping NROs.
3 years ago
bunnei 853e58e593 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.
3 years ago
bunnei f2743b41b0
Merge pull request #7986 from lat9nq/vk-callback
core, video_core: Fix two crashes when failing to create the emulated GPU instance
3 years ago
Fernando S 35309f27ed
Merge pull request #7989 from degasus/maxwell_LUT3
shader_recompiler/LOP3: Use brute force python results within switch/case.
3 years ago
Markus Wick c78c8190d5 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
3 years ago
bunnei 1f37896066
Merge pull request #7974 from bunnei/improve-code-mem
Kernel Memory Updates (Part 5): Revamp MapCodeMemory and UnmapCodeMemory.
3 years ago
bunnei 749f76e6fe 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.
3 years ago
lat9nq b5e60ae1b0 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.
3 years ago
lat9nq 1f24a4e520 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.
3 years ago
Fernando S 58b52f4884
Merge pull request #7930 from asLody/dma-semaphore
MaxwellDMA: Implement semaphore operations
3 years ago
lat9nq 381f1dd2c9 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.
3 years ago
Lody 4498908e72 MaxwellDMA: Implement semaphore operations 3 years ago
Ameer J 370e480c8c
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
3 years ago
BytesGalore fc84649aab build(cmake): fix missing Qt5::DBus link target 3 years ago