| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Normalizes pixel format names to match Vulkan names. Previous to this
commit pixel formats had no convention, leading to confusion and
potential bugs.
|
|
|
|
|
| |
The returned layer is expected to be between 0 and the depth of the
surface, anything larger is off bounds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows rendering to 3D textures with more than one slice.
Applications are allowed to render to more than one slice of a texture
using gl_Layer from a VTG shader.
This also requires reworking how 3D texture collisions are handled, for
now, this commit allows rendering to slices but not to miplevels. When a
render target attempts to write to a mipmap, we fallback to the previous
implementation (copying or flushing as needed).
- Fixes color correction 3D textures on UE4 games (rainbow effects).
- Allows Xenoblade games to render to 3D textures directly.
|
|
|
|
|
| |
This PR corrects flushing of 3D segments when data of other segments is
mixed, this aims to preserve the data in place.
|
| |
|
| |
|
|
|
|
|
| |
Implement downloads to guest memory from texture buffers on the generic
cache and OpenGL.
|
|
|
|
|
| |
Layered break downs was passing "layer" as a "depth" parameter. This
commit addresses that.
|
|
|
|
|
|
| |
Makes the header more general for other potential algorithms in the
future. While we're at it, include a missing <functional> include to
satisfy the use of std::less.
|
|
|
|
|
| |
Ensures that the constructor members are always initialized in the order
that they're declared in.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also corrects some asserts.
|
|
|
|
|
|
|
| |
Fixed ASTC mipmaps loading
Fixed alignment on openGL upload/download
Fixed Block Height Calculation
Removed unalign_height
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of storing all block width, height and depths in their shifted
form:
block_width = 1U << block_shift;
Store them like they are provided by the emulated hardware (their
block_shift form). This way we can avoid doing the costly
Common::AlignUp operation to align texture sizes and drop CPU integer
divisions with bitwise logic (defined in Common::AlignBits).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This also reverses the changes to make invalidation and flushing through
the GPU address.
|
| |
|
|
|
|
|
| |
This is done to simplify the OpenGL implementation, it is needed for
Vulkan.
|
|
|