aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
AgeCommit message (Collapse)Author
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-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"
2020-04-06Texture Cache: Use vAddr instead of physical memory for caching.Fernando Sahmkow
2020-04-04Revert "Merge pull request #3499 from ReinUsesLisp/depth-2d-array"ReinUsesLisp
This reverts commit 41905ee467b24172ba93e3fcd665bb4e4806a45a, reversing changes made to 35145bd529c3517e2c366efc764a762092d96edf. It causes regressions in several games.
2020-04-01video_core: Use native ASTC when availableReinUsesLisp
2020-03-15Merge pull request #3501 from ReinUsesLisp/rgba16-snormRodrigo Locatti
video_core: Implement RGBA16_SNORM
2020-03-14Merge pull request #3500 from ReinUsesLisp/incompatible-typesFernando Sahmkow
texture_cache: Report incompatible textures as black
2020-03-12video_core: Implement RGBA16_SNORMReinUsesLisp
Implement RGBA16_SNORM with the current API. Nothing special here.
2020-03-12texture_cache: Report incompatible textures as blackReinUsesLisp
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.
2020-03-12texture_cache/surface_params: Force depth=1 on 2D texturesReinUsesLisp
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.
2020-02-28renderer_opengl: Reintroduce dirty flags for render targetsReinUsesLisp
2020-02-28gl_rasterizer: Remove dirty flagsReinUsesLisp
2020-02-25Merge pull request #3417 from ReinUsesLisp/r32ibunnei
texture: Implement R32I
2020-02-24Merge pull request #3425 from ReinUsesLisp/layered-framebufferbunnei
texture_cache: Implement layered framebuffer attachments