| Age | Commit message (Collapse) | Author |
|
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()
|
|
gl_rasterizer: Remove warning of untested alpha test
|
|
Alpha test has been proven to only affect the first render target.
|
|
shader_bytecode: Eliminate variable shadowing
|
|
Same behavior, but constructs the threads in place instead of moving
them.
|
|
This is equivalent to moving all the contents and then clearing the
vector. This avoids a redundant allocation.
|
|
|
|
Same behavior, but avoids redundant copies.
While we're at it, we can simplify the pushing of the parameters into
the pending queue.
|
|
Gets rid of an unnecessary expansion from float to double.
|
|
Ensures that all queried values are made use of.
|
|
|
|
maxwell_3d: Move code to separate functions and insert instead of push_back
|
|
|
|
|
|
|
|
This reduces the overhead of bounds checking on each element.
It won't reduce the cost of allocation because usually this vector's
capacity is usually large enough to hold whatever we push to it.
|
|
Deduplicate some code and put it in separate functions so it's easier to
understand and profile.
|
|
- This seems to cause softlocks in Breath of the Wild.
|
|
General: Fix clang build
|
|
shader: Partially implement texture cube array shadow
|