aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3501 from ReinUsesLisp/rgba16-snormRodrigo Locatti2020-03-151-1/+2
|\ | | | | video_core: Implement RGBA16_SNORM
| * video_core: Implement RGBA16_SNORMReinUsesLisp2020-03-121-1/+2
| | | | | | | | Implement RGBA16_SNORM with the current API. Nothing special here.
* | Merge pull request #3500 from ReinUsesLisp/incompatible-typesFernando Sahmkow2020-03-141-2/+39
|\ \ | | | | | | texture_cache: Report incompatible textures as black
| * | texture_cache: Report incompatible textures as blackReinUsesLisp2020-03-121-2/+39
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 texturesReinUsesLisp2020-03-121-2/+4
|/ | | | | | | 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.
* renderer_opengl: Reintroduce dirty flags for render targetsReinUsesLisp2020-02-281-1/+19
|
* gl_rasterizer: Remove dirty flagsReinUsesLisp2020-02-281-19/+1
|
* Merge pull request #3417 from ReinUsesLisp/r32ibunnei2020-02-251-1/+2
|\ | | | | texture: Implement R32I
| * texture: Implement R32IReinUsesLisp2020-02-151-1/+2
| |
* | Merge pull request #3425 from ReinUsesLisp/layered-framebufferbunnei2020-02-243-31/+26
|\ \ | | | | | | texture_cache: Implement layered framebuffer attachments
| * | texture_cache: Implement layered framebuffer attachmentsReinUsesLisp2020-02-163-31/+26
| |/ | | | | | | | | | | Layered framebuffer attachments is a feature that allows applications to write attach layered textures to a single attachment. What layer the fragments are written to is decided from the shader using gl_Layer.
* | Merge pull request #3422 from ReinUsesLisp/buffer-flushbunnei2020-02-221-0/+4
|\ \ | | | | | | surface_base: Implement texture buffer flushes
| * | surface_base: Implement texture buffer flushesReinUsesLisp2020-02-161-0/+4
| |/ | | | | | | | | Implement downloads to guest memory from texture buffers on the generic cache and OpenGL.
* / texture_cache: Avoid matches in 3D texturesReinUsesLisp2020-02-161-8/+11
|/ | | | | Code before this commit was trying to match 3D textures with another target. Fix that.
* texture_cache/surface_base: Fix layered break downReinUsesLisp2020-01-261-1/+1
| | | | | Layered break downs was passing "layer" as a "depth" parameter. This commit addresses that.
* Merge pull request #3311 from ReinUsesLisp/z32fx24s8bunnei2020-01-171-1/+1
|\ | | | | format_lookup_table: Fix ZF32_X24S8 component types
| * format_lookup_table: Fix ZF32_X24S8 component typesReinUsesLisp2020-01-161-1/+1
| | | | | | | | | | | | Component types for ZF32_X24S8 were using UNORM. Drivers will set FLOAT, UINT, UNORM, UNORM; causing a format mismatch. This commit addresses that.
* | texture_cache/surface_params: Make GetNumLayers publicReinUsesLisp2020-01-131-4/+5
|/
* Texture Cache: Improve documentationFernando Sahmkow2019-12-222-4/+5
|
* Texture Cache: Address FeedbackFernando Sahmkow2019-12-222-11/+11
|
* Texture Cache: Add HLE methods for building 3D textures within the GPU in ↵Fernando Sahmkow2019-12-223-1/+139
| | | | | | | | certain scenarios. This commit adds a series of HLE methods for handling 3D textures in general. This helps games that generate 3D textures on every frame and may reduce loading times for certain games.
* Merge pull request #2987 from FernandoS27/texture-invalidbunnei2019-12-023-32/+101
|\ | | | | Texture_Cache: Redo invalid Surfaces handling.
| * Texture_Cache: Redo invalid Surfaces handling.Fernando Sahmkow2019-11-203-32/+101
| | | | | | | | | | | | | | This commit aims to redo the full setup of invalid textures and guarantee correct behavior across backends in the case of finding one by using black dummy textures that match the target of the expected texture.
* | texture_cache/surface_base: Fix out of bounds texture viewsReinUsesLisp2019-11-291-7/+4
|/ | | | | | | | | | Some texture views were being created out of bounds (with more layers or mipmaps than what the original texture has). This is because of a miscalculation in mipmap bounding. end_layer and end_mipmap are out of bounds (e.g. layer 6 in a cubemap), there's no need to add one more there. Fixes OpenGL errors and Vulkan crashes on Splatoon 2.
* format_lookup_table: Address feedbackReinUsesLisp2019-11-142-30/+24
| | | | | | | | format_lookup_table: Drop bitfields format_lookup_table: Use std::array for definition table format_lookup_table: Include <limits> instead of <numeric>
* texture_cache: Use a table instead of switch for texture formatsReinUsesLisp2019-11-145-12/+288
| | | | | | Use a large flat array to look up texture formats. This allows us to properly implement formats with different component types. It should also be faster.
* texture_cache: Drop abstracted ComponentTypeReinUsesLisp2019-11-143-17/+5
| | | | | | | | | Abstracted ComponentType was not being used in a meaningful way. This commit drops its usage. There is one place where it was being used to test compatibility between two cached surfaces, but this one is implied in the pixel format. Removing the component type test doesn't change the behaviour.
* Merge pull request #2978 from lioncash/doxygenRodrigo Locatti2019-10-161-57/+78
|\ | | | | video_core/texture_cache: Amend Doxygen references
| * video_core/texture_cache: Amend Doxygen referencesLioncash2019-10-151-57/+78
| | | | | | | | | | | | Amends the doxygen comments so that they properly resolve. While we're at it, we can correct some typos and fix up some of the comments' formatting in order to make them slightly nicer to read.
* | texture_cache: Avoid unnecessary surface copies within PickStrategy() and ↵Lioncash2019-10-151-2/+2
| | | | | | | | | | | | | | | | TryReconstructSurface() We can take these by const reference and avoid making unnecessary copies, preventing some atomic reference count increments and decrements.
* | common: Rename binary_find.h to algorithm.hLioncash2019-10-152-3/+3
|/ | | | | | 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.
* Texture_Cache: Blit Deduction corrections and simplifications.Fernando Sahmkow2019-10-041-18/+20
|
* TextureCache: Add the ability to deduce if two textures are depth on blit.Fernando Sahmkow2019-10-041-2/+142
|
* texture_cache: Minor changesReinUsesLisp2019-09-054-19/+17
|
* gl_rasterizer: Implement image bindingsReinUsesLisp2019-09-053-30/+98
|
* texture_cache: Pass TIC to texture cacheReinUsesLisp2019-09-053-26/+24
|
* video_core: Silent miscellaneous warnings (#2820)Rodrigo Locatti2019-08-302-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | * texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables
* Merge pull request #2739 from lioncash/cflowbunnei2019-07-251-3/+2
|\ | | | | video_core/control_flow: Minor changes/warning cleanup
| * video_core: Resolve -Wreorder warningsLioncash2019-07-181-3/+2
| | | | | | | | | | Ensures that the constructor members are always initialized in the order that they're declared in.
* | Texture_Cache: Rebase FixesFernando Sahmkow2019-07-171-6/+0
| |
* | Maxwell3D: Rework the dirty system to be more consistant and scaleableFernando Sahmkow2019-07-171-5/+12
|/
* Texture_Cache: Address FeedbackFernando Sahmkow2019-07-143-13/+17
|
* Texture_Cache: Remove some unprecise fallback case and clang formatFernando Sahmkow2019-07-142-13/+5
|
* Texture_Cache: Force Framebuffer reset if an active render target is ↵Fernando Sahmkow2019-07-143-10/+36
| | | | unregistered.
* Texture_Cache: Correct Linear Structural Match.Fernando Sahmkow2019-07-141-3/+6
|
* texture_cache: Address FeedbackFernando Sahmkow2019-07-051-2/+2
|
* texture_cache: Correct Texture Buffer UploadingFernando Sahmkow2019-07-041-0/+2
|
* texture_cache: Pack sibling queries inside a methodReinUsesLisp2019-06-291-6/+8
|
* texture_cache: Use std::vector reservation for sampled_texturesReinUsesLisp2019-06-291-17/+10
|
* texture_cache: Style changesReinUsesLisp2019-06-292-8/+4
|