aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
AgeCommit message (Collapse)Author
2020-06-26Merge pull request #4144 from FernandoS27/tt-fixbunnei
TextureCache: Fix case where layer goes off bound.
2020-06-22TextureCache: Fix case where layer goes off bound.Fernando Sahmkow
The returned layer is expected to be between 0 and the depth of the surface, anything larger is off bounds.
2020-06-20texture_cache: Fix incorrect address used in a DeduceSurface() callLioncash
Previously the source was being deduced twice in a row.
2020-06-08texture_cache: Port original code management for 2D vs 3D texturesReinUsesLisp
Handle blits to images as 2D, even when they have block depth. - Fixes rendering issues on Luigi's Mansion 3
2020-06-08texture_cache: Simplify blit codeReinUsesLisp
2020-06-08texture_cache: Handle 3D texture blits with one layerReinUsesLisp
2020-06-08texture_cache: Implement rendering to 3D texturesReinUsesLisp
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.
2020-06-03Merge pull request #4012 from ReinUsesLisp/mipmap-overlapsbunnei
texture_cache: Handle overlaps with multiple subresources
2020-06-01Merge pull request #4005 from ReinUsesLisp/g24r8Rodrigo Locatti
format_lookup_table: Implement G24S8 format as S8Z24
2020-05-31Merge pull request #3999 from ReinUsesLisp/opt-tex-cachebunnei
texture_cache: Optimize GetSurfacesInRegion
2020-05-29texture_cache: More relaxed reconstructionReinUsesLisp
Only reupload textures when they've not been modified from the GPU.
2020-05-29texture_cache: Only copy textures that were modified from hostReinUsesLisp
2020-05-29texture_cache: Reload textures when number of resources mismatchReinUsesLisp
2020-05-29texture_cache: Handle overlaps with multiple subresourcesReinUsesLisp
Implement more surface reconstruct cases. Allow overlaps with more than one layer and mipmap and copies all of them to the new texture. - Fixes textures moving around objects on Xenoblade games
2020-05-28format_lookup_table: Implement G24S8 format as S8Z24ReinUsesLisp
2020-05-27texture_cache: Use unordered_map::find instead of operator[] on hot codeReinUsesLisp
2020-05-27texture_cache: Use small vector for surface vectorsReinUsesLisp
This avoids most heap allocations when collecting surfaces into a vector.
2020-05-26texture_cache: Fix layered null surfacesReinUsesLisp
Null texture cubes were not considered arrays, causing issues on Vulkan and OpenGL when creating views.
2020-05-09Merge pull request #3839 from Morph1984/r8g8uiRodrigo Locatti
texture: Implement R8G8UI
2020-05-02Merge pull request #3693 from ReinUsesLisp/clean-samplersbunnei
shader/texture: Support multiple unknown sampler properties
2020-04-30texture: Implement R8G8UIMorph
- Used by The Walking Dead: The Final Season
2020-04-26texture_cache: Reintroduce preserve_contents accuratelyReinUsesLisp
This reverts commit 94b0e2e5dae4e0bd0021ac2d8fe1ff904a93ee69. preserve_contents proved to be a meaningful optimization. This commit reintroduces it but properly implemented on OpenGL. We have to make sure the clear removes all the previous contents of the image. It's not currently implemented on Vulkan because we can do smart things there that's preferred to be introduced in a separate commit.
2020-04-23shader_ir: Turn classes into data structuresReinUsesLisp
2020-04-22Address Feedback.Fernando Sahmkow
2020-04-22Address Feedback.Fernando Sahmkow
2020-04-22FenceManager: Manage syncpoints and rename fences to semaphores.Fernando Sahmkow
2020-04-22Rasterizer: Disable fence managing in synchronous gpu.Fernando Sahmkow
2020-04-22ThreadManager: Sync async reads on accurate gpu.Fernando Sahmkow
2020-04-22FenceManager: Implement should wait.Fernando Sahmkow
2020-04-22OpenGL: Implement Fencing backend.Fernando Sahmkow
2020-04-22TextureCache: Flush linear textures after finishing rendering.Fernando Sahmkow
2020-04-22GPU: Refactor synchronization on Async GPUFernando Sahmkow
2020-04-22Texture Cache: Implement OnCPUWrite and SyncGuestHostFernando Sahmkow
2020-04-22UI: Replasce accurate GPU option for GPU Accuracy LevelFernando Sahmkow
2020-04-19Merge pull request #3686 from lioncash/tablebunnei
texture_cache/format_lookup_table: Fix incorrect green, blue, and alpha indices
2020-04-16Merge pull request #3673 from lioncash/extrabunnei
CMakeLists: Specify -Wextra on linux builds
2020-04-16Merge pull request #3688 from lioncash/nequalRodrigo Locatti
surface_view: Add missing operator!= to ViewParams
2020-04-16Merge pull request #3687 from lioncash/constnessRodrigo Locatti
surface_base: Make IsInside() a const member function
2020-04-16surface_view: Add missing operator!= to ViewParamsLioncash
Provides logical symmetry to the interface.
2020-04-15surface_base: Make IsInside() a const member functionLioncash
This doesn't modify internal state, so this can be made const.
2020-04-15Merge pull request #3683 from lioncash/docsbunnei
video_core: Amend doxygen comment references
2020-04-15texture_cache/format_lookup_table: Fix incorrect green, blue, and alpha indicesLioncash
Previously these were all using the red component to derive the indices, which is definitely not intentional.
2020-04-15video_core: Amend doxygen comment referencesLioncash
Fixes broken documentation references.
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-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-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-11texture_cache: Remove preserve_contentsReinUsesLisp
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.
2020-04-09Merge pull request #3610 from FernandoS27/gpu-cachesRodrigo Locatti
Refactor all the GPU Caches to use VAddr for cache addressing
2020-04-07Merge pull request #3599 from ReinUsesLisp/revert-3499bunnei
Revert "Merge pull request #3499 from ReinUsesLisp/depth-2d-array"