Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #3417 from ReinUsesLisp/r32i | bunnei | 2020-02-25 | 1 | -1/+2 |
|\ | | | | | texture: Implement R32I | ||||
| * | texture: Implement R32I | ReinUsesLisp | 2020-02-15 | 1 | -1/+2 |
| | | |||||
* | | Merge pull request #3425 from ReinUsesLisp/layered-framebuffer | bunnei | 2020-02-24 | 3 | -31/+26 |
|\ \ | | | | | | | texture_cache: Implement layered framebuffer attachments | ||||
| * | | texture_cache: Implement layered framebuffer attachments | ReinUsesLisp | 2020-02-16 | 3 | -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-flush | bunnei | 2020-02-23 | 1 | -0/+4 |
|\ \ | | | | | | | surface_base: Implement texture buffer flushes | ||||
| * | | surface_base: Implement texture buffer flushes | ReinUsesLisp | 2020-02-16 | 1 | -0/+4 |
| |/ | | | | | | | | | Implement downloads to guest memory from texture buffers on the generic cache and OpenGL. | ||||
* / | texture_cache: Avoid matches in 3D textures | ReinUsesLisp | 2020-02-16 | 1 | -8/+11 |
|/ | | | | | Code before this commit was trying to match 3D textures with another target. Fix that. | ||||
* | texture_cache/surface_base: Fix layered break down | ReinUsesLisp | 2020-01-27 | 1 | -1/+1 |
| | | | | | Layered break downs was passing "layer" as a "depth" parameter. This commit addresses that. | ||||
* | Merge pull request #3311 from ReinUsesLisp/z32fx24s8 | bunnei | 2020-01-17 | 1 | -1/+1 |
|\ | | | | | format_lookup_table: Fix ZF32_X24S8 component types | ||||
| * | format_lookup_table: Fix ZF32_X24S8 component types | ReinUsesLisp | 2020-01-16 | 1 | -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 public | ReinUsesLisp | 2020-01-14 | 1 | -4/+5 |
|/ | |||||
* | Texture Cache: Improve documentation | Fernando Sahmkow | 2019-12-22 | 2 | -4/+5 |
| | |||||
* | Texture Cache: Address Feedback | Fernando Sahmkow | 2019-12-22 | 2 | -11/+11 |
| | |||||
* | Texture Cache: Add HLE methods for building 3D textures within the GPU in certain scenarios. | Fernando Sahmkow | 2019-12-22 | 3 | -1/+139 |
| | | | | | | 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-invalid | bunnei | 2019-12-02 | 3 | -32/+101 |
|\ | | | | | Texture_Cache: Redo invalid Surfaces handling. | ||||
| * | Texture_Cache: Redo invalid Surfaces handling. | Fernando Sahmkow | 2019-11-20 | 3 | -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 views | ReinUsesLisp | 2019-11-29 | 1 | -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 feedback | ReinUsesLisp | 2019-11-15 | 2 | -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 formats | ReinUsesLisp | 2019-11-15 | 5 | -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 ComponentType | ReinUsesLisp | 2019-11-14 | 3 | -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/doxygen | Rodrigo Locatti | 2019-10-17 | 1 | -57/+78 |
|\ | | | | | video_core/texture_cache: Amend Doxygen references | ||||
| * | video_core/texture_cache: Amend Doxygen references | Lioncash | 2019-10-15 | 1 | -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 TryReconstructSurface() | Lioncash | 2019-10-16 | 1 | -2/+2 |
| | | | | | | | | | | | | 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.h | Lioncash | 2019-10-15 | 2 | -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 Sahmkow | 2019-10-05 | 1 | -18/+20 |
| | |||||
* | TextureCache: Add the ability to deduce if two textures are depth on blit. | Fernando Sahmkow | 2019-10-05 | 1 | -2/+142 |
| | |||||
* | texture_cache: Minor changes | ReinUsesLisp | 2019-09-06 | 4 | -19/+17 |
| | |||||
* | gl_rasterizer: Implement image bindings | ReinUsesLisp | 2019-09-06 | 3 | -30/+98 |
| | |||||
* | texture_cache: Pass TIC to texture cache | ReinUsesLisp | 2019-09-06 | 3 | -26/+24 |
| | |||||
* | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 2019-08-30 | 2 | -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/cflow | bunnei | 2019-07-25 | 1 | -3/+2 |
|\ | | | | | video_core/control_flow: Minor changes/warning cleanup | ||||
| * | video_core: Resolve -Wreorder warnings | Lioncash | 2019-07-19 | 1 | -3/+2 |
| | | | | | | | | | | Ensures that the constructor members are always initialized in the order that they're declared in. | ||||
* | | Texture_Cache: Rebase Fixes | Fernando Sahmkow | 2019-07-17 | 1 | -6/+0 |
| | | |||||
* | | Maxwell3D: Rework the dirty system to be more consistant and scaleable | Fernando Sahmkow | 2019-07-17 | 1 | -5/+12 |
|/ | |||||
* | Texture_Cache: Address Feedback | Fernando Sahmkow | 2019-07-14 | 3 | -13/+17 |
| | |||||
* | Texture_Cache: Remove some unprecise fallback case and clang format | Fernando Sahmkow | 2019-07-14 | 2 | -13/+5 |
| | |||||
* | Texture_Cache: Force Framebuffer reset if an active render target is unregistered. | Fernando Sahmkow | 2019-07-14 | 3 | -10/+36 |
| | |||||
* | Texture_Cache: Correct Linear Structural Match. | Fernando Sahmkow | 2019-07-14 | 1 | -3/+6 |
| | |||||
* | texture_cache: Address Feedback | Fernando Sahmkow | 2019-07-05 | 1 | -2/+2 |
| | |||||
* | texture_cache: Correct Texture Buffer Uploading | Fernando Sahmkow | 2019-07-05 | 1 | -0/+2 |
| | |||||
* | texture_cache: Pack sibling queries inside a method | ReinUsesLisp | 2019-06-30 | 1 | -6/+8 |
| | |||||
* | texture_cache: Use std::vector reservation for sampled_textures | ReinUsesLisp | 2019-06-30 | 1 | -17/+10 |
| | |||||
* | texture_cache: Style changes | ReinUsesLisp | 2019-06-30 | 2 | -8/+4 |
| | |||||
* | texture_cache: Use std::array for siblings_table | ReinUsesLisp | 2019-06-29 | 1 | -10/+13 |
| | |||||
* | texture_cache: Address feedback | ReinUsesLisp | 2019-06-29 | 2 | -11/+12 |
| | |||||
* | texture_cache: Correct variable naming. | Fernando Sahmkow | 2019-06-26 | 1 | -3/+3 |
| | |||||
* | texture_cache: Corrections, documentation and asserts | Fernando Sahmkow | 2019-06-26 | 1 | -42/+42 |
| | |||||
* | surface_params: Corrections, asserts and documentation. | Fernando Sahmkow | 2019-06-26 | 2 | -43/+58 |
| | |||||
* | copy_params: use constexpr for constructor | Fernando Sahmkow | 2019-06-25 | 1 | -3/+4 |
| | |||||
* | texture_cache: Query MemoryManager from the system | Fernando Sahmkow | 2019-06-25 | 1 | -11/+7 |
| | |||||
* | texture_cache: Include "core/core.h" | ReinUsesLisp | 2019-06-24 | 1 | -4/+1 |
| | |||||
* | texture_cache/surface_view: Address feedback | ReinUsesLisp | 2019-06-24 | 1 | -1/+0 |
| | |||||
* | texture_cache/surface_base: Address feedback | ReinUsesLisp | 2019-06-24 | 2 | -2/+10 |
| | |||||
* | texture_cache: Style and Corrections | Fernando Sahmkow | 2019-06-21 | 3 | -2/+4 |
| | |||||
* | texture_cache: Eliminate linear textures fallthrough | Fernando Sahmkow | 2019-06-21 | 1 | -4/+0 |
| | |||||
* | texture_cache: Correct format R16U as sibling | Fernando Sahmkow | 2019-06-21 | 2 | -1/+2 |
| | |||||
* | texture_cache: Implement texception detection and texture barriers. | Fernando Sahmkow | 2019-06-21 | 1 | -5/+32 |
| | |||||
* | texture_cache: Corrections to buffers and shadow formats use. | Fernando Sahmkow | 2019-06-21 | 1 | -10/+34 |
| | |||||
* | texture_cache: Implement Irregular Views in surfaces | Fernando Sahmkow | 2019-06-21 | 2 | -4/+24 |
| | |||||
* | surface: Correct format S8Z24 | Fernando Sahmkow | 2019-06-21 | 1 | -4/+0 |
| | |||||
* | texture_cache: Initialize all siblings to invalid pixel format. | Fernando Sahmkow | 2019-06-21 | 1 | -6/+15 |
| | |||||
* | decoders: correct block calculation | Fernando Sahmkow | 2019-06-21 | 1 | -0/+16 |
| | |||||
* | texture_cache: Use siblings textures on Rebuild and fix possible error on blitting | Fernando Sahmkow | 2019-06-21 | 1 | -10/+23 |
| | |||||
* | texture_cache: Implement siblings texture formats. | Fernando Sahmkow | 2019-06-21 | 2 | -12/+31 |
| | |||||
* | texture_cache: correct texture buffer on surface params | Fernando Sahmkow | 2019-06-21 | 1 | -4/+11 |
| | |||||
* | texture_cache: eliminate accelerated depth->color/color->depth copies due to driver instability. | Fernando Sahmkow | 2019-06-21 | 1 | -8/+1 |
| | |||||
* | texture_cache: correct mutex locks | Fernando Sahmkow | 2019-06-21 | 1 | -4/+4 |
| | |||||
* | texture_cache: Don't Image Copy if component types differ | Fernando Sahmkow | 2019-06-21 | 1 | -1/+2 |
| | |||||
* | texture_cache: move some large methods to cpp files | Fernando Sahmkow | 2019-06-21 | 4 | -139/+135 |
| | |||||
* | texture_cache: Optimize GetSurface and use references on functions that don't change a surface. | Fernando Sahmkow | 2019-06-21 | 1 | -6/+6 |
| | |||||
* | texture_cache: Implement Buffer Copy and detect Turing GPUs Image Copies | Fernando Sahmkow | 2019-06-21 | 1 | -9/+31 |
| | |||||
* | texture_cache uncompress-compress is untopological. | Fernando Sahmkow | 2019-06-21 | 4 | -14/+48 |
| | | | | | | This makes conflicts between non compress and compress textures to be auto recycled. It also limits the amount of mipmaps a texture can have if it goes above it's limit. | ||||
* | texture_cache: Correct copying between compressed and uncompressed formats | Fernando Sahmkow | 2019-06-21 | 3 | -10/+27 |
| | |||||
* | texture_cache: Only load on recycle with accurate GPU. | Fernando Sahmkow | 2019-06-21 | 1 | -2/+3 |
| | | | | | Testing so far has proven this to be quite safe as texture memory read added a 2-5ms load to the current cache. | ||||
* | Fix rebase errors | Fernando Sahmkow | 2019-06-21 | 1 | -0/+4 |
| | |||||
* | texture_cache: Handle uncontinuous surfaces. | Fernando Sahmkow | 2019-06-21 | 3 | -19/+79 |
| | |||||
* | texture_cache: return null surface on invalid address | Fernando Sahmkow | 2019-06-21 | 1 | -0/+12 |
| | |||||
* | texture_cache: Add checks for texture buffers. | Fernando Sahmkow | 2019-06-21 | 1 | -2/+16 |
| | |||||
* | texture_cache: Fermi2D reform and implement View Mirage | Fernando Sahmkow | 2019-06-21 | 3 | -20/+49 |
| | | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general. | ||||
* | texture_cache: loose TryReconstructSurface when accurate GPU is not on. | Fernando Sahmkow | 2019-06-21 | 2 | -3/+19 |
| | | | | Also corrects some asserts. | ||||
* | texture_cache: Document the most important methods. | Fernando Sahmkow | 2019-06-21 | 1 | -8/+87 |
| | |||||
* | texture_cache: Try to Reconstruct Surface on bigger than overlap. | Fernando Sahmkow | 2019-06-21 | 1 | -4/+11 |
| | | | | | This fixes clouds in SMO Cap Kingdom and lens on Cloud Kingdom. Also moved accurate_gpu setting check to Pick Strategy | ||||
* | texture_cache: Implement Guard mechanism | Fernando Sahmkow | 2019-06-21 | 1 | -1/+8 |
| | |||||
* | texture_cache: General Fixes | Fernando Sahmkow | 2019-06-21 | 4 | -33/+68 |
| | | | | | | | Fixed ASTC mipmaps loading Fixed alignment on openGL upload/download Fixed Block Height Calculation Removed unalign_height | ||||
* | surface_params: Ensure pitch is always written to avoid surface leaks | ReinUsesLisp | 2019-06-21 | 1 | -0/+2 |
| | |||||
* | gl_framebuffer_cache: Use a hashed struct to cache framebuffers | ReinUsesLisp | 2019-06-21 | 1 | -1/+1 |
| | |||||
* | texture_cache return invalid buffer on deactivated color_mask | Fernando Sahmkow | 2019-06-21 | 1 | -0/+5 |
| | |||||
* | surface_params: Optimize CreateForTexture | ReinUsesLisp | 2019-06-21 | 1 | -2/+4 |
| | | | | | Instead of using Common::AlignUp, use Common::AlignBits to align the texture compression factor. | ||||
* | texture_cache: Add ASync Protections | Fernando Sahmkow | 2019-06-21 | 1 | -0/+10 |
| | |||||
* | Remove Framebuffer reconfiguration and restrict rendertarget protection | Fernando Sahmkow | 2019-06-21 | 2 | -26/+19 |
| | |||||
* | texture_cache: Implement GPU Dirty Flags | Fernando Sahmkow | 2019-06-21 | 1 | -15/+22 |
| | |||||
* | texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepth | Fernando Sahmkow | 2019-06-21 | 1 | -13/+6 |
| | |||||
* | texture_cache: Implement L1_Inner_cache | Fernando Sahmkow | 2019-06-21 | 1 | -13/+30 |
| | |||||
* | video_core: Use un-shifted block sizes to avoid integer divisions | ReinUsesLisp | 2019-06-21 | 4 | -24/+28 |
| | | | | | | | | | | | | Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits). | ||||
* | texture_cache: Change internal cache from lists to vectors | ReinUsesLisp | 2019-06-21 | 1 | -6/+7 |
| | |||||
* | Reduce amount of size calculations. | Fernando Sahmkow | 2019-06-21 | 5 | -86/+85 |
| | |||||
* | texture_cache: Correct premature texceptions | Fernando Sahmkow | 2019-06-21 | 2 | -7/+36 |
| | | | | | | | | | | | | Due to our current infrastructure, it is possible for a mipmap to be set on as a render target before a texception of that mipmap's superset be set afterwards. This is problematic as we rely on texture views to set up texceptions and protecting render targets targets for 3D texture rendering. One simple solution is to configure framebuffers after texture setup but this brings other problems. This solution, forces a reconfiguration of the framebuffers after such event happens. | ||||
* | texture_cache: Implement guest flushing | Fernando Sahmkow | 2019-06-21 | 2 | -8/+25 |
| | |||||
* | Fixes to mipmap's process and reconstruct process | Fernando Sahmkow | 2019-06-21 | 2 | -3/+3 |
| | |||||
* | surface_base: Add parenthesis to EmplaceOverview's predicate | ReinUsesLisp | 2019-06-21 | 1 | -3/+2 |
| | |||||
* | Texture Cache: Implement Blitting and Fermi Copies | Fernando Sahmkow | 2019-06-21 | 1 | -4/+15 |
| | |||||
* | surface_view: Add constructor for ViewParams | ReinUsesLisp | 2019-06-21 | 2 | -28/+19 |
| | |||||
* | surface_base: Split BreakDown into layered and non-layered variants | ReinUsesLisp | 2019-06-21 | 1 | -45/+48 |
| | |||||
* | surface_base: Silence truncation warnings and minor renames and reordering | ReinUsesLisp | 2019-06-21 | 2 | -32/+37 |
| | |||||
* | copy_params: Use constructor instead of C-like initialization | ReinUsesLisp | 2019-06-21 | 3 | -47/+39 |
| | |||||
* | Correct Mipmaps View method in Texture Cache | Fernando Sahmkow | 2019-06-21 | 1 | -3/+2 |
| | |||||
* | Change texture_cache chaching from GPUAddr to CacheAddr | Fernando Sahmkow | 2019-06-21 | 3 | -78/+59 |
| | | | | | This also reverses the changes to make invalidation and flushing through the GPU address. | ||||
* | Corrections to Structural Matching | Fernando Sahmkow | 2019-06-21 | 2 | -24/+53 |
| | | | | | The texture will now be reconstructed if the width only matches on GoB alignment. | ||||
* | Implement Texture Cache V2 | Fernando Sahmkow | 2019-06-21 | 1 | -88/+366 |
| | |||||
* | Correct Surface Base and Views for new Texture Cache | Fernando Sahmkow | 2019-06-21 | 7 | -380/+466 |
| | |||||
* | texture_cache: Remove execution context copies from the texture cache | ReinUsesLisp | 2019-06-21 | 4 | -151/+41 |
| | | | | | This is done to simplify the OpenGL implementation, it is needed for Vulkan. | ||||
* | texture_cache: Split texture cache into different files | ReinUsesLisp | 2019-06-21 | 8 | -0/+1364 |