summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* texture_cache: Remove old rasterizer cacheFernando Sahmkow2019-06-211-1381/+0
|
* gl_rasterizer_cache: Use texture buffers to emulate texture buffersReinUsesLisp2019-06-211-9/+28
|
* maxwell_3d: Partially implement texture buffers as 1D texturesReinUsesLisp2019-06-211-1/+1
|
* Merge pull request #2461 from lioncash/unused-varMat M2019-05-141-1/+0
|\ | | | | video_core: Remove a few unused variables and functions
| * video_core/renderer_opengl/gl_rasterizer_cache: Remove unused variable in UploadGLMipmapTexture()Lioncash2019-05-101-1/+0
| | | | | | | | This variable is unused entirely, so it can be removed.
* | Merge pull request #2413 from FernandoS27/opt-gpuRodrigo Locatti2019-05-141-10/+15
|\ \ | |/ |/| Rasterizer Cache: refactor flushing & optimize memory usage of surfaces
| * Rasterizer Cache: Use a temporal storage for Surfaces loading/flushing.Fernando Sahmkow2019-04-211-10/+15
| | | | | | | | | | This PR should heavily reduce memory usage since temporal buffers are no longer stored per Surface but instead managed by the Rasterizer Cache.
* | Merge pull request #2403 from FernandoS27/compressed-linearbunnei2019-04-221-2/+5
|\ \ | |/ |/| Support compressed formats on linear textures.
| * Support compressed formats on linear textures.Fernando Sahmkow2019-04-151-2/+5
| |
* | Correct Pitch in Fermi2DFernando Sahmkow2019-04-151-4/+1
|/
* Merge pull request #2373 from FernandoS27/z32bunnei2019-04-141-2/+17
|\ | | | | Set Pixel Format to Z32 if its R32F and depth compare enabled, and Implement format ZF32_X24S8
| * Correct depth compare with color formats for R32FFernando Sahmkow2019-04-091-2/+17
| |
* | gl_rasterizer_cache: Relax restrictions on FastCopySurface and FastLayeredCopySurfaceFernando Sahmkow2019-04-111-4/+10
| |
* | Merge pull request #2372 from FernandoS27/fermi-fixbunnei2019-04-111-0/+4
|\ \ | | | | | | Correct Fermi Copy on Linear Textures.
| * | Correct Fermi Copy on Linear Textures.Fernando Sahmkow2019-04-091-0/+4
| |/
* | Merge pull request #2354 from lioncash/headerbunnei2019-04-101-0/+1
|\ \ | | | | | | video_core/texures/texture: Remove unnecessary includes
| * | video_core/texures/texture: Remove unnecessary includesLioncash2019-04-061-0/+1
| |/ | | | | | | | | | | Nothing in this header relies on common_funcs or the memory manager. This gets rid of reliance on indirect inclusions in the OpenGL caches.
* / gl_backend: Align Pixel StorageFernando Sahmkow2019-04-081-4/+4
|/ | | | | This commit makes sure GL reads on the correct pack size for the respective texture buffer.
* video_core/renderer_opengl: Remove unnecessary includesLioncash2019-04-041-1/+0
| | | | | | | Quite a few unused includes have built up over time, particularly on core/memory.h. Removing these includes means the source files including those files will no longer need to be rebuilt if they're changed, making compilation slightly faster in this scenario.
* video_core: Amend constructor initializer list order where applicableLioncash2019-03-271-2/+2
| | | | | | | Specifies the members in the same order that initialization would take place in. This also silences -Wreorder warnings.
* Merge pull request #2256 from bunnei/gpu-vmmbunnei2019-03-221-22/+13
|\ | | | | gpu: Rewrite MemoryManager based on the VMManager implementation.
| * gl_rasterizer_cache: Check that backing memory is valid before creating a surface.bunnei2019-03-211-15/+7
| | | | | | | | - Fixes a crash in Puyo Puyo Tetris.
| * gpu: Rewrite virtual memory manager using PageTable.bunnei2019-03-211-5/+5
| |
| * gpu: Move GPUVAddr definition to common_types.bunnei2019-03-211-7/+6
| |
* | Revert "Devirtualize Register/Unregister and use a wrapper instead."bunnei2019-03-221-4/+4
|/ | | | - Fixes graphical issues from transitions in Super Mario Odyssey.
* video_core: Refactor to use MemoryManager interface for all memory access.bunnei2019-03-161-18/+21
| | | | | | | | | | | # Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-18/+18
|
* video_core/morton: Remove unused parameter in MortonSwizzleReinUsesLisp2019-03-131-2/+2
|
* Merge pull request #2143 from ReinUsesLisp/texviewbunnei2019-03-101-9/+32
|\ | | | | gl_rasterizer_cache: Create texture views for array discrepancies
| * gl_rasterizer_cache: Create texture views for array discrepanciesReinUsesLisp2019-02-271-9/+32
| | | | | | | | | | | | When a texture is sampled in a shader with a different array mode than the cached state, create a texture view and bind that to the shader instead.
* | Merge pull request #2149 from ReinUsesLisp/decoders-stylebunnei2019-03-071-102/+13
|\ \ | | | | | | gl_rasterizer_cache: Move format conversion functions to their own file
| * | gl_rasterizer_cache: Move format conversion to its own fileReinUsesLisp2019-02-271-102/+13
| | |
* | | fuck git for ruining my day, I will learn but I will not forgivebunnei2019-03-021-1/+1
| | |
* | | Devirtualize Register/Unregister and use a wrapper instead.Fernando Sahmkow2019-02-281-4/+4
| | |
* | | Corrections and redesign.Fernando Sahmkow2019-02-281-42/+43
| | |
* | | Remove NotifyFrameBuffer as we are doing a texception pass every drawcall.Fernando Sahmkow2019-02-281-21/+0
| | |
* | | Remove certain optimizations that caused texception to fail in certain scenarios.Fernando Sahmkow2019-02-281-18/+1
| | |
* | | Bug fixes and formattingFernando Sahmkow2019-02-281-1/+3
| | |
* | | rasterizer_cache_gl: Implement Texception PassFernando Sahmkow2019-02-281-0/+39
| | |
* | | rasterizer_cache_gl: Implement Partial Reinterpretation of Surfaces.Fernando Sahmkow2019-02-281-0/+89
| | |
* | | rasterizer_cache: mark reinterpreted surfaces and add ability to reload marked surfaces on next use.Fernando Sahmkow2019-02-281-0/+5
| | |
* | | rasterizer_cache_gl: Notify on framebuffer changeFernando Sahmkow2019-02-281-3/+17
| | |
* | | Merge pull request #2163 from ReinUsesLisp/bitset-dirtybunnei2019-02-281-2/+2
|\ \ \ | |_|/ |/| | maxwell_3d: Use std::bitset to manage dirty flags
| * | maxwell_3d: Use std::bitset to manage dirty flagsReinUsesLisp2019-02-261-2/+2
| |/
* / common/math_util: Move contents into the Common namespaceLioncash2019-02-271-4/+4
|/ | | | | These types are within the common library, so they should be within the Common namespace.
* Merge pull request #2119 from FernandoS27/fix-copybunnei2019-02-251-1/+5
|\ | | | | rasterizer_cache_gl: Only do fast layered copy on the same format.
| * rasterizer_cache_gl: Only do fast layered copy on the same format. AsFernando Sahmkow2019-02-131-1/+5
| | | | | | | | glCopyImageSubData does not support different formats.
* | gl_rasterizer_cache: Fixup parameter order in layered swizzleReinUsesLisp2019-02-241-1/+1
|/
* Merge pull request #1904 from bunnei/better-fermi-copybunnei2019-02-091-9/+150
|\ | | | | gl_rasterizer: Implement a more accurate fermi 2D copy.
| * gl_rasterizer_cache: Mark surface copy destinations as modified.bunnei2019-02-071-4/+14
| |
| * gl_rasterizer: Implement a more accurate fermi 2D copy.bunnei2019-02-071-5/+136
| | | | | | | | - This is a blit, use the blit registers.
* | Implement linear textures (#2089)Fernando Sahmkow2019-02-091-5/+37
| |
* | gl_rasterizer_cache: Fixup texture view parametersReinUsesLisp2019-02-081-2/+2
|/ | | | | These parameters were declared as constants and passed to glTextureView but then they were removed on a rabase. This addresses that mistake.
* Merge pull request #2071 from ReinUsesLisp/dsa-texturebunnei2019-02-071-132/+110
|\ | | | | gl_rasterizer: Use DSA for textures and move swizzling to texture state
| * gl_rasterizer_cache: Fixup test clauseReinUsesLisp2019-01-301-6/+5
| |
| * gl_rasterizer_cache: Guard clause swizzle testingMat M2019-01-301-1/+3
| | | | | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
| * gl_rasterizer_cache: Move swizzling to textures instead of stateReinUsesLisp2019-01-301-0/+20
| |
| * gl_rasterizer: Use DSA for texturesReinUsesLisp2019-01-301-132/+89
| |
* | video_core: Remove unused Fill surface typeReinUsesLisp2019-02-011-4/+0
|/
* Merge pull request #1485 from FernandoS27/render-infobunnei2019-01-301-2/+5
|\ | | | | Add more info into textures' object labels
| * Add more info into textures' object labelsFernandoS272018-12-091-2/+5
| |
* | gl_shader_cache: Fix texture view for cubemaps as cubemap arraysReinUsesLisp2019-01-301-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | Cubemaps are considered layered and to create a texture view the texture mustn't be a layered texture, resulting in cubemaps being bound as cubemap arrays. To fix this issue this commit introduces an extra surface parameter called "is_array" and uses this to query for texture view creation. Now that texture views for cubemaps are actually being created, this also fixes the number of layers created for the texture view (since they have to be 6 to create a texture view of cubemaps).
* | Merge pull request #2008 from ReinUsesLisp/dirty-framebuffersbunnei2019-01-201-7/+20
|\ \ | | | | | | gl_rasterizer_cache: Use dirty flags for framebuffers
| * | gl_rasterizer_cache: Use dirty flags for the depth bufferReinUsesLisp2019-01-071-3/+10
| | |
| * | gl_rasterizer_cache: Use dirty flags for color buffersReinUsesLisp2019-01-071-4/+10
| | |
* | | gl_rasterizer_cache: Use GL_STREAM_COPY for PBOsReinUsesLisp2019-01-051-1/+1
|/ / | | | | | | | | | | Since the data is doing the path CPU -> GPU -> GPU copy is the most approximate hint. Using GL_STREAM_DRAW generated a performance warning on Nvidia's stack. Changing this hint removed the warning.
* | Merge pull request #1961 from ReinUsesLisp/tex-view-2dbunnei2019-01-021-9/+40
|\ \ | | | | | | gl_rasterizer_cache: Texture view if shader samples array but OGL is not
| * | gl_rasterizer_cache: Texture view if shader samples array but OGL is notReinUsesLisp2018-12-301-9/+40
| | | | | | | | | | | | | | | | | | | | | When a shader samples a texture array but that texture in OpenGL is created without layers, use a texture view to increase the texture hierarchy. For example, instead of binding a GL_TEXTURE_2D bind a GL_TEXTURE_2D_ARRAY view.
* | | gpu: Remove PixelFormat G8R8U and G8R8S, as they do not seem to exist.bunnei2018-12-281-22/+0
|/ / | | | | | | - Fixes UI rendering issues in The Legend of Zelda: Breath of the Wild.
* / Texture format fixes: Flag RGBA16UI as GL_RGBA_INTEGER format, and interpret R16U as Z16 when depth_compare is enabled.heapo2018-12-181-1/+11
|/
* Merge pull request #1795 from ReinUsesLisp/vc-cleanupbunnei2018-12-021-1/+2
|\ | | | | video_core: Minor style changes
| * gl_rasterizer_cache: Use brackets for two-line single-expresion blocksReinUsesLisp2018-11-291-1/+2
| |
* | gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.bunnei2018-11-301-1/+4
| | | | | | | | - Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
* | gl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy.bunnei2018-11-291-144/+1
|/ | | | | | - BlitSurface with different texture targets is inherently broken. - When target is the same, we can just use FastCopySurface. - Fixes rendering issues with Breath of the Wild.
* Implemented Tile Width SpacingFernandoS272018-11-261-4/+8
|
* video_core: Move morton functions to their own fileReinUsesLisp2018-11-251-179/+14
|
* Merge pull request #1725 from FernandoS27/gl43bunnei2018-11-241-8/+8
|\ | | | | Update OpenGL's backend version from 3.3 to 4.3
| * Removed pre 4.3 ARB extensionsFernandoS272018-11-211-8/+8
| |
* | Implemented Fast Layered CopyFernandoS272018-11-201-2/+29
|/
* Eliminated unnessessary memory allocation and copy (#1702)Frederic L2018-11-191-5/+2
|
* gl_rasterizer_chache: Minor cleanupFrederic Laing2018-11-151-3/+3
|
* Merge pull request #1662 from FreddyFunk/CopySurface-Optimizationbunnei2018-11-141-10/+7
|\ | | | | gl_rasterizer_cache: CopySurface optimization
| * gl_rasterizer_cache: Remove unnecessary memory allocation and copy in CopySurfaceFrederic Laing2018-11-081-10/+7
| |
* | Merge pull request #1628 from greggameplayer/Texture2DArraybunnei2018-11-131-0/+1
|\ \ | | | | | | Implement SurfaceTarget Texture2DArray
| * \ Merge branch 'master' into Texture2DArraygreggameplayer2018-11-061-14/+39
| |\ \
| * | | correct syntaxgreggameplayer2018-11-021-4/+3
| | | |
| * | | Merge branch 'master' into Texture2DArraygreggameplayer2018-11-021-112/+55
| |\ \ \
| * | | | Implement SurfaceTarget Texture2DArraygreggameplayer2018-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | ( needed by Mario+Rabbids Kingdom Battle )
* | | | | Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB (#1666)greggameplayer2018-11-131-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB ( needed by Mario+Rabbids Kingdom Battle ) * Small placement correction
* | | | | Improve state management by splitting some of the states id separated function to avoid a full apply overheadRodolfo Bogado2018-11-111-1/+1
| | | | |
* | | | | rasterizer_cache: Remove reliance on the System singletonLioncash2018-11-081-1/+3
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | Rather than have a transparent dependency, we can make it explicit in the interface. This also gets rid of the need to put the core include in a header.
* | | | gl_rasterizer_cache: Add profiles for Copy and Blit.Markus Wick2018-11-061-2/+6
| |_|/ |/| | | | | | | | | | | They were missed, and Copy is very high in profile here. It doesn't block the GPU, but it stalls the driver thread. So with our bad GL instructions, this might block quite a while.
* | | gl_resource_manager: Split implementations in .cpp file.Markus Wick2018-11-061-0/+1
| | | | | | | | | | | | | | | Those implementations are quite costly, so there is no need to inline them to the caller. Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them.
* | | Merge pull request #1616 from FernandoS27/cube-arraybunnei2018-11-051-0/+14
|\ \ \ | | | | | | | | Implement Cube Arrays
| * | | Implement Cube ArraysFernandoS272018-11-011-0/+14
| | |/ | |/|
* | | Fix ASTC Decompressor to support depth parameterFernandoS272018-11-021-11/+10
| | |
* | | Fix ASTC formatsFernandoS272018-11-011-4/+11
| | |
* | | Implemented ASTC 5x5FernandoS272018-11-011-1/+5
|/ /
* / video_core: Move surface declarations out of gl_rasterizer_cacheReinUsesLisp2018-10-301-114/+56
|/
* Merge pull request #1580 from FernandoS27/mm-implbunnei2018-10-301-94/+140
|\ | | | | Implemented Mipmaps
| * Fixed black textures, pixelation and we no longer require to auto-generate mipmapsFernandoS272018-10-291-14/+2
| |
| * Fixed mipmap block autosizing algorithmFernandoS272018-10-291-4/+4
| |
| * Fixed Invalid Image size and Mipmap calculationFernandoS272018-10-291-4/+7
| |
| * Fixed Block Resizing algorithm and Clang FormatFernandoS272018-10-291-3/+4
| |
| * Zero out memory region of recreated surface before flushingFernandoS272018-10-291-0/+2
| |
| * Implement MipmapsFernandoS272018-10-281-94/+146
| |
* | Merge pull request #1613 from ReinUsesLisp/gl-utilsbunnei2018-10-291-2/+3
|\ \ | | | | | | video_core: Move OpenGL specific utils to its renderer
| * | video_core: Move OpenGL specific utils to its rendererReinUsesLisp2018-10-291-2/+3
| |/
* / Enable alpha channel for DXT1 texture formatMichael2018-10-281-2/+2
|/
* Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB supportRodolfo Bogado2018-10-281-14/+77
|
* gl_rasterizer_cache: Fix compiler warningFrederic Laing2018-10-271-2/+2
|
* Fixed Layered Textures Loading and CubemapsFernandoS272018-10-231-69/+66
|
* Implement Reinterpret Surface, to accurately blit 3D texturesFernandoS272018-10-181-2/+4
|
* Implement 3D TexturesFernandoS272018-10-181-0/+2
|
* gl_rasterizer_cache: Remove unnecessary block_depth=1 on Flush.bunnei2018-10-181-1/+0
|
* gl_rasterizer_cache: Remove unnecessary temporary buffer with unswizzle.bunnei2018-10-181-5/+2
|
* gl_rasterizer_cache: Use AccurateCopySurface for use_accurate_gpu_emulation.bunnei2018-10-161-2/+15
|
* config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation.bunnei2018-10-161-2/+2
| | | | - This will be used as a catch-all for slow-but-accurate GPU emulation paths.
* rasterizer_cache: Refactor to support in-order flushing.bunnei2018-10-161-2/+1
|
* gl_rasterizer_cache: Refactor to only call GetRegionEnd on surface creation.bunnei2018-10-161-14/+18
|
* gl_rasterizer_cache: Separate guest and host surface size managment.bunnei2018-10-161-80/+68
|
* gl_rasterizer_cache: Rename GetGLBytesPerPixel to GetBytesPerPixel.bunnei2018-10-161-10/+10
| | | | - This does not really have anything to do with OpenGL.
* gl_rasterizer_cache: Remove unused FlushSurface method.bunnei2018-10-161-4/+0
|
* gl_rasterizer_cache: Remove usage of Memory::Read/Write functions.bunnei2018-10-161-13/+8
| | | | - These cannot be used within the cache, as they change cache state.
* gl_rasterizer_cache: Clamp cached surface size to mapped GPU region size.bunnei2018-10-161-16/+29
|
* gl_rasterizer_cache: Reintroduce code for handling swizzle and flush to guest RAM.bunnei2018-10-161-28/+106
|
* Merge pull request #1488 from Hexagon12/astc-typesbunnei2018-10-141-1/+15
|\ | | | | video_core: Added ASTC 5x4; 8x5 types
| * Added ASTC 5x4; 8x5Hexagon122018-10-131-1/+15
| |
* | Fix a Crash on Zelda BotW and Splatoon 2, and simplified LoadGLBufferFernandoS272018-10-131-18/+1
| |
* | Propagate depth and depth_block on modules using decodersFernandoS272018-10-131-14/+18
|/
* Add memory Layout to Render Targets and Depth BuffersFernandoS272018-10-101-15/+15
|
* Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depthFernandoS272018-10-101-5/+22
|
* gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies.bunnei2018-10-061-0/+42
|
* gl_rasterizer_cache: Implement a simpler surface copy using glCopyImageSubData.bunnei2018-10-061-0/+21
|
* gl_rasterizer_cache: Fixes to how we do render to cubemap.bunnei2018-09-301-9/+5
| | | | - Fixes issues with Splatoon 2.
* gl_rasterizer_cache: Add check for array rendering to cubemap texture.bunnei2018-09-301-0/+8
|
* gl_rasterizer_cache: Implement render to cubemap.bunnei2018-09-301-119/+182
|
* gl_rasterizer_cache: Add support for SurfaceTarget::TextureCubemap.bunnei2018-09-301-1/+34
|
* gl_rasterizer_cache: Implement LoadGLBuffer for Texture2DArray.bunnei2018-09-301-0/+8
|
* gl_rasterizer_cache: Update BlitTextures to support non-Texture2D ColorTexture surfaces.bunnei2018-09-301-23/+88
|
* gl_rasterizer_cache: Workaround for Texture2D -> Texture2DArray scenario.bunnei2018-09-301-3/+15
|
* gl_rasterizer_cache: Keep track of surface 2D size separately from total size.bunnei2018-09-301-26/+34
|
* Added glObjectLabels for renderdoc for textures and shader programs (#1384)David2018-09-231-0/+3
| | | | | | | | * Added glObjectLabels for renderdoc for textures and shader programs * Changed hardcoded "Texture" name to reflect the texture type instead * Removed string initialize
* correct BC6Hgreggameplayer2018-09-231-2/+2
|
* Merge pull request #1326 from FearlessTobi/port-4182bunnei2018-09-171-21/+22
|\ | | | | Port #4182 from Citra: "Prefix all size_t with std::"
| * Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-21/+22
| |
* | Implement ASTC_2D_8X8 (Bayonetta 2)raven022018-09-161-1/+8
|/
* gl_rasterizer_cache: B5G6R5U should use GL_RGB8 as an internal format.bunnei2018-09-131-1/+1
| | | | - Fixes a regression with Sonic Mania with ARB_texture_storage.
* Merge pull request #1295 from bunnei/accurate-copiesbunnei2018-09-121-12/+10
|\ | | | | gl_rasterizer_cache: Improve accuracy of caching and copies.
| * gl_rasterizer_cache: Always blit on recreate, regardless of format.bunnei2018-09-121-6/+10
| | | | | | | | - Fixes several rendering issues with Super Mario Odyssey.
| * gl_shader_cache: Remove cache_width/cache_height.bunnei2018-09-121-6/+0
| | | | | | | | | | - This was once an optimization, but we no longer need it with the cache reserve. - This is also inaccurate.
* | gl_rasterizer: Use ARB_texture_storage.Markus Wick2018-09-111-11/+8
|/ | | | | | | | It allows us to use texture views and it reduces the overhead within the GPU driver. But it disallows us to reallocate the texture, but we don't do so anyways. In the end, it is the new way to allocate textures, so there is no need to use the old way.
* gl_rasterizer_cache: Only use depth for applicable texture formats.bunnei2018-09-101-6/+22
| | | | - Fixes an issue with Octopath Traveler leaving stale data here.
* gl_rasterizer: Implement multiple color attachments.bunnei2018-09-101-48/+20
|
* video_core: fixed arithmetic overflow warnings & improved code stylePatrick Elsässer2018-09-091-10/+13
| | | | | | | | - Fixed all warnings, for renderer_opengl items, which were indicating a possible incorrect behavior from integral promotion rules and types larger than those in which arithmetic is typically performed. - Added const for variables where possible and meaningful. - Added constexpr where possible.
* gl_rasterizer_cache: Improve accuracy of RecreateSurface for non-2D textures.bunnei2018-09-081-27/+41
|
* gl_rasterizer_cache: Partially implement several non-2D texture types.bunnei2018-09-081-30/+111
|
* gl_rasterizer_cache: Track texture depth.bunnei2018-09-081-1/+3
|
* gl_rasterizer_cache: Remove impl. of FlushGLBuffer.bunnei2018-09-081-34/+1
| | | | - Will not work for non-2d textures, and was not used anyways.
* gl_rasterizer_cache: Keep track of texture type per surface.bunnei2018-09-081-31/+49
|
* gl_rasterizer_cache: Remove unused DownloadGLTexture.bunnei2018-09-081-50/+0
|
* gl_state: Keep track of texture target.bunnei2018-09-081-6/+6
|
* gl_rasterizer: Skip TODO log.Markus Wick2018-09-051-1/+1
| | | | | | | This is called ~3k times per frame in SMO ingame. My laptop spends ~3ms per frame on allocating and freeing this string. Let's just stop printing this kind of redundant information.
* gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies.bunnei2018-08-311-53/+54
|
* gl_rasterizer_cache: Also use reserve cache for RecreateSurface.bunnei2018-08-311-12/+15
|
* gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei2018-08-311-57/+21
|
* Implement BC6H_UF16 & BC6H_SF16 (#1092)greggameplayer2018-08-311-3/+13
| | | | | | | | | * Implement BC6H_UF16 & BC6H_SF16 Require by ARMS * correct coding style * correct coding style part 2
* gpu: Make memory_manager privateLioncash2018-08-281-8/+8
| | | | | | | | | | Makes the class interface consistent and provides accessors for obtaining a reference to the memory manager instance. Given we also return references, this makes our more flimsy uses of const apparent, given const doesn't propagate through pointers in the way one would typically expect. This makes our mutable state more apparent in some places.
* gl_rasterizer_cache: Update to use RasterizerCache base class.bunnei2018-08-281-101/+9
|
* gl_rasterizer_cache: Blit when possible on RecreateSurface.bunnei2018-08-231-5/+12
|
* gl_rasterizer_cache: Reserve surfaces that have already been created for later use.bunnei2018-08-231-3/+28
|
* gl_rasterizer_cache: Remove assert for RecreateSurface type.bunnei2018-08-231-1/+0
|
* gl_rasterizer_cache: Implement compressed texture copies.bunnei2018-08-231-8/+18
|
* renderer_opengl: Namespace OpenGL codeLioncash2018-08-221-0/+4
| | | | | | | Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
* Rasterizer: Reinterpret the raw texture bytes instead of blitting (and thus doing format conversion) to a new texture when a game requests an old texture address with a different format.Subv2018-08-201-3/+49
|
* Rasterizer: Don't attempt to copy over the old texture's data when doing a format reinterpretation if we're only going to clear the framebuffer.Subv2018-08-201-6/+11
|
* Implemented RGBA8_UINTDavid Marcec2018-08-201-0/+3
| | | | Needed by kirby
* gl_rasterizer_cache: Remove asserts for supported blits.bunnei2018-08-171-2/+0
|
* gl_rasterizer_cache: Treat Depth formats differently from DepthStencil.bunnei2018-08-161-8/+10
|
* gl_rasterizer_cache: Cleanup some PixelFormat names and logging.bunnei2018-08-151-15/+15
|
* gl_rasterizer_cache: Implement G8R8S format.bunnei2018-08-151-5/+9
| | | | - Used by Super Mario Odyssey.
* Merge pull request #1058 from greggameplayer/BC7U_Fixbunnei2018-08-141-1/+1
|\ | | | | Fix BC7U
| * Fix BC7Ugreggameplayer2018-08-141-1/+1
| |
* | renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM.bunnei2018-08-141-0/+3
|/ | | | - Used by Breath of the Wild.
* Implement RG32UI and R32UIDavid Marcec2018-08-131-0/+6
| | | | Needed for xenoblade
* renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.bunnei2018-08-131-0/+3
| | | | - Used by Breath of the Wild.
* renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.bunnei2018-08-131-20/+47
| | | | - Used by Breath of the Wild.
* Implement R8_UINT RenderTargetFormat & PixelFormat (#1014)greggameplayer2018-08-121-20/+23
| | | | - Used by Go Vacation
* gl_rasterizer: Implement render target format RG8_SNORM.bunnei2018-08-121-3/+5
| | | | - Used by Super Mario Odyssey.
* gl_rasterizer: Implement render target format RGBA8_SNORM.bunnei2018-08-121-21/+24
| | | | - Used by Super Mario Odyssey.
* Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats and more (R16_UNORM needed by Fate Extella) (#848)greggameplayer2018-08-111-7/+14
| | | | | | | | | | | | | | | * Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats Do a separate function in order to get Bytes Per Pixel of DepthFormat Apply the new function in gpu.h delete unneeded white space * correct merging error
* Merge pull request #1004 from lioncash/unusedbunnei2018-08-101-2/+2
|\ | | | | gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces()
| * gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces()Lioncash2018-08-101-2/+2
| |
* | textures: Refactor out for Texture/Depth FormatFromPixelFormat.bunnei2018-08-101-10/+21
| |
* | gl_rasterizer_cache: Add bounds checking for gl_buffer copies.bunnei2018-08-101-10/+12
|/
* Implement SNORM for BC5/DXN2 (#998)Khangaroo2018-08-101-12/+17
| | | | | | | | | | | * Implement BC5/DXN2 (#996) - Used by Kirby Star Allies. * Implement BC5/DXN2 SNORM UNORM for Kirby Star Allies SNORM for Super Mario Odyssey
* gl_rasterizer_cache: Avoid iterator invalidation issues within InvalidateRegion()Lioncash2018-08-091-2/+4
| | | | | A range-based for loop can't be used when the container being iterated is also being erased from.
* Merge pull request #994 from lioncash/constbunnei2018-08-091-7/+9
|\ | | | | gl_rasterizer_cache: Use std::vector::assign vs resize() then copy for the non-tiled case
| * gl_rasterizer_cache: Invert conditional in LoadGLBuffer()Lioncash2018-08-091-5/+5
| | | | | | | | | | | | It's generally easier to follow code using conditionals that operate in terms of the true case followed by the false case (no chance of overlooking the exclamation mark).
| * gl_rasterizer_cache: Use std::vector::assign in LoadGLBuffer() for the non-tiled caseLioncash2018-08-091-4/+6
| | | | | | | | | | | | | | | | | | resize() causes the vector to expand and zero out the added members to the vector, however we can avoid this zeroing by using assign(). Given we have the pointer to the data we want to copy, we can calculate the end pointer and directly copy the range of data without the need to perform the resize() beforehand.
| * gl_rasterizer_cache: Make pointer const in LoadGLBuffer()Lioncash2018-08-091-1/+1
| | | | | | | | | | This is only ever read from, so we can make the data it's pointing to const.
* | Implement BC5/DXN2 (#996)Khangaroo2018-08-091-12/+14
|/ | | - Used by Kirby Star Allies.
* gl_rasterizer_cache: Avoid superfluous surface copies.bunnei2018-08-061-4/+10
|
* Implement RGB32F PixelFormat (#886) (used by Go Vacation)greggameplayer2018-08-021-3/+6
|
* Implement R16_G16Unknown2018-07-261-13/+25
| | | | | | | | | | | | | | | | | | correct trailing white spaces Delete tabs correct placement Add RG16F & RG16UI & RG16I & RG16S PixelFormats Return correct data according to changes done previously correct PixelFormat declaration correct coding style error correct coding style error part 2 correct RG16S Declaration error correct alignment
* GPU: Use the right texture format for sRGBA framebuffers.Subv2018-07-251-3/+6
|
* GPU: Implemented the Z32_S8_X24 depth buffer format.Subv2018-07-251-1/+4
|
* GPU: Implemented the R16 and R16F texture formats.Subv2018-07-241-1/+6
|
* GPU: Implement texture format R32F.Subv2018-07-241-2/+5
|
* gl_rasterizer_cache: Implement RenderTargetFormat RG32_FLOAT.bunnei2018-07-241-3/+5
|
* gl_rasterizer_cache: Implement RenderTargetFormat RGBA32_FLOAT.bunnei2018-07-241-3/+7
|
* gl_rasterizer_cache: Implement RenderTargetFormat BGRA8_UNORM.bunnei2018-07-241-4/+6
|
* gl_rasterizer_cache: Blit surfaces on recreation instead of flush and load.bunnei2018-07-221-2/+83
|
* gl_rasterizer_cache: Use GPUVAddr as cache key, not parameter set.bunnei2018-07-221-25/+16
|
* gl_rasterizer_cache: Use zeta_width and zeta_height registers for depth buffer.bunnei2018-07-221-8/+8
|
* core: Don't construct instance of Core::System, just to access its live instanceLioncash2018-07-191-1/+1
| | | | | | | | | This would result in a lot of allocations and related object construction, just to toss it all away immediately after the call. These are definitely not intentional, and it was intended that all of these should have been accessing the static function GetInstance() through the name itself, not constructed instances.
* gl_rasterizer_cache: Implement texture format G8R8.bunnei2018-07-151-5/+26
|
* Merge pull request #665 from bunnei/fix-z24-s8bunnei2018-07-151-1/+2
|\ | | | | gl_rasterizer_cache: Fix incorrect offset in ConvertS8Z24ToZ24S8.
| * gl_rasterizer_cache: Fix incorrect offset in ConvertS8Z24ToZ24S8.bunnei2018-07-151-1/+2
| |
* | gl_rasterizer_cache: Implement depth format Z16_UNORM.bunnei2018-07-151-1/+4
|/
* GPU: Implemented the BC7U texture format.Subv2018-07-071-3/+7
| | | | Note: Our version of glad exports GL_COMPRESSED_RGBA_BPTC_UNORM as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, maybe it's time we update it.
* GPU: Implemented the 32 bit float depth buffer format.Subv2018-07-041-2/+4
|
* GPU: Only configure the used framebuffers during clear.Subv2018-07-041-7/+27
| | | | Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point.
* gl_rasterizer_cache: Implement PixelFormat S8Z24.bunnei2018-07-031-11/+73
|
* Rename logging macro back to LOG_*James Rowe2018-07-031-3/+3
|
* Merge pull request #608 from Subv/depthbunnei2018-07-031-20/+29
|\ | | | | GPU: Implemented the depth buffer and depth test + culling
| * GPU: Implemented the Z24S8 depth format and load the depth framebuffer.Subv2018-07-021-20/+29
| |
* | Merge pull request #604 from Subv/invalid_texturesbunnei2018-07-021-0/+5
|\ \ | |/ |/| GPU: Ignore invalid and disabled textures when drawing.
| * GPU: Ignore disabled textures and textures with an invalid address.Subv2018-07-021-0/+5
| |
* | GPU: Implemented the RGBA32_UINT rendertarget format.Subv2018-06-301-4/+7
| |
* | GLCache: Specify the component type along the texture type in the format tuple.Subv2018-06-301-17/+21
|/
* gl_rasterizer_cache: Only dereference color_surface/depth_surface if valid.bunnei2018-06-291-2/+6
|
* gl_rasterizer_cache: Implement caching for texture and framebuffer surfaces.bunnei2018-06-271-7/+109
| | | | | | gl_rasterizer_cache: Improved cache management based on Citra's implementation. gl_surface_cache: Add some docstrings.
* gl_rasterizer_cache: Various fixes for ASTC handling.bunnei2018-06-271-29/+34
|
* gl_rasterizer_cache: Use SurfaceParams as a key for surface caching.bunnei2018-06-271-30/+39
|
* gl_rasterizer: Implement AccelerateDisplay to forward textures to framebuffers.bunnei2018-06-271-0/+26
|
* gl_rasterizer_cache: Cache size_in_bytes as a const per surface.bunnei2018-06-271-9/+12
|
* gl_rasterizer_cache: Refactor to make SurfaceParams members const.bunnei2018-06-271-39/+24
|
* gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces.bunnei2018-06-271-1128/+134
|
* Merge pull request #593 from bunnei/fix-swizzlebunnei2018-06-271-1/+1
|\ | | | | gl_state: Fix state management for texture swizzle.
| * gl_state: Fix state management for texture swizzle.bunnei2018-06-261-1/+1
| |
* | gl_rasterizer_cache: Fix inverted B5G6R5 format.bunnei2018-06-261-1/+1
|/
* Build: Fixed some MSVC warnings in various parts of the code.Subv2018-06-201-1/+1
|
* gl_rasterizer: Implement texture format ASTC_2D_4X4.bunnei2018-06-181-1/+27
|
* gl_rasterizer_cache: Loosen things up a bit.bunnei2018-06-181-26/+8
|
* GLCache: Align compressed texture sizes to their compression ratio, and then align that compressed size to the block height for tiled textures.Subv2018-06-081-2/+7
| | | | This fixes issues with retrieving non-block-aligned tiled compressed textures from the cache.
* GLCache: Use the full uncompressed size when blitting from one texture to another.Subv2018-06-071-3/+6
| | | | This avoids the problem of only copying a tiny piece of the textures when they are compressed.
* GLCache: Simplify the logic to copy from one texture to another in BlitTextures.Subv2018-06-071-53/+3
| | | | | | We now use glCopyImageSubData, this should avoid errors with trying to attach a compressed texture as a framebuffer's color attachment and then blitting to it. Maybe in the future we can change this to glCopyTextureSubImage which only requires GL_ARB_direct_state_access.
* GPU: Implemented the R11FG11FB10F texture and rendertarget formats.Subv2018-06-061-7/+12
|
* GLCache: Corrected a mismatch between storing compressed sizes and verifying the uncompressed alignment in GetSurface.Subv2018-06-041-1/+2
|
* GPU: Implemented the DXN1 (BC4) texture format.Subv2018-06-021-2/+4
|
* gl_rasterizer_cache: Assert that component type is UNorm or format is RGBA16F.bunnei2018-05-311-1/+2
|
* gl_rasterizer_cache: Implement PixelFormat RGBA16F.bunnei2018-05-311-3/+5
|
* Merge pull request #483 from bunnei/sonicSebastian Valle2018-05-301-1/+1
|\ | | | | Several GPU fixes to boot Sonic Mania
| * gl_rasterize_cache: Invert order of tex format RGB565.bunnei2018-05-301-1/+1
| |
* | GPU: Implemented the R8 texture format (0x1D)Subv2018-05-301-2/+4
|/
* GPU: Implemented the A1B5G5R5 texture format (0x14)Subv2018-05-271-2/+5
|
* gl_rasterizer_cache: Use CHAR_BIT for bpp conversions instead of 8.bunnei2018-04-251-3/+3
|
* gl_rasterizer_cache: Use GPU PAGE_BITS/SIZE, not CPU.bunnei2018-04-251-5/+5
|
* gl_rasterizer_cache: Use new logger.bunnei2018-04-251-4/+4
|
* gl_rasterizer_cache: Add a function for finding framebuffer GPU address.bunnei2018-04-251-0/+27
|
* gl_rasterizer_cache: Handle compressed texture sizes.bunnei2018-04-251-20/+17
|
* gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei2018-04-251-24/+39
|
* memory_manager: Make GpuToCpuAddress return an optional.bunnei2018-04-241-2/+2
|
* memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.bunnei2018-04-241-2/+2
|
* GPU: Implement the A2BGR10 texture format.Subv2018-04-221-3/+5
|
* Merge pull request #375 from lioncash/headerbunnei2018-04-211-2/+0
|\ | | | | opengl: Remove unnecessary header inclusions
| * opengl: Remove unnecessary header inclusionsLioncash2018-04-211-2/+0
| |
* | gl_rasterizer_cache: Make MatchFlags an enum classLioncash2018-04-211-4/+9
|/ | | | Prevents implicit conversions and scope pollution.
* math_util: Remove the Clamp() functionLioncash2018-04-201-4/+4
| | | | | C++17 adds clamp() to the standard library, so we can remove ours in favor of it.
* GPU: Add support for the DXT23 and DXT45 compressed texture formats.Subv2018-04-191-24/+11
|
* GPU: Implemented the B5G6R5 format.Subv2018-04-191-5/+10
|
* GLCache: Added boilerplate code to make supporting configurable texture component types.Subv2018-04-181-9/+23
| | | | For now only the UNORM type is supported.
* GLCache: Unify texture and framebuffer formats when converting to OpenGL.Subv2018-04-181-13/+6
|
* GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8.Subv2018-04-181-3/+3
|
* GLCache: Take into account the texture's block height when caching and unswizzling.Subv2018-04-181-42/+40
|
* GPU: Allow using a configurable block height when unswizzling textures.Subv2018-04-181-1/+10
|
* renderer_opengl: Use OGLProgram instead of OGLShader.bunnei2018-04-141-1/+1
|
* Fix clang format issuesJames Rowe2018-04-071-1/+1
|
* GLCache: Specialize the MortonCopy function for the DXT1 texture format.Subv2018-04-071-1/+15
| | | | It will now use the UnswizzleTexture function instead of the MortonCopyPixels128, which doesn't seem to work for textures.
* GLCache: Implemented GetTextureSurface.Subv2018-04-071-3/+28
|
* GLCache: Support uploading compressed textures to the GPU.Subv2018-04-071-5/+17
| | | | Compressed texture formats like DXT1, DXT2, DXT3, etc will use this to ease the load on the CPU.
* GL: Remove remaining references to 3DS-specific pixel formatsSubv2018-04-071-83/+22
|
* RasterizerCache: Remove 3DS-specific pixel formats.Subv2018-04-071-12/+2
| | | | We're only left with RGB8 and DXT1 for now. More will be added as they are needed.
* gl_rasterizer_cache.cpp: Update from citra to yuzuN00byKing2018-04-041-1/+1
|
* gl_rasterizer_cache: Implement UpdatePagesCachedCount.bunnei2018-03-271-7/+36
|
* gl_rasterizer_cache: Fix an ASSERT_MSG.bunnei2018-03-271-1/+1
|
* gl_rasterizer_cache: MortonCopy Switch-style.bunnei2018-03-271-72/+32
|
* gl_rasterizer_cache: Implement GetFramebufferSurfaces.bunnei2018-03-271-3/+94
|
* gl_rasterizer_cache: Add missing include for vm_manager.bunnei2018-03-231-0/+1
|
* RasterizerCacheOpenGL: FlushAll should flush full memory region.bunnei2018-03-231-1/+1
|
* LoadGLBuffer: Use bytes_per_pixel, not bits.bunnei2018-03-231-1/+2
|
* gl_rasterizer_cache: LoadGLBuffer should do a morton copy.bunnei2018-03-231-16/+5
|
* video_core: Remove usage of PAddr and replace with VAddr.bunnei2018-03-231-18/+18
|
* gl_rasterizer: Replace a bunch of UNIMPLEMENTED with ASSERT.bunnei2018-03-231-5/+5
|
* renderer_gl: Port boilerplate rasterizer code over from Citra.bunnei2018-03-201-1/+0
|
* renderer_gl: Port over gl_rasterizer_cache module from Citra.bunnei2018-03-201-0/+1362
|
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-799/+0
|
* gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is falsewwylele2017-06-101-4/+5
|
* Move screen size constants from video_core to coreYuri Kunde Schlesner2017-05-281-12/+8
| | | | | video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
* Input: remove unused stuff & clean upwwylele2017-03-011-0/+1
| | | | | | | 1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID 2. removed button handling in EmuWindow 3. removed key_map 4. cleanup #include
* VideoCore: Split framebuffer regs from Regs structYuri Kunde Schlesner2017-02-041-5/+8
|
* VideoCore: Split texturing regs from Regs structYuri Kunde Schlesner2017-02-041-2/+2
|
* Pica/Texture: Simplify/cleanup texture tile addressingYuri Kunde Schlesner2017-02-041-2/+1
|
* VideoCore: Move LookupTexture out of debug_utils.hYuri Kunde Schlesner2017-02-041-5/+6
|
* video_core: gl_rasterizer_cache.cpp removed unused type aliasKloen2017-01-301-1/+0
|
* config: Add option for specifying screen resolution scale factor.bunnei2017-01-071-3/+10
|
* core: Move emu_window and key_map into coreMerryMage2016-12-231-1/+1
| | | | * Removes circular dependences (common should not depend on core)
* OpenGL: Drop framebuffer completeness check.Markus Wick2016-12-071-14/+7
| | | | | | | This OpenGL call synchronize the worker thread of the nvidia blob. It can be verified on linux with the __GL_THREADED_OPTIMIZATIONS=1 environment variable. Those errors should not happen on tested drivers. It was used as a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=94148
* OpenGL: Non-zero stride only makes sense for linear buffersYuri Kunde Schlesner2016-12-041-5/+8
|
* OpenGL: Ensure framebuffer binding is restored if completion check failsYuri Kunde Schlesner2016-12-041-10/+7
|
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-5/+1
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-2/+2
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-98/+187
|
* VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-2/+11
|
* HWRasterizer: Texture forwardingtfarley2016-04-211-38/+661
|
* Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-051-2/+3
|
* OpenGL: Rename cache functions to better match what they actually doYuri Kunde Schlesner2015-12-071-4/+3
|
* video_core: Reorganize headersLioncash2015-09-111-1/+1
|
* OpenGL: Use Sampler Objects to decouple sampler config from texturesYuri Kunde Schlesner2015-09-031-20/+5
| | | | Fixes #978
* OpenGL: Remove ugly and endian-unsafe color pointer castsYuri Kunde Schlesner2015-09-031-1/+1
|
* gl_rasterizer_cache: Detect and ignore unnecessary texture flushes.bunnei2015-08-281-5/+13
|
* Integrate the MicroProfile profiling libraryYuri Kunde Schlesner2015-08-251-0/+5
| | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view.
* OpenGL: Fix state tracking in situations with reused object handlesYuri Kunde Schlesner2015-08-061-0/+1
| | | | | | | | | | | | If an OpenGL object is created, bound to a binding using the state tracker, and then destroyed, a newly created object can be assigned the same numeric handle by OpenGL. However, even though it is a new object, and thus needs to be bound to the binding again, the state tracker compared the current and previous handles and concluded that no change needed to be made, leading to failure to bind objects in certain cases. This manifested as broken text in VVVVVV, which this commit fixes along with similar texturing problems in other games.
* Rasterizer/GL: Set the border color when binding a texture.Subv2015-07-231-2/+9
|
* GPU: Added registers for min and mag texture filters and implemented them in the hw renderer.Subv2015-07-211-3/+2
|
* Move video_core/math.h to common/vector_math.harchshift2015-05-301-1/+1
| | | | The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
* OpenGL renderertfarley2015-05-231-0/+77