Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | renderer_vulkan: barrier attachment feedback loops | Liam | 2023-05-23 | 1 | -0/+4 |
| | |||||
* | Log object names with debug renderer, add a GPU address to ImageViews | Kelebek1 | 2023-05-06 | 1 | -1/+0 |
| | |||||
* | Texture Cache: Release stagging buffers on tick frame | Fernando Sahmkow | 2023-04-29 | 1 | -1/+4 |
| | |||||
* | TextureCache: refactor DMA downloads to allow multiple buffers. | Fernando Sahmkow | 2023-04-29 | 1 | -1/+2 |
| | |||||
* | Refactor AccelerateDMA code | ameerj | 2023-03-07 | 1 | -0/+6 |
| | |||||
* | texture_cache: OpenGL: Implement MSAA uploads and copies | ameerj | 2023-02-11 | 1 | -1/+8 |
| | |||||
* | Texture Cache: Implement async texture downloads. | Fernando Sahmkow | 2023-01-04 | 1 | -0/+2 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -3/+2 |
| | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
* | OpenGL: fix S8D24 to ABGR8 conversions | Liam | 2022-04-07 | 1 | -1/+2 |
| | |||||
* | GC: Address Feedback. | Fernando Sahmkow | 2022-03-25 | 1 | -2/+2 |
| | |||||
* | Garbage Collection: Redesign the algorithm to do a better use of memory. | Fernando Sahmkow | 2022-03-25 | 1 | -1/+10 |
| | |||||
* | vk_texture_cache: Fix invalidated pointer access | ameerj | 2021-12-24 | 1 | -1/+3 |
| | | | | | The vulkan ImageView held a reference to its source image for rescale status checking. This pointer is sometimes invalidated when the texture cache slot_images container is resized. To avoid an invalid pointer dereference, the ImageView now holds a reference to the container itself. | ||||
* | blit_image: Refactor upscale factors usage | ameerj | 2021-12-05 | 1 | -1/+1 |
| | | | | The image view itself can be queried to see if it is being rescaled or not, removing the need to pass the upscale/down shift factors from the texture cache. | ||||
* | Merge pull request #7368 from FernandoS27/vulkan-conv | bunnei | 2021-11-21 | 1 | -2/+5 |
|\ | | | | | Fix ART Blit detection regression and add D24S8 <-> RGBA8 conv to Vulkan | ||||
| * | TextureCache: Implement buffer copies on Vulkan. | Fernando Sahmkow | 2021-11-20 | 1 | -2/+5 |
| | | |||||
* | | Merge pull request #7294 from vonchenplus/fix_image_update_error_when_width_too_small | bunnei | 2021-11-20 | 1 | -0/+1 |
|\ \ | | | | | | | Fix image update/download error when width too small | ||||
| * | | Fix image update/download error when width too small | Feng Chen | 2021-11-17 | 1 | -0/+1 |
| | | | |||||
* | | | Merge pull request #7357 from Morph1984/s8_uint | bunnei | 2021-11-19 | 1 | -2/+2 |
|\ \ \ | |_|/ |/| | | video_core: Implement S8_UINT format | ||||
| * | | renderer_opengl: Implement S8_UINT stencil format | Morph | 2021-11-17 | 1 | -2/+2 |
| |/ | |||||
* | | texture_cache: Use pixel format conversion when supported by the runtime | ameerj | 2021-11-17 | 1 | -0/+3 |
| | | |||||
* | | gl_texture_cache: Rename BGRCopyPass to FormatConversionPass | ameerj | 2021-11-17 | 1 | -8/+8 |
|/ | |||||
* | TextureCache: OGL query device memory if possible. | FernandoS27 | 2021-11-17 | 1 | -1/+3 |
| | |||||
* | TextureCache: Fix OGL cleaning | Fernando Sahmkow | 2021-11-17 | 1 | -0/+16 |
| | |||||
* | gl_texture_cache: Simplify scaling procedures | ameerj | 2021-11-16 | 1 | -1/+1 |
| | |||||
* | OpenGlTextureCache: Fix state invalidation on rescaling. | Fernando Sahmkow | 2021-11-16 | 1 | -0/+4 |
| | |||||
* | Texture Cache: fix memory managment and optimize scaled downloads, uploads. | Fernando Sahmkow | 2021-11-16 | 1 | -2/+2 |
| | |||||
* | Texture Cache: Fix downscaling and correct memory comsumption. | Fernando Sahmkow | 2021-11-16 | 1 | -1/+1 |
| | |||||
* | Texture Cache: Rescale conversions between depth and color | FernandoS27 | 2021-11-16 | 1 | -1/+1 |
| | |||||
* | video_core: Misc resolution scaling related refactoring | ameerj | 2021-11-16 | 1 | -4/+7 |
| | |||||
* | gl_texture_cache: Fix scaling backup logic | ameerj | 2021-11-16 | 1 | -1/+2 |
| | |||||
* | gl_texture_cache: Fix depth and integer format scaling blits | ameerj | 2021-11-16 | 1 | -2/+2 |
| | |||||
* | gl_texture_cache/rescaling_pass: minor cleanup | ameerj | 2021-11-16 | 1 | -1/+0 |
| | |||||
* | gl_texture_cache: Simplify scaling | ameerj | 2021-11-16 | 1 | -1/+2 |
| | | | | | We don't need to reconstruct new textures every time we ScaleUp/ScaleDown. We can scale up once, and revert to the original texture whenever scaling down. Fixes memory leaks due to glDeleteTextures being deferred for later handling on some drivers | ||||
* | glsl/glasm: Pass and use scaling parameters in shaders | ReinUsesLisp | 2021-11-16 | 1 | -1/+1 |
| | |||||
* | texture_cache: Simplify image view queries and blacklisting | ReinUsesLisp | 2021-11-16 | 1 | -3/+2 |
| | |||||
* | gl_texture_cache: Simplify rescaling | ameerj | 2021-11-16 | 1 | -1/+2 |
| | |||||
* | gl_texture_cache: Implement ScaleDown | ameerj | 2021-11-16 | 1 | -1/+1 |
| | |||||
* | gl_texture_cache: Rescale fixes for multi-layered textures | ameerj | 2021-11-16 | 1 | -0/+1 |
| | |||||
* | renderer_gl: Resolution scaling fixes | ameerj | 2021-11-16 | 1 | -2/+7 |
| | |||||
* | gl_texture_cache: WIP texture rescale | ameerj | 2021-11-16 | 1 | -0/+2 |
| | |||||
* | VideoCore: Initial Setup for the Resolution Scaler. | Fernando Sahmkow | 2021-11-16 | 1 | -0/+8 |
| | |||||
* | gpu: Migrate implementation to the cpp file | ameerj | 2021-10-03 | 1 | -0/+1 |
| | |||||
* | gl_texture_cache: Migrate BGRCopyPass from util_shaders | ameerj | 2021-09-17 | 1 | -0/+14 |
| | | | | The BGR copies no longer use shaders. | ||||
* | util_shaders: Unify BGRA copy passes | ameerj | 2021-09-16 | 1 | -0/+8 |
| | |||||
* | texture_cache: Address ameerj's review | yzct12345 | 2021-08-05 | 1 | -1/+1 |
| | |||||
* | gl_texture_cache: Create image storage views | ReinUsesLisp | 2021-07-23 | 1 | -3/+19 |
| | | | | Fixes SULD.D tests. | ||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 1 | -10/+19 |
| | |||||
* | shader: Interact texture buffers with buffer cache | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | gl_texture_cache: Workaround slow PBO downloads on radeonsi | ReinUsesLisp | 2021-07-20 | 1 | -1/+1 |
| | | | | | | | | There's an optimization bug on non-git mesa versions where not specifying GL_CLIENT_STORAGE_BIT causes very slow reads on the CPU side. Add this bit for all vendors. | ||||
* | Reaper: Guarantee correct deletion. | Fernando Sahmkow | 2021-06-20 | 1 | -0/+8 |
| | |||||
* | Reaper: Change memory restrictions on TC depending on host memory on VK. | Fernando Sahmkow | 2021-06-17 | 1 | -0/+1 |
| | |||||
* | texture_cache: Handle out of bound texture blits | ameerj | 2021-05-08 | 1 | -5/+3 |
| | | | | Some games interleave a texture blit using regions which are out-of-bounds. This addresses the interleaving to avoid oob reads from the src texture. | ||||
* | renderer_opengl: Accelerate ASTC texture decoding with a compute shader | ameerj | 2021-03-13 | 1 | -0/+2 |
| | | | | | | ASTC texture decoding is currently handled by a CPU decoder for GPU's without native ASTC decoding support (most desktop GPUs). This is the cause for noticeable performance degradation in titles which use the format extensively. This commit adds support to accelerate ASTC decoding using a compute shader on OpenGL for GPUs without native support. | ||||
* | texture_cache: Blacklist BGRA8 copies and views on OpenGL | ameerj | 2021-03-04 | 1 | -0/+5 |
| | | | | | | In order to force the BGRA8 conversion on Nvidia using OpenGL, we need to forbid texture copies and views with other formats. This commit also adds a boolean relating to this, as this needs to be done only for the OpenGL api, Vulkan must remain unchanged. | ||||
* | gl_texture_cache: Lazily create non-sRGB texture views for sRGB formats | ameerj | 2021-02-13 | 1 | -1/+3 |
| | | | | | | This creates non-sRGB texture views for sRGB texture formats to allow for interfacing with these views in compute shaders using imageLoad and imageStore. Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc> | ||||
* | vk_staging_buffer_pool: Add stream buffer for small uploads | ReinUsesLisp | 2021-02-13 | 1 | -6/+5 |
| | | | | | | | | This uses a ring buffer similar to OpenGL's stream buffer for small uploads. This stops us from allocating several small buffers, reducing memory fragmentation and cache locality. It uses dedicated allocations when possible. | ||||
* | video_core: Reimplement the buffer cache | ReinUsesLisp | 2021-02-13 | 1 | -16/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reimplement the buffer cache using cached bindings and page level granularity for modification tracking. This also drops the usage of shared pointers and virtual functions from the cache. - Bindings are cached, allowing to skip work when the game changes few bits between draws. - OpenGL Assembly shaders no longer copy when a region has been modified from the GPU to emulate constant buffers, instead GL_EXT_memory_object is used to alias sub-buffers within the same allocation. - OpenGL Assembly shaders stream constant buffer data using glProgramBufferParametersIuivNV, from NV_parameter_buffer_object. In theory this should save one hash table resolve inside the driver compared to glBufferSubData. - A new OpenGL stream buffer is implemented based on fences for drivers that are not Nvidia's proprietary, due to their low performance on partial glBufferSubData calls synchronized with 3D rendering (that some games use a lot). - Most optimizations are shared between APIs now, allowing Vulkan to cache more bindings than before, skipping unnecesarry work. This commit adds the necessary infrastructure to use Vulkan object from OpenGL. Overall, it improves performance and fixes some bugs present on the old cache. There are still some edge cases hit by some games that harm performance on some vendors, this are planned to be fixed in later commits. | ||||
* | gl_texture_cache: Create base images with sRGB | ReinUsesLisp | 2021-01-04 | 1 | -1/+5 |
| | | | | | | This breaks accelerated decoders trying to imageStore into images with sRGB. The decoders are currently disabled so this won't cause issues at runtime. | ||||
* | video_core: Rewrite the texture cache | ReinUsesLisp | 2020-12-30 | 1 | -98/+188 |
| | | | | | | | | | | | | | | The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues. | ||||
* | video_core: Resolve more variable shadowing scenarios pt.3 | Lioncash | 2020-12-05 | 1 | -3/+3 |
| | | | | | Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors. | ||||
* | video_core: Resolve more variable shadowing scenarios | Lioncash | 2020-12-04 | 1 | -2/+3 |
| | | | | | | Resolves variable shadowing scenarios up to the end of the OpenGL code to make it nicer to review. The rest will be resolved in a following commit. | ||||
* | video_core: Remove all Core::System references in renderer | ReinUsesLisp | 2020-09-06 | 1 | -2/+4 |
| | | | | | | | | | Now that the GPU is initialized when video backends are initialized, it's no longer needed to query components once the game is running: it can be done when yuzu is booting. This allows us to pass components between constructors and in the process remove all Core::System references in the video backend. | ||||
* | gl_texture_cache: Take std::string by reference in DecorateViewName() | Lioncash | 2020-08-24 | 1 | -1/+1 |
| | | | | | LabelGLObject takes a string_view, so we don't need to make copies of the std::string. | ||||
* | texture_cache: Implement rendering to 3D textures | ReinUsesLisp | 2020-06-08 | 1 | -2/+4 |
| | | | | | | | | | | | | | | 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. | ||||
* | gl_texture_cache: Implement small texture view cache for swizzles | ReinUsesLisp | 2020-05-26 | 1 | -7/+11 |
| | | | | | This fixes cases where the texture swizzle was applied twice on the same draw to a texture bound to two different slots. | ||||
* | texture_cache: Implement depth stencil texture swizzles | ReinUsesLisp | 2020-05-26 | 1 | -9/+1 |
| | | | | | | | | Stop ignoring image swizzles on depth and stencil images. This doesn't fix a known issue on Xenoblade Chronicles 2 where an OpenGL texture changes swizzles twice before being used. A proper fix would be having a small texture view cache for this like we do on Vulkan. | ||||
* | video_core: Use native ASTC when available | ReinUsesLisp | 2020-04-01 | 1 | -1/+5 |
| | |||||
* | renderer_opengl: Reintroduce dirty flags for render targets | ReinUsesLisp | 2020-02-28 | 1 | -1/+4 |
| | |||||
* | gl_state: Remove image tracking | ReinUsesLisp | 2020-02-28 | 1 | -0/+5 |
| | |||||
* | gl_shader_decompiler: Keep track of written images and mark them as modified | ReinUsesLisp | 2019-09-06 | 1 | -9/+13 |
| | |||||
* | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 2019-08-30 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | texture_cache: Address Feedback | Fernando Sahmkow | 2019-07-05 | 1 | -5/+4 |
| | |||||
* | texture_cache: Correct Texture Buffer Uploading | Fernando Sahmkow | 2019-07-05 | 1 | -0/+1 |
| | |||||
* | texture_cache: Address feedback | ReinUsesLisp | 2019-06-29 | 1 | -15/+0 |
| | |||||
* | gl_texture_cache: Corrections and fixes | Fernando Sahmkow | 2019-06-25 | 1 | -3/+3 |
| | |||||
* | gl_texture_cache: Address some feedback | ReinUsesLisp | 2019-06-24 | 1 | -2/+4 |
| | |||||
* | texture_cache: Optimize GetSurface and use references on functions that don't change a surface. | Fernando Sahmkow | 2019-06-21 | 1 | -3/+3 |
| | |||||
* | texture_cache: Implement Buffer Copy and detect Turing GPUs Image Copies | Fernando Sahmkow | 2019-06-21 | 1 | -1/+8 |
| | |||||
* | texture_cache: Fermi2D reform and implement View Mirage | Fernando Sahmkow | 2019-06-21 | 1 | -3/+3 |
| | | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general. | ||||
* | gl_texture_cache: Make main views be proxy textures instead of a full view. | Fernando Sahmkow | 2019-06-21 | 1 | -1/+7 |
| | |||||
* | Reduce amount of size calculations. | Fernando Sahmkow | 2019-06-21 | 1 | -1/+1 |
| | |||||
* | Texture Cache: Implement Blitting and Fermi Copies | Fernando Sahmkow | 2019-06-21 | 1 | -0/+8 |
| | |||||
* | Correct Mipmaps View method in Texture Cache | Fernando Sahmkow | 2019-06-21 | 1 | -8/+4 |
| | |||||
* | Implement Texture Cache V2 | Fernando Sahmkow | 2019-06-21 | 1 | -71/+40 |
| | |||||
* | texture_cache: Remove execution context copies from the texture cache | ReinUsesLisp | 2019-06-21 | 1 | -11/+6 |
| | | | | | This is done to simplify the OpenGL implementation, it is needed for Vulkan. | ||||
* | gl_texture_cache: Implement fermi copies | ReinUsesLisp | 2019-06-21 | 1 | -0/+1 |
| | |||||
* | texture_cache: Split texture cache into different files | ReinUsesLisp | 2019-06-21 | 1 | -1/+1 |
| | |||||
* | texture_cache: Move staging buffer into a generic implementation | ReinUsesLisp | 2019-06-21 | 1 | -6/+1 |
| | |||||
* | texture_cache: Flush 3D textures in the order they are drawn | ReinUsesLisp | 2019-06-21 | 1 | -2/+4 |
| | |||||
* | gl_texture_cache: Minor changes | ReinUsesLisp | 2019-06-21 | 1 | -8/+12 |
| | |||||
* | gl_texture_cache: Add copy from multiple overlaps into a single surface | ReinUsesLisp | 2019-06-21 | 1 | -1/+33 |
| | |||||
* | gl_texture_cache: Attach surface textures instead of views | ReinUsesLisp | 2019-06-21 | 1 | -1/+2 |
| | |||||
* | gl_texture_cache: Add fast copy path | ReinUsesLisp | 2019-06-21 | 1 | -0/+9 |
| | |||||
* | gl_texture_cache: Initial implementation | ReinUsesLisp | 2019-06-21 | 1 | -0/+131 |