liamwhite
0ae4eae9a6
Merge pull request #8460 from Morph1984/bounded-q
...
bounded_threadsafe_queue: Use constexpr capacity and mask
2022-06-15 19:39:22 -04:00
Morph
25429998e3
bounded_threadsafe_queue: Use constexpr capacity and mask
...
While this is the primary change, we also:
- Remove the mpsc namespace and rename Queue to MPSCQueue
- Make Slot a private struct within MPSCQueue
- Remove the AlignedAllocator template argument, as we use std::allocator
- Replace instances of mask + 1 with capacity, and mask + 2 with capacity + 1
2022-06-15 16:59:13 -04:00
Morph
4572634a4e
vk_compute_pass: Explicitly cast to VkAccessFlags
...
According to the standard, a narrowing conversion is an implicit conversion from an integer or unscoped enumeration type to an integer type that cannot represent all the values of the original type, except when the value is a literal or constant expression.
MSVC, unlike GCC or Clang, determines this to be a narrowing conversion despite the enumeration exclusively containing values that fit within the range of a 32 bit integer, emitting a warning since designated initializers prohibit narrowing conversions.
To solve this, explicitly cast to the type we are initializing.
2022-06-15 07:12:16 -04:00
Mai
103997ee56
Merge pull request #8383 from Morph1984/shadow-of-the-past
...
yuzu: Make variable shadowing a compile-time error
2022-06-14 21:08:58 -04:00
Morph
5568763a57
vk_compute_pass: Use VK_ACCESS_NONE
...
This enumeration was introduced in Vulkan 1.3, prefer using this instead of defaulting the enum.
Also resolves a narrowing conversion warning on MSVC.
2022-06-14 09:14:13 -04:00
Mai
a3b12e3809
Merge pull request #8439 from liamwhite/monkey-compiler
...
general: fix compilation on GCC 12
2022-06-14 08:34:16 -04:00
Morph
fcfe192e83
vk_compute_pass: Silence Wextra warning
...
Silences a warning about using enumerated and non-enumerated types in a conditional expression.
2022-06-14 05:29:57 -04:00
Liam
ebecdd3a74
general: fix compilation on MinGW GCC 12
2022-06-13 20:09:32 -04:00
Liam
084d7d6b01
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
Morph
efc89c032b
CMakeLists: Make variable shadowing a compile-time error
...
Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
2022-06-13 18:19:23 -04:00
bunnei
5282efac1b
Merge pull request #8413 from behunin/bounded-queue
...
gpu_thread: Move to bounded queue
2022-06-11 00:07:18 -07:00
bunnei
ae83d5c6d3
Merge pull request #8393 from lat9nq/default-vulkan
...
general: Set renderer_backend's default to Vulkan
2022-06-11 00:06:59 -07:00
Levi Behunin
4dd6bcd206
gpu_thread: Move to bounded queue
2022-06-02 19:37:46 -06:00
Billy Laws
ea89cf8639
Maxwell3D: Fix 3D semaphore counter type 0 handling
...
Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
2022-06-02 21:46:38 +01:00
Liam
989d4a7a41
core/debugger: Improved stepping mechanism and misc fixes
2022-06-01 02:15:15 -04:00
lat9nq
b43ae9d5ed
vulkan_library: Add debug logging
2022-05-30 10:57:59 -04:00
bunnei
1c8b509441
Merge pull request #8332 from Morph1984/reduce_exec_size
...
general: Use smaller array types where applicable
2022-05-29 02:33:24 -07:00
bunnei
a9beb4746e
Merge pull request #8379 from lat9nq/amd-push-desc-workaround
...
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
2022-05-25 13:07:39 -07:00
bunnei
79352ee9d5
Merge pull request #8369 from lat9nq/amd-wmel-workaround
...
vulkan_device: Workaround extension bug
2022-05-25 13:07:28 -07:00
lat9nq
3a8c2ae328
vulkan_device: Workaround extension bug
...
A bug occurs in yuzu when VK_KHR_workgroup_memory_explicit_layout is
available but 16-bit integers are not supported in the host driver.
Disable usage of the extension when this case arises.
2022-05-25 01:22:15 -04:00
lat9nq
7f53cd1e96
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
...
Recent AMD Vulkan drivers (22.5.2 or 2.0.226 for specifically Vulkan)
have a broken VK_KHR_push_descriptor implementation that causes a crash
in yuzu. Disable it for the time being.
2022-05-25 01:17:48 -04:00
bunnei
4118aad491
Merge pull request #8311 from asLody/fix-stencil-faces
...
vk_rasterizer: fix stencil test when two faces are disabled
2022-05-24 18:37:31 -07:00
Alexandre Bouvier
020982508d
video_core: Support new VkResult
2022-05-17 17:37:10 +02:00
Morph
370d3fa1e3
video_core/surface: Use u8 for PixelFormat block tables
...
Using this smaller type saves 33280 bytes in the compiled executable.
2022-05-13 00:51:11 -04:00
Morph
b3f8c7ce58
codecs/vp9: Use u8 for norm and map luts
...
Using this smaller type saves 1536 bytes in the compiled executable.
2022-05-13 00:51:05 -04:00
Morph
2fb6df3fe9
Merge pull request #8314 from liamwhite/gl-flip-2
...
OpenGL: interpret face flips according to GL NDC
2022-05-11 17:51:18 -04:00
Morph
dca63391b6
Merge pull request #8313 from liamwhite/dma-bpp
...
maxwell_dma: fix bytes_per_pixel
2022-05-11 17:51:02 -04:00
Liam
e7ba9fd7e1
maxwell_dma: use fallback if remapping is enabled
2022-05-10 19:26:48 -04:00
Liam
e158951695
video_core/macro: clear code on upload address assignment
2022-05-10 17:07:21 -04:00
Fernando Sahmkow
5562ae9cc5
VideoCore: Add option to dump the macros.
...
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2022-05-08 21:37:34 -04:00
Liam
7fe5004f90
video_core/macro_jit_x64: warn on invalid parameter access
2022-05-08 02:48:03 -04:00
Liam
b317f54f22
OpenGL: implement face flips according to NDC
2022-05-06 20:05:21 -04:00
Liam
4f1a2c2562
maxwell_dma: fix bytes per pixel
2022-05-06 18:18:00 -04:00
Lody
535bc61b4c
vk_rasterizer: fix stencil test when two faces are disabled
2022-05-06 14:47:55 +08:00
Mai M
ca28b447ac
Merge pull request #8280 from Tachi107/spdx-fixup
...
chore: add missing SPDX tags
2022-04-28 23:28:42 -04:00
Mai M
5687bc6e10
Merge pull request #8282 from liamwhite/gcc-12
...
GCC 12 fixes
2022-04-28 23:28:07 -04:00
Liam
709d7fd92c
GCC 12 fixes
2022-04-28 16:50:34 -04:00
Andrea Pappacoda
01cf05bc75
chore: add missing SPDX tags
...
Follow-up to 99ceb03a1c
2022-04-28 18:24:11 +02:00
Morph
213120a98b
renderer_vulkan: Update screen info if the framebuffer size has changed
2022-04-26 02:48:40 -04:00
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
german77
3e77466b86
bootmanager: Don't create another screenshot request if previous one is not done yet
2022-04-18 01:00:48 -05:00
Fernando Sahmkow
f783883bf8
video_core: implement formats for N64 emulation
2022-04-14 11:06:27 -04:00
Liam
d4571b123d
buffer_cache: cap vertex buffer sizes
2022-04-14 10:46:48 -04:00
Liam
a24e7ba61b
maxwell3d: add small_index_2 register
2022-04-14 09:57:06 -04:00
bunnei
bf3c6f8812
Merge pull request #8149 from liamwhite/front-face
...
OpenGL: flip front faces if Z scale is inverted
2022-04-09 01:39:39 -07:00
Merry
bbc585881a
video_core: Replace lock_guard with scoped_lock
2022-04-07 19:44:07 +01:00
Fernando S
4265372099
Merge pull request #8161 from liamwhite/gl-s8d24
...
OpenGL: fix S8D24 to ABGR8 conversions
2022-04-07 16:59:41 +02:00
Fernando S
03d5794183
Merge pull request #8152 from liamwhite/gl-crop
...
OpenGL: fix cropping
2022-04-07 16:58:59 +02:00
Liam
52ebdd42c6
OpenGL: fix S8D24 to ABGR8 conversions
2022-04-06 19:44:33 -04:00
bunnei
02473ea7d5
Revert "texture_cache/util: Remove unneeded ReadBlockUnsafe"
2022-04-04 16:26:53 -07:00
ameerj
494c41dd5a
texture_cache/util: Remove unneeded ReadBlockUnsafe
...
This call was reading GPU memory into the dst buffer, which is then overwritten by the SwizzleTexture call.
2022-04-04 15:57:54 -04:00
Liam
b7be6a4316
OpenGL: fix cropping
2022-04-04 12:51:09 -04:00
Liam
c59c035d74
Vulkan: crop to screen dimensions if crop not explicitly requested
2022-04-04 11:45:15 -04:00
Liam
a57531854e
OpenGL: propagate face flip condition
2022-04-04 10:32:14 -04:00
Liam
cb913e5c02
OpenGL: flip front faces if Z scale is inverted
2022-04-04 10:19:40 -04:00
Andrea Pappacoda
0c214cb5b9
fix: typos
2022-04-02 16:34:07 +02:00
Fernando S
550844e5e8
Merge pull request #8128 from FernandoS27/gc-fixes
...
GPU Garbage Collection: Fix regressions.
2022-04-01 17:19:55 +02:00
Fernando S
b1fdc02465
Merge pull request #8066 from ameerj/gpu-decode-fixes
...
codec: Fix GPU decoder detection on Windows and a memory leak
2022-04-01 01:37:22 +02:00
Fernando Sahmkow
e9e671d101
GPU Garbage Collection: Fix regressions.
2022-04-01 01:36:24 +02:00
bunnei
9b52ee4558
Merge pull request #8076 from ameerj/nv-vk-msaa-scale
...
Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+
2022-03-30 23:00:44 -07:00
ameerj
3e489782e1
gl_rasterizer: Avoid scenario locking already owned mutex
...
gpu.TickWork() may lock the texture_cache and buffer_cache mutexes, which are owned by the thread prior to invoking TickWork().
Defer invoking gpu.TickWork() until the scope ends, where the owned mutexes are released.
2022-03-28 20:35:15 -04:00
bunnei
af04f8b8e9
Revert "Memory GPU <-> CPU: reduce infighting in the texture cache by adding CPU Cached memory."
2022-03-26 12:38:30 -07:00
Fernando Sahmkow
7a9d9e575b
Texture Cache: Add Cached CPU system.
2022-03-25 04:24:05 +01:00
bunnei
ab6a5784fa
Merge pull request #7720 from FernandoS27/yfc-gc
...
First Nugget: Reworked Garbage Collection to be smarter [originally from Project YFC]
2022-03-24 20:16:11 -07:00
Fernando Sahmkow
9872d4bc4f
GC: Address Feedback.
2022-03-25 03:05:56 +01:00
bunnei
ca12a77670
hle: nvflinger: Migrate android namespace -> Service::android.
2022-03-24 18:13:33 -07:00
bunnei
7f4165fc05
hle: vi: Integrate new NVFlinger and HosBinderDriverServer service.
2022-03-24 18:13:33 -07:00
bunnei
05d80fba38
hle: nvflinger: Move BufferTransformFlags to its own header.
2022-03-24 18:13:32 -07:00
bunnei
d456b9d554
hle: nvflinger: Move PixelFormat to its own header.
2022-03-24 18:13:32 -07:00
Fernando Sahmkow
9edbbf2af4
Garbage Collection: Final tuning.
2022-03-25 01:51:52 +01:00
Fernando Sahmkow
5e982a7812
Buffer Cache: Tune to the levels of the new GC.
2022-03-25 01:51:51 +01:00
Fernando Sahmkow
ecb3342145
Garbage Collection: Redesign the algorithm to do a better use of memory.
2022-03-25 01:51:51 +01:00
ameerj
8d45dd3b73
Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+
...
Nvidia Vulkan drivers 510+ crash when blitting MSAA images. Fall-back to 3D scale helpers for MSAA image scaling.
2022-03-23 23:30:17 -04:00
Liam
dea5de91d2
buffer_cache: reset cached write bits after flushing invalidations
2022-03-23 20:59:01 -04:00
bunnei
82ac66f8a4
Merge pull request #8048 from ameerj/include-purge
...
general: Reduce unused includes across the project
2022-03-21 18:03:54 -07:00
ameerj
15f9472b15
codec: Plug GPU decoder memory leak
2022-03-21 20:22:52 -04:00
ameerj
109566fc8f
codec: Disable HW_FRAMES method check on Windows
...
It was reported that this method causes crashes on certain Linux decoding backends, hence the check to avoid it.
This subsequently caused Windows GPU decoders to never be selected and always fall back to CPU decoding, disable the check on Windows for now.
2022-03-21 20:21:09 -04:00
bunnei
ff2e891022
Merge pull request #7812 from FernandoS27/made-straight-from-the-nut
...
BufferCache: Find direction of the stream buffer increase.
2022-03-20 15:23:53 -07:00
Fernando Sahmkow
3b0d233cbd
BufferCache: Find direction of the stream buffer increase.
2022-03-20 21:37:23 +01:00
Fernando S
7c05c987a3
Merge pull request #8036 from ameerj/starbit-nv
...
vk_texture_cache: Do not reinterpret DepthStencil source images
2022-03-20 13:35:59 +01:00
bunnei
150f6db4d1
Merge pull request #7840 from lioncash/bitor
...
texture_cache: Amend unintended bitwise OR in SynchronizeAliases
2022-03-20 02:19:30 -07:00
ameerj
866b7c20a8
general: Fix clang/gcc build errors
2022-03-20 02:25:09 -04:00
ameerj
923decae5a
common: Reduce unused includes
2022-03-19 15:01:31 -04:00
ameerj
1bc7d61b57
video_core: Reduce unused includes
2022-03-19 15:01:31 -04:00
ameerj
d618bba8a6
general: Reduce core.h includes
2022-03-18 02:13:02 -04:00
ameerj
4d840aa903
vk_texture_cache: Do not reinterpret DepthStencil source images
...
Fixes star pointer interactions in Super Mario Galaxy on some drivers, notably Nvidia.
Co-Authored-By: Fernando S. <1731197+fernandos27@users.noreply.github.com>
2022-03-17 20:55:05 -04:00
Fernando S
a616f49864
Merge pull request #8030 from liamwhite/s8d24-conversion
...
Vulkan: convert S8D24 <-> ABGR8
2022-03-18 00:36:06 +01:00
Liam
6407f16d81
Address review comments
2022-03-16 18:00:42 -04:00
Fernando S
c3c351e2c2
Merge pull request #8023 from ameerj/kirby-pop-in
...
maxwell_3d: Implement a safer CB data upload
2022-03-16 12:14:08 +01:00
Liam
bcc2d7e69b
Vulkan: convert S8D24 <-> ABGR8
2022-03-15 20:05:21 -04:00
ameerj
5119a57614
maxwell_3d: Implement a safer CB data upload
...
This makes constant buffer uploads safer and more accurate by updating the GPU memory as soon as the CB Data method is invoked. The previous implementation was deferring the updates until a different maxwell 3d method was detected, then writing all CB data at once.
2022-03-14 19:18:36 -04:00
Fernando S
f9e1f559b1
Merge pull request #8000 from liamwhite/hagi
...
Initial support for Wii Hagi emulator
2022-03-15 00:08:05 +01:00
byte[]
be0e6a2bb4
Maxwell3D: Link to override constant definition in nouveau
2022-03-14 11:06:25 -04:00
byte[]
364c67e49b
Maxwell3D: restore original topology when topology overrides are disabled
2022-03-14 11:00:08 -04:00
Liam
37aa472269
Maxwell3D: Use override constants from nouveau
...
This fixes some incorrect rendering in Sunshine
2022-03-14 10:11:58 -04:00
ameerj
e8c50e709e
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-12 02:54:33 -05:00
Liam
56c646d82c
Maxwell3D: Restrict topology override effect to after the register is set
2022-03-11 19:42:12 -05:00
Liam
70e632f153
Maxwell3D: mark index buffers as dirty after updating counts
2022-03-11 08:51:22 -05:00
Liam
82c3042c0f
TextureCacheRuntime: allow converting D24S8 to ABGR8
...
I can't see how this would be useful, but Galaxy uses it.
2022-03-10 20:25:34 -05:00
Liam
f1521183f8
Maxwell3D: read small-index draw and primitive topology override registers
...
This allows Galaxy and Sunshine to render for the first time.
2022-03-10 19:21:04 -05:00