aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/surface.h
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
* [video_core] fix odr violation in formatter for pixelFormat (#3504)lizzie2026-05-181-1/+10
| | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3504 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [vk, opengl] recognize and use ETC2 (if available) textures natively (#3237)lizzie2026-05-151-2/+7
| | | | | | | | | | 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>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [vk, opengl] macro-ify PixelSurface and SurfaceFormat lists (#3060)lizzie2025-12-301-456/+140
| | | | | | | | | | | | | | | general sanity checks for both vk and opengl to see i didn't mess up any format and/or introduce regressions likely not, thanks `paste -d" "` for existing :) Signed-off-by: lizzie lizzie@eden-emu.dev Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3060 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [vk] copy incompatible alpha patch 1.5(2) (#123)lizzie2025-07-261-0/+2
| | | | | | | | 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-1/+1
|
* Implement X8_D24 formatKelebek12023-10-061-0/+4
|
* video_core: Add BCn decoding supportGPUCode2023-06-271-0/+2
|
* GPU: implement missing ASTCFernando Sahmkow2023-05-031-0/+12
|
* GPU: Implement additional render target formats.Fernando Sahmkow2022-11-241-0/+4
|
* VideoCore: Implement formats needed for N64 emulation.Fernando Sahmkow2022-10-061-4/+4
|
* Texture Cache: Add ASTC 10x5 Format.Fernando Sahmkow2022-10-061-0/+8
|
* 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/+4
| | | | - Used by Monster Hunter Rise Update 10.0.2
* video_core/surface: Use u8 for PixelFormat block tablesMorph2022-05-131-3/+3
| | | | Using this smaller type saves 33280 bytes in the compiled executable.
* video_core: implement formats for N64 emulationFernando Sahmkow2022-04-141-0/+8
|
* hle: nvflinger: Migrate android namespace -> Service::android.bunnei2022-03-241-1/+1
|
* hle: nvflinger: Move PixelFormat to its own header.bunnei2022-03-241-1/+1
|
* video_core: Add S8_UINT stencil formatMorph2021-11-171-3/+11
|
* Vulkan Rasterizer: Fix clears on integer textures.FernandoS272021-11-161-0/+4
|
* vk_texture_cache: Use nearest neighbor scaling when availableameerj2021-11-161-0/+2
|
* Reaper: Address Feedback.Fernando Sahmkow2021-06-161-0/+2
|
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-137/+15
| | | | | | | | | | | | | | 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: Rearrange pixel format namesReinUsesLisp2020-07-131-400/+400
| | | | | | 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-8/+15
|
* video_core: Fix B5G6R5_UNORM render target formatReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RGBA32_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RGBA32_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RGBA16_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RGBA8_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RG32_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement RG8_SINT render target and fix RG8_UINTReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement R8_SINT render targetReinUsesLisp2020-07-131-0/+5
|
* video_core: Implement R8_SNORM render targetReinUsesLisp2020-07-131-0/+5
|
* video_core/surface: Remove explicit values on PixelFormat's definitionReinUsesLisp2020-07-131-80/+80
|
* texture: Implement R8G8UIMorph2020-04-301-37/+42
| | | | - Used by The Walking Dead: The Final Season
* video_core: Use native ASTC when availableReinUsesLisp2020-04-011-97/+0
|
* video_core: Implement RGBA16_SNORMReinUsesLisp2020-03-121-68/+74
| | | | Implement RGBA16_SNORM with the current API. Nothing special here.
* texture: Implement R32IReinUsesLisp2020-02-151-33/+39
|
* texture_cache: Use a table instead of switch for texture formatsReinUsesLisp2019-11-141-5/+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-15/+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.
* Video_Core: Implement texture format E5B9G9R9_SHAREDEXP.Fernando Sahmkow2019-10-271-5/+11
| | | | | This commit implements the E5B9G9R9 Texture format into the general system and OpenGL backend.
* Surfaces: Implement R4G4B4A4U format.Fernando Sahmkow2019-10-091-23/+29
|
* Surfaces: Implement ASTC 6x6 10x10 12x12 8x6 6x5Fernando Sahmkow2019-10-091-70/+130
|
* video_core: Implement RGBX16F PixelFormatFearlessTobi2019-09-221-22/+28
|
* video_core/surface: Add function to detect sRGB surfacesReinUsesLisp2019-09-131-0/+2
| | | | | This is required for proper conversion to RGBA8_UNORM or RGBA8_SRGB surfaces when a backend can target both native and converted ASTC.
* texture_cache: Style changesReinUsesLisp2019-06-291-9/+9
|
* video_core/surface: Address feedbackReinUsesLisp2019-06-241-2/+2
|
* texture_cache: Style and CorrectionsFernando Sahmkow2019-06-201-64/+64
|