| Age | Commit message (Collapse) | Author |
|
maxwell_3d: Remove unused dirty_pointer array
|
|
gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()
|
|
video_core: Make use of ordered container contains() where applicable
|
|
With C++20, we can use the more concise contains() member function
instead of comparing the result of the find() call with the end
iterator.
|
|
Provides an in-place format string to make it more pleasant to read.
|
|
Resolves a -Wrange-loop-analysis warning.
|
|
map_interval: Change field order to address uninitialized field warning
|
|
shader_ir: std::move node within DeclareAmend()
|
|
Prevents logic errors from occurring from unused values.
|
|
Reduces the amount of dependencies the header pulls in.
|
|
Same behavior, but elides an unnecessary atomic reference count
increment and decrement.
|
|
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.
Reduces the line noise a bit.
|
|
renderer_vulkan: Add missing `override` specifier
|
|
video_core: Resolve more variable shadowing scenarios pt.3
|
|
Follows our established coding style.
|
|
Removes a documentation comment for a non-existent member.
|
|
This is unused and removing it shrinks the structure by 3584 bytes.
|
|
|
|
Clang complains about `new_chunk`'s constructor using the
then-uninitialized `first_chunk` (even though it's just to get a pointer
into it).
|
|
The previous definition was:
#define NUM(field_name) (sizeof(Maxwell3D::Regs::field_name) / sizeof(u32))
In cases where `field_name` happens to refer to an array, Clang thinks
`sizeof(an array value) / sizeof(a type)` is an instance of the idiom
where `sizeof` is used to compute an array length. So it thinks the
type in the denominator ought to be the array element type, and warns if
it isn't, assuming this is a mistake.
In reality, `NUM` is not used to get array lengths at all, so there is no
mistake. Silence the warning by applying Clang's suggested workaround
of parenthesizing the denominator.
|
|
On Apple platforms, FALSE and TRUE are defined as macros by
<mach/boolean.h>, which is included by various system headers.
Note that there appear to be no actual users of the names to fix up.
|
|
Cleans out the rest of the occurrences of variable shadowing and makes
any further occurrences of shadowing compiler errors.
|
|
Migrates the video core code closer to enabling variable shadowing
warnings as errors.
This primarily sorts out shadowing occurrences within the Vulkan code.
|
|
video_core: Resolve more variable shadowing scenarios
|
|
Port citra-emu/citra#5617: "Fix telemetry-related exit crash from use-after-free"
|
|
Co-Authored-By: xperia64 <xperia64@users.noreply.github.com>
|
|
This was only necessary for use with the
avcodec_decode_video2/avcoded_decode_audio4 APIs which are also
deprecated.
Given we use avcodec_send_packet/avcodec_receive_frame, this isn't
necessary, this is even indicated directly within the FFmpeg API changes
document here on 2017-09-26:
https://github.com/FFmpeg/FFmpeg/blob/master/doc/APIchanges#L410
This prevents our code from breaking whenever we update to a newer
version of FFmpeg in the future if they ever decide to fully remove this
API member.
|
|
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
|
|
node: Eliminate variable shadowing
|
|
Prevents logic bugs from accidentally ignoring the return value.
|
|
|
|
Removes the usage of moves that don't result in behavior different from
a copy, or otherwise would prevent copy elision from occurring.
|
|
nvdec: Queue and display all decoded frames, cleanup decoders
|
|
vk_shader_decompiler: Implement force early fragment tests
|
|
|
|
Force early fragment tests when the 3D method is enabled.
The established pipeline cache takes care of recompiling if needed.
This is implemented only on Vulkan to avoid invalidating the shader
cache on OpenGL.
|
|
Workaround for ZLA, which seems to decode and queue twice as many frames as it displays.
|
|
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
|
|
remove some redundant moves, make deleter match naming guidelines.
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
|
|
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
|
|
|
|
|
|
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
|
|
|
|
Used by various textures in many titles, e.g. SSBU menu.
|
|
- Use .at() instead of raw indexing when dealing with untrusted indices.
- For the special case of WaitFence with syncpoint id UINT32_MAX,
instead of crashing, log an error and ignore. This is what I get when
running Super Mario Maker 2.
|
|
decoder/image: Fix incorrect G24R8 component sizes in GetComponentSize()
|
|
main thread
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers. It had three implementations:
- In GRenderWindow, it didn't actually poll events, just set a flag and
emit a signal to indicate that a frame was displayed.
- In EmuWindow_SDL2_Hide, it did nothing.
- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
because SDL_PollEvents is supposed to be called on the thread that set
up video - in this case, the main thread, which was sleeping in a
busyloop (regardless of whether sync-GPU was enabled). On macOS this
causes a crash.
To fix this:
- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
default implementation that does nothing.
- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
the main thread call SDL_WaitEvent in a loop.
|
|
gl_rasterizer: Make floating-point literal a float
|
|
async_shaders: std::move data within QueueVulkanShader()
|