| Age | Commit message (Collapse) | Author |
|
Nvidia recently introduced a new memory type for data streaming
(awesome!), but yuzu was assuming that all heaps had enough memory
for the assumed stream buffer size (256 MiB).
This worked fine on AMD but Nvidia's new memory heap was smaller than
256 MiB. This commit changes this assumption and allocates a bit less
than the size of the preferred heap, with a maximum of 256 MiB (to avoid
allocating all system memory on integrated devices).
- Fixes a crash on NVIDIA 450.82.0.0
|
|
|
|
Implement a new virtual memory manager
|
|
gl_query_cache: Resolve use-after-move in CachedQuery move assignment operator
|
|
|
|
- helpful to disambiguate Kernel::Memory namespace.
|
|
|
|
Only the first element of the returned pair is ever used.
|
|
Some variables aren't used, so we can remove these.
Unfortunately, diagnostics are still reported on structured bindings
even when annotated with [[maybe_unused]], so we need to unpack the
elements that we want to use manually.
|
|
Same behavior, less code.
|
|
We can just specify the initializers.
|
|
CMakeLists: Specify -Wextra on linux builds
|
|
nouveau expects this to be true but it doesn't set it.
|
|
Implement indexed quads (GL_QUADS used with glDrawElements*) with a
compute pass conversion.
The compute shader converts from uint8/uint16/uint32 indices to uint32.
The format is passed through push constants to avoid having different
variants of the same shader.
- Used by Fast RMX
- Used by Xenoblade Chronicles 2 (it still has graphical due to
synchronization issues on Vulkan)
|
|
buffer_cache: Return handles instead of pointer to handles
|
|
The original idea of returning pointers is that handles can be moved.
The problem is that the implementation didn't take that in mind and made
everything harder to work with. This commit drops pointer to handles and
returns the handles themselves. While it is still true that handles can
be invalidated, this way we get an old handle instead of a dangling
pointer.
This problem can be solved in the future with sparse buffers.
|
|
decode/shift: Remove unused variable within Shift()
|
|
surface_view: Add missing operator!= to ViewParams
|
|
gl_device: Mark stage_swizzle as constexpr
|
|
surface_base: Make IsInside() a const member function
|
|
control_flow: Make use of std::move in TryInspectAddress()
|
|
Removes a redundant variable that is already satisfied by the IsFull()
utility function.
|
|
Provides logical symmetry to the interface.
|
|
This doesn't modify internal state, so this can be made const.
|
|
video_core: Amend doxygen comment references
|
|
Previously these were all using the red component to derive the indices,
which is definitely not intentional.
|
|
Eliminates redundant atomic reference count increments and decrements.
|
|
Fixes broken documentation references.
|
|
|
|
Avoids potential invalid junk data from being read.
|
|
The components' sizes were mismatched. This corrects that.
|
|
Previously this was mutable even though it shouldn't be.
|
|
Two variables can be references, while two others can be std::moved.
Makes for 4 less atomic reference count increments and decrements.
|
|
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
|
|
Texture Cache: Read current data when flushing a 3D segment.
|
|
shader/memory: Implement RED.E.ADD and minor changes to ATOM
|
|
This can result in silent logic bugs within code, and given the amount
of times these kind of warnings are caused, they should be flagged at
compile-time so no new code is submitted with them.
|
|
gl_rasterizer: Implement constant vertex attributes
|
|
This PR corrects flushing of 3D segments when data of other segments is
mixed, this aims to preserve the data in place.
|
|
maxwell_to_vk: Add uint16 vertex formats
|
|
gl_shader_cache: Use CompileDepth::FullDecompile on GLSL
|
|
gl_texture_cache: Fix layered texture attachment base level
|
|
shader/arithmetic: Add FCMP_CR variant
|
|
Revert "gl_shader_decompiler: Implement merges with bitfieldInsert"
|
|
|
|
Avoid invalid fallbacks.
|
|
When the dynamic state is specified, pViewports and pScissors are
ignored, quoting the specification:
pViewports is a pointer to an array of VkViewport structures, defining
the viewport transforms. If the viewport state is dynamic, this member
is ignored.
That said, AMD's proprietary driver itself seem to read it regardless of
what the specification says.
|
|
vk_rasterizer: Default to 1 viewports with a size of 0
|
|
This is a simple optimization as Buffer Copies are mostly used for texture recycling. They are, however, useful when games abuse undefined behavior but most 3D APIs forbid it.
|
|
This reverts commit 05cf27083608bebd3ee4c38f2f948c8f2030f881.
Apparently the first approach using floats instead of bitfieldInert
worked better for Fire Emblem: Three Houses. Reverting to get that
behavior back.
|