yuzu/src/video_core/texture_cache
ReinUsesLisp e22816a5bb 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.
2020-03-12 18:22:05 -03:00
..
copy_params.h copy_params: use constexpr for constructor 2019-06-25 17:42:50 -04:00
format_lookup_table.cpp texture: Implement R32I 2020-02-15 16:26:50 -03:00
format_lookup_table.h format_lookup_table: Address feedback 2019-11-14 20:57:30 -03:00
surface_base.cpp surface_base: Implement texture buffer flushes 2020-02-16 04:13:27 -03:00
surface_base.h texture_cache/surface_base: Fix out of bounds texture views 2019-11-29 16:51:14 -03:00
surface_params.cpp texture_cache: Implement layered framebuffer attachments 2020-02-16 04:19:32 -03:00
surface_params.h texture_cache: Implement layered framebuffer attachments 2020-02-16 04:19:32 -03:00
surface_view.cpp texture_cache: Minor changes 2019-09-05 23:25:15 -03:00
surface_view.h texture_cache: Minor changes 2019-09-05 23:25:15 -03:00
texture_cache.h texture_cache: Report incompatible textures as black 2020-03-12 18:22:05 -03:00