aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-04-15track: Eliminate redundant copiesLioncash
Two variables can be references, while two others can be std::moved. Makes for 4 less atomic reference count increments and decrements.
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
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.
2020-04-15Merge pull request #3649 from FernandoS27/3d-fixRodrigo Locatti
Texture Cache: Read current data when flushing a 3D segment.
2020-04-15Merge pull request #3612 from ReinUsesLisp/redFernando Sahmkow
shader/memory: Implement RED.E.ADD and minor changes to ATOM
2020-04-15file_util: Early-exit in WriteArray and ReadArray if specified lengths are zeroLioncash
It's undefined behavior to pass a null pointer to std::fread and std::fwrite, even if the length passed in is zero, so we must perform the precondition checking ourselves. A common case where this can occur is when passing in the data of an empty std::vector and size, as an empty vector will typically have a null internal buffer. While we're at it, we can move the implementation out of line and add debug checks against passing in nullptr to std::fread and std::fwrite.
2020-04-15CMakeLists: Make -Wreorder a compile-time errorLioncash
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.
2020-04-15kernel/thread: Resolve -Wswitch warningsLioncash
2020-04-15Merge pull request #3662 from ReinUsesLisp/constant-attrsMat M
gl_rasterizer: Implement constant vertex attributes
2020-04-15Texture Cache: Read current data when flushing a 3D segment.Fernando Sahmkow
This PR corrects flushing of 3D segments when data of other segments is mixed, this aims to preserve the data in place.
2020-04-15Merge pull request #3668 from ReinUsesLisp/vtx-format-16uiMat M
maxwell_to_vk: Add uint16 vertex formats
2020-04-15Merge pull request #3656 from ReinUsesLisp/glsl-full-decompileMat M
gl_shader_cache: Use CompileDepth::FullDecompile on GLSL
2020-04-15Merge pull request #3654 from ReinUsesLisp/fix-fb-attachMat M
gl_texture_cache: Fix layered texture attachment base level
2020-04-15Merge pull request #3663 from ReinUsesLisp/fcmp-rcMat M
shader/arithmetic: Add FCMP_CR variant
2020-04-15Merge pull request #3664 from ReinUsesLisp/fe3h-black-squaresMat M
Revert "gl_shader_decompiler: Implement merges with bitfieldInsert"
2020-04-15maxwell_to_vk: Add uint16 vertex formatsReinUsesLisp
2020-04-15maxwell_to_vk: Add missing breaksReinUsesLisp
Avoid invalid fallbacks.
2020-04-15vk_blit_screen: Initialize all members in VkPipelineViewportStateCreateInfoReinUsesLisp
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.
2020-04-15Merge pull request #3657 from ReinUsesLisp/viewport-zeroRodrigo Locatti
vk_rasterizer: Default to 1 viewports with a size of 0
2020-04-14Texture Cache: Only do buffer copies on accurate GPU. (#3634)Fernando Sahmkow
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.
2020-04-14service: time: Implement CalculateStandardUserSystemClockDifferenceByUser.bunnei
- Used by Animal Crossing: New Horizons.
2020-04-14Revert "gl_shader_decompiler: Implement merges with bitfieldInsert"ReinUsesLisp
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.
2020-04-14shader/arithmetic: Add FCMP_CR variantReinUsesLisp
Adds another variant of FCMP.
2020-04-14Merge pull request #3660 from bunnei/friend-blocked-usersZach Hilman
service: friend: Stub IFriendService::GetBlockedUserListIds.
2020-04-14gl_rasterizer: Implement constant vertex attributesReinUsesLisp
Credits go to gdkchan from Ryujinx for finding constant attributes are used in retail games.
2020-04-14file_sys: patch_manager: Return early when there are no layers to apply.bunnei
2020-04-14service: friend: Stub IFriendService::GetBlockedUserListIds.bunnei
- This is safe to stub, as there should be no adverse consequences from reporting no blocked users.
2020-04-14vk_rasterizer: Default to 1 viewports with a size of 0ReinUsesLisp
Silence validation layer errors.
2020-04-14gl_shader_cache: Use CompileDepth::FullDecompile on GLSLReinUsesLisp
From my testing on a Splatoon 2 shader that takes 3800ms on average to compile changing to FullDecompile reduces it to 900ms on average. The shader decoder will automatically fallback to a more naive method if it can't use full decompile.
2020-04-14renderer_vulkan: Integrate Nvidia Nsight Aftermath on WindowsReinUsesLisp
Adds optional support for Nsight Aftermath. It is enabled through ENABLE_NSIGHT_AFTERMATH in cmake. A path to the SDK has to be provided by the environment variable NSIGHT_AFTERMATH_SDK. Nsight Aftermath allows an application to generate "minidumps" of the GPU state when a device loss happens. By analysing these on Nsight we can know what a game was doing and why it triggered a device loss. The dump is generated inside %APPDATA%\yuzu\log\gpucrash and this directory is deleted every time a new instance is initialized with Nsight enabled. To enable it on yuzu there has a to be a driver and device capable of running Nsight Aftermath on Vulkan. That means only Turing based GPUs on the latest stable driver, beta drivers won't work for now. It is manually enabled in Configuration>Debug>Enable Graphics Debugging because when using all debugging capabilities there is a runtime cost.
2020-04-14yuzu/main: Add better popup texts and remove duplicated actionsFearlessTobi
Makes popup texts more compact and clear and also links our quickstart guide now. Also removes OnMenuSelectEmulatedDirectory from the File dropdown, as the action already exists in the Filesystem tab and provides better visual feedback there.
2020-04-13gl_texture_cache: Fix layered texture attachment base levelReinUsesLisp
The base level is already included in the texture view. If we specify the base level in the texture again, this will end up in the incorrect level and potentially out of bounds.
2020-04-13renderer_vulkan: Remove Nvidia checkpointsReinUsesLisp
2020-04-13renderer_vulkan: Catch device losses in more placesReinUsesLisp
2020-04-13Merge pull request #3636 from ReinUsesLisp/drop-vk-hppRodrigo Locatti
renderer_vulkan: Drop Vulkan-Hpp
2020-04-13Merge pull request #3651 from ReinUsesLisp/line-widthsMat M
gl_rasterizer: Implement line widths and smooth lines
2020-04-13Merge pull request #3638 from ReinUsesLisp/remove-preserve-contentsMat M
texture_cache: Remove preserve_contents
2020-04-13Merge pull request #3631 from ReinUsesLisp/more-astcMat M
texture/astc: More small ASTC optimizations
2020-04-13Merge pull request #3619 from ReinUsesLisp/i2iMat M
shader/conversion: Implement I2I sign extension, saturation and selection
2020-04-13Merge pull request #3627 from ReinUsesLisp/layered-viewMat M
gl_texture_cache: Attach view instead of base texture for layered attchments
2020-04-13Merge pull request #3646 from ReinUsesLisp/fix-glsl-turingMat M
gl_shader_decompiler: Improve generated code in HMergeH*
2020-04-13Merge pull request #3633 from ReinUsesLisp/clean-texdecMat M
shader/texture: Remove type mismatches management from shader decoder
2020-04-13gl_rasterizer: Implement line widths and smooth linesReinUsesLisp
Implements "legacy" features from OpenGL present on hardware such as smooth lines and line width.
2020-04-12gl_shader_decompiler: Implement merges with bitfieldInsertReinUsesLisp
This also fixes Turing issues but it avoids doing more bitcasts. This should improve the generated code while also avoiding more points where compilers can flush floats.
2020-04-12Merge pull request #3606 from ReinUsesLisp/nvflingerbunnei
service/vi: Partially implement BufferQueue disconnect
2020-04-12Merge pull request #3578 from ReinUsesLisp/vmnmxFernando Sahmkow
shader/video: Partially implement VMNMX
2020-04-12Merge pull request #3644 from ReinUsesLisp/msaaMat M
video_core: Add MSAA registers in 3D engine and TIC
2020-04-12gl_shader_decompiler: Improve generated code in HMergeH*ReinUsesLisp
Avoiding bitwise expressions, this fixes Turing issues in shaders using half float merges that affected several games.
2020-04-12shader/video: Partially implement VMNMXReinUsesLisp
Implements the common usages for VMNMX. Inputs with a different size than 32 bits are not supported and sign mismatches aren't supported either. VMNMX works as follows: It grabs Ra and Rb and applies a maximum/minimum on them (this is defined by .MX), having in mind the input sign. This result can then be saturated. After the intermediate result is calculated, it applies another operation on it using Rc. These operations are merges, accumulations or another min/max pass. This instruction allows to implement with a more flexible approach GCN's min3 and max3 instructions (for instance).
2020-04-12video_core: Add MSAA registers in 3D engine and TICReinUsesLisp
This adds the registers used for multisampling. It doesn't implement anything for now.
2020-04-11Merge pull request #3635 from FernandoS27/buffer-freeRodrigo Locatti
Buffer queue: Correct behavior of free buffer.