summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_texture_cache.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_texture_cache: Create base images with sRGBReinUsesLisp2021-01-041-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 cacheReinUsesLisp2020-12-301-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.3Lioncash2020-12-051-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 scenariosLioncash2020-12-041-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 rendererReinUsesLisp2020-09-061-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()Lioncash2020-08-241-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 texturesReinUsesLisp2020-06-081-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 swizzlesReinUsesLisp2020-05-261-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 swizzlesReinUsesLisp2020-05-261-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 availableReinUsesLisp2020-04-011-1/+5
|
* renderer_opengl: Reintroduce dirty flags for render targetsReinUsesLisp2020-02-281-1/+4
|
* gl_state: Remove image trackingReinUsesLisp2020-02-281-0/+5
|
* gl_shader_decompiler: Keep track of written images and mark them as modifiedReinUsesLisp2019-09-061-9/+13
|
* video_core: Silent miscellaneous warnings (#2820)Rodrigo Locatti2019-08-301-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 FeedbackFernando Sahmkow2019-07-051-5/+4
|
* texture_cache: Correct Texture Buffer UploadingFernando Sahmkow2019-07-051-0/+1
|
* texture_cache: Address feedbackReinUsesLisp2019-06-291-15/+0
|
* gl_texture_cache: Corrections and fixesFernando Sahmkow2019-06-251-3/+3
|
* gl_texture_cache: Address some feedbackReinUsesLisp2019-06-241-2/+4
|
* texture_cache: Optimize GetSurface and use references on functions that don't change a surface.Fernando Sahmkow2019-06-211-3/+3
|
* texture_cache: Implement Buffer Copy and detect Turing GPUs Image CopiesFernando Sahmkow2019-06-211-1/+8
|
* texture_cache: Fermi2D reform and implement View MirageFernando Sahmkow2019-06-211-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 Sahmkow2019-06-211-1/+7
|
* Reduce amount of size calculations.Fernando Sahmkow2019-06-211-1/+1
|
* Texture Cache: Implement Blitting and Fermi CopiesFernando Sahmkow2019-06-211-0/+8
|
* Correct Mipmaps View method in Texture CacheFernando Sahmkow2019-06-211-8/+4
|
* Implement Texture Cache V2Fernando Sahmkow2019-06-211-71/+40
|
* texture_cache: Remove execution context copies from the texture cacheReinUsesLisp2019-06-211-11/+6
| | | | | This is done to simplify the OpenGL implementation, it is needed for Vulkan.
* gl_texture_cache: Implement fermi copiesReinUsesLisp2019-06-211-0/+1
|
* texture_cache: Split texture cache into different filesReinUsesLisp2019-06-211-1/+1
|
* texture_cache: Move staging buffer into a generic implementationReinUsesLisp2019-06-211-6/+1
|
* texture_cache: Flush 3D textures in the order they are drawnReinUsesLisp2019-06-211-2/+4
|
* gl_texture_cache: Minor changesReinUsesLisp2019-06-211-8/+12
|
* gl_texture_cache: Add copy from multiple overlaps into a single surfaceReinUsesLisp2019-06-211-1/+33
|
* gl_texture_cache: Attach surface textures instead of viewsReinUsesLisp2019-06-211-1/+2
|
* gl_texture_cache: Add fast copy pathReinUsesLisp2019-06-211-0/+9
|
* gl_texture_cache: Initial implementationReinUsesLisp2019-06-211-0/+131