aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/surface.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [vulkan] 3rd Vulkan Global Maintenance (#4189)CamilleLaVey2026-07-091-0/+4
| | | | | | | | | | Following the philosophy on the previous Vulkan maintenance PR's, this one is reviewing the video_core to resolve VUID's related to the missing handling/ safechecks (UBO's case on missing StorageBufferAccess 8/16 bits on QCOM drivers, resulting on bad compute pipeline compiled), wiring topology representative to EDS2 configuration (following #4117), refactored the sampled image access via new memeber function for type "typeless" which adds a handling on the integer mistmatch (uint to sint, float to uint) + fixing bugs on current texture sampling (int) including the depth/stencil path resolve, maintenance to previous changes on query cache (resolving bugs from #3853), reduced the amount of binding BindVertexBufferEXT2 when a new tick/ frame is presented (with this being a reason for performance reduction on games where vertex polutes the stage, like BOTW/TOTK where grass is draw with vertex); implemented color border swizzle and color write enable for future improvements on EDS3, added initial implementation on Synchronization2 starting a path to ensure an access to VK 1.3 features safely and other smaller fixes along the road. Special Thanks: -> Mr. Smolio Gidolard (@gidoly) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4189
* [vk, opengl] recognize and use ETC2 (if available) textures natively (#3237)lizzie2026-05-151-1/+18
| | | | | | | | | | this makes it so VK and OGL backends map the NVIDIA's ETC2 into VK_FORMAT_ETC-whatever and GL_ETC-whatever remaps, instead of using the default fallback for AR8G8B8. in short, just make the ETC2 textures be submitted as ETC2 instead of being submit as A8R8G8B8. Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3237 Reviewed-by: Ghost <> Reviewed-by: crueter <crueter@eden-emu.dev>
* [vk] Exclude size equal alpha different copies from incompatible copy (#138)JPikachu2025-07-271-0/+9
| | | | | | | | | Should fix bugs in Splatoon 2 and TotK Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/138 Co-authored-by: JPikachu <jpikachu@eden-emu.dev> Co-committed-by: JPikachu <jpikachu@eden-emu.dev>
* [vk] copy incompatible alpha patch 1.5(2) (#123)lizzie2025-07-261-0/+32
| | | | | | | | Avoid copy size incompatible textures and reinterpret it instead. Uses existing logic to properly re-interpret to a compatible texture. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/123 Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* texture_cache: avoid overestimation of ASTC texture sizesLiam2024-02-111-2/+12
|
* Implement X8_D24 formatKelebek12023-10-061-0/+3
|
* video_core: Add BCn decoding supportGPUCode2023-06-271-0/+22
|
* GPU: implement missing ASTCFernando Sahmkow2023-05-031-0/+5
|
* video_core/surface: Eliminate casts in GetFormatType()Lioncash2022-11-281-11/+4
| | | | We can just compare directly and get rid of verbose casting.
* GPU: Implement additional render target formats.Fernando Sahmkow2022-11-241-1/+9
|
* Fermi2D: Implement Bilinear software filtering and address feedback.Fernando Sahmkow2022-11-241-0/+2
|
* Update 3D regsKelebek12022-10-071-7/+7
|
* Texture Cache: Add ASTC 10x5 Format.Fernando Sahmkow2022-10-061-0/+3
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
* renderer_(gl/vk): Implement ASTC_10x6_UNORMMorph2022-07-051-0/+1
| | | | - Used by Monster Hunter Rise Update 10.0.2
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-131-3/+3
|
* hle: nvflinger: Migrate android namespace -> Service::android.bunnei2022-03-241-4/+4
|
* hle: nvflinger: Move PixelFormat to its own header.bunnei2022-03-241-4/+4
|
* video_core: Add S8_UINT stencil formatMorph2021-11-171-0/+7
|
* Vulkan Rasterizer: Fix clears on integer textures.FernandoS272021-11-161-0/+47
|
* vk_texture_cache: Use nearest neighbor scaling when availableameerj2021-11-161-0/+27
|
* Reaper: Address Feedback.Fernando Sahmkow2021-06-161-0/+7
|
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-1/+1
| | | | | | | | | | | | | | 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: Remove unnecessary enum class casting in logging messagesLioncash2020-12-071-6/+6
| | | | | | | fmt now automatically prints the numeric value of an enum class member by default, so we don't need to use casts any more. Reduces the line noise a bit.
* video_core: Rearrange pixel format namesReinUsesLisp2020-07-131-114/+114
| | | | | | Normalizes pixel format names to match Vulkan names. Previous to this commit pixel formats had no convention, leading to confusion and potential bugs.
* video_core: Fix DXT4 and RGB565ReinUsesLisp2020-07-131-21/+0
|
* video_core: Fix B5G6R5_UNORM render target formatReinUsesLisp2020-07-131-1/+1
|
* video_core: Implement RGBA32_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement RGBA32_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement RGBA16_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement RGBA8_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement RG32_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement RG8_SINT render target and fix RG8_UINTReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement R8_SINT render targetReinUsesLisp2020-07-131-0/+2
|
* video_core: Implement R8_SNORM render targetReinUsesLisp2020-07-131-0/+2
|
* video_core/surface: Reorder render target to pixel format switchReinUsesLisp2020-07-131-53/+51
|
* texture: Implement R8G8UIMorph2020-04-301-0/+2
| | | | - Used by The Walking Dead: The Final Season
* video_core: Implement RGBA16_SNORMReinUsesLisp2020-03-121-0/+2
| | | | Implement RGBA16_SNORM with the current API. Nothing special here.
* video_core/surface: Add R32_SINT render target formatReinUsesLisp2020-02-251-0/+2
|
* texture_cache: Use a table instead of switch for texture formatsReinUsesLisp2019-11-141-236/+0
| | | | | | 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-141-85/+0
| | | | | | | | | 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.
* correct the implementation of RGBA16UIgreggameplayer2019-11-141-0/+2
|
* Video_Core: Implement texture format E5B9G9R9_SHAREDEXP.Fernando Sahmkow2019-10-271-0/+8
| | | | | This commit implements the E5B9G9R9 Texture format into the general system and OpenGL backend.
* Merge pull request #2966 from FernandoS27/astc-formatsRodrigo Locatti2019-10-171-0/+33
|\ | | | | Implement a series of ASTC formats and R4G4B4A4 format
| * Surfaces: Implement R4G4B4A4U format.Fernando Sahmkow2019-10-091-0/+8
| |
| * Surfaces: Implement ASTC 6x6 10x10 12x12 8x6 6x5Fernando Sahmkow2019-10-091-0/+25
| |
* | video_core/surface: Add missing break in PixelFormatFromTextureFormat()Lioncash2019-10-151-0/+1
|/ | | | Prevents fallthrough into the following case.
* video_core: Implement RGBX16F PixelFormatFearlessTobi2019-09-221-0/+3
|
* video_core/surface: Add function to detect sRGB surfacesReinUsesLisp2019-09-131-0/+20
| | | | | This is required for proper conversion to RGBA8_UNORM or RGBA8_SRGB surfaces when a backend can target both native and converted ASTC.
* renderer_opengl: Implement RGB565 framebuffer formatReinUsesLisp2019-08-211-2/+3
|