Age | Commit message (Collapse) | Author |
|
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.
|
|
service: friend: Stub IFriendService::GetBlockedUserListIds.
|
|
|
|
- This is safe to stub, as there should be no adverse consequences from reporting no blocked users.
|
|
renderer_vulkan: Drop Vulkan-Hpp
|
|
gl_rasterizer: Implement line widths and smooth lines
|
|
texture_cache: Remove preserve_contents
|
|
texture/astc: More small ASTC optimizations
|
|
shader/conversion: Implement I2I sign extension, saturation and selection
|
|
gl_texture_cache: Attach view instead of base texture for layered attchments
|
|
gl_shader_decompiler: Improve generated code in HMergeH*
|
|
shader/texture: Remove type mismatches management from shader decoder
|
|
Implements "legacy" features from OpenGL present on hardware such as
smooth lines and line width.
|
|
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.
|
|
service/vi: Partially implement BufferQueue disconnect
|
|
shader/video: Partially implement VMNMX
|
|
video_core: Add MSAA registers in 3D engine and TIC
|
|
Avoiding bitwise expressions, this fixes Turing issues in shaders using
half float merges that affected several games.
|
|
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).
|
|
This adds the registers used for multisampling. It doesn't implement
anything for now.
|
|
Buffer queue: Correct behavior of free buffer.
|
|
Port citra-emu/citra#4956: "Fixes to game list sorting"
|
|
preserve_contents was always true. We can't assume we don't have to
preserve clears because scissored and color masked clears exist.
This removes preserve_contents and assumes it as true at all times.
|
|
|
|
yuzu: Drop SDL2 and Qt frontend Vulkan requirements
|
|
This corrects the behavior of free buffer after witnessing it in an
unrelated hardware test. I haven't found any games affected by it but in
name of better accuracy we'll correct such behavior.
|
|
yuzu/configuration: Fix input profiles and a wrong assert
|
|
|
|
Since commit e22816a5bb we handle type mismatches from the CPU.
We don't need to hack our shader decoder due to game bugs anymore.
Removed in this commit.
|
|
qt/bootmanager: Remove unnecessary glBindFramebuffer
|
|
video_core/texture: Use a LUT to convert sRGB texture borders
|
|
|
|
Refactor all the GPU Caches to use VAddr for cache addressing
|
|
|
|
|
|
|
|
|
|
|
|
video_core/shader: Add some instruction and S2R encodings
|
|
This way we are not ignoring the base layer of the current texture.
|
|
|
|
|
|
|
|
|
|
|
|
Port citra-emu/citra#5127: "common: Port some changes from dolphin"
|
|
Presentation context always has GL_DRAW_FRAMEBUFFER_BINDING as zero.
There is no need to bind the default framebuffer constantly.
According to Nsight this was using ~0.7ms per frame and it broke
renderdoc captures.
|
|
|
|
This is a reversed look up table extracted from
https://gist.github.com/rygorous/2203834#file-gistfile1-cpp-L41-L62
that is used in
https://github.com/devkitPro/deko3d/blob/04d4e9e587fa3dc5447b43d273bc45f440226e41/source/maxwell/tsc_generate.cpp#L38
Games usually bind 0xFD expecting a float texture border of 1.0f.
The conversion previous to this commit was multiplying the uint8 sRGB
texture border color by 255. This is close to 1.0f but when that
difference matters, some graphical glitches appear.
This look up table is manually changed in the edges, clamping towards
0.0f and 1.0f.
While we are at it, move this logic to its own translation unit.
|
|
Log version and about section version fix
|