| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |\
| |
| | |
PageTable: move backing addresses to a children class as the CPU page table does not need them.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
does not need them.
This PR aims to reduce the memory usage in the CPU page table by moving
GPU specific parameters into a child class. This saves 1Gb of Memory for
most games.
|
| |\ \
| | |
| | | |
texture_cache: Report incompatible textures as black
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some games bind incompatible texture types to certain types.
For example Astral Chain binds a 2D texture with 1 layer (non-array) to
a cubemap slot (that's how it's used in the shader). After testing this
in hardware, the expected "undefined behavior" is to report all pixels
as black.
We already have a path for reporting black textures in the texture
cache. When textures types are incompatible, this commit binds these
kind of textures. This is done on the API agnostic texture cache so no
extra code has to be inserted on OpenGL or Vulkan.
As a side effect, this fixes invalidations of ASTC textures on Astral
Chain. This happened because yuzu detected a cube texture and forced
6 faces, generating a texture larger than what the TIC reported.
|
| |\ \ \
| | | |
| | | | |
texture_cache/surface_params: Force depth=1 on 2D textures
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes games will sample a 2D array TIC with a 2D access in the
shader. This causes bad interactions with the rest of the texture cache.
To emulate what the game wants to do, force a depth=1 on 2D textures
(not 2D arrays) and let the texture cache handle the rest.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size
requirement.
|
| | | | |
|
| | | |
| | |
| | | |
Co-Authored-By: Mat M. <mathew1800@gmail.com>
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
We sometimes have to slice attributes in different parts. This is needed
for example in instances where the game feedbacks 3 components but
writes 4 from the shader (something that is possible with
GL_NV_transform_feedback).
|
| | | | |
|
| |\ \ \
| | |/
| |/| |
|
| | |\ \
| | | |
| | | | |
gl_rasterizer: Implement polygon modes and fill rectangles
|
| | | | | |
|
| | |\ \ \
| | | | |
| | | | | |
vk_rasterizer: fix mistype on SetupGraphicsImages
|
| | | | | |
| | | | |
| | | | | |
This should use Maxwell3D engine. Fixed some GPU error on Kirby and maybe other games.
|
| | |\ \ \ \
| | | | | |
| | | | | | |
vk_rasterizer: Support disabled uniform buffers
|
| | | | | | | |
|
| | |\ \ \ \ \
| | | | | | |
| | | | | | | |
Small corrections and features to microprofile
|
| | | | |_|_|/
| | |/| | | |
|
| | |\ \ \ \ \
| | |/ / / /
| |/| | | | |
framebuffer_layout.h: drop the use of enum for screen dimensions
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
+clang format
|
| | |\ \ \ \ \
| | |/ / / /
| |/| | | | |
gl_shader_manager: Fix interaction between graphics and compute
|
| | | | |_|/
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
After a compute shader was set to the pipeline, no graphics shader was
invoked again. To address this use glUseProgram to bind compute shaders
(without state tracking) and call glUseProgram(0) when transitioning out
of it back to the graphics pipeline.
|
| | |\ \ \ \
| | |/ / /
| |/| | | |
cubeb_sink: Don't discard other channels when performing downmixing
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, when performing downmixing, we would discard all channels except the left and right one.
This implementation respects them when mixing down to Stereo.
It is taken from this document: http://www.atsc.org/wp-content/uploads/2015/03/A52-201212-17.pdf.
Fixes Luigis Mansion 3 cutscene and Bayonetta audio.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
A previous commit introduced a way to declare as few render targets as
possible. Turns out this introduced a regression in some games.
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
RenderDoc won't build shaders if we use GLSL compatibility.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is required for Vulkan. Sampling integer textures with float
handles is illegal.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Registry consistency is something that practically can't happen and it
has a measurable runtime cost. Reduce it to a DEBUG_ASSERT.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Store information GLSL forces us to provide but it's dynamic state in
hardware (workgroup sizes, primitive topology, shared memory size).
|