Collecting
fb168f9283
fix: Corrupted Cache Cleanup
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 02:06:48 +00:00
Zephyron
29e5a963ba
revert 1274fcec3b
...
revert Merge pull request 'feature/texture-component-type-support' (#81 ) from feature/texture-component-type-support into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/81
2026-01-01 21:33:19 +00:00
Zephyron
f09951331b
feat(video-core): update shader environment to support texture component types
...
- Add ConvertSamplerComponentType conversion function
- Implement ReadTextureComponentType for Graphics/Compute/File environments
- Update Serialize/Deserialize to include texture_component_types
- Cache component types alongside texture types
This enables proper component type caching and serialization.
Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com >
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-31 16:10:06 +10:00
Zephyron
855a38ee97
video_core: Add ETC2 texture compression format support
...
Adds comprehensive support for ETC2 compressed texture formats (ETC2_RGB,
ETC2_RGBA, ETC2_RGB_PTA) in both UNORM and SRGB variants. This addresses
rendering issues in games like Hogwarts Legacy that use these formats.
Changes:
- Add ETC2 texture format enums (TextureFormat::ETC2_RGB_SRGB,
ETC2_RGBA_SRGB) and component types (SNORM_FORCE_FP16, UNORM_FORCE_FP16)
- Implement format lookup mappings for all ETC2 variants in
format_lookup_table.cpp
- Add PixelFormat enum values and block size tables for ETC2 formats
- Integrate ETC2 support into Vulkan backend with proper VkFormat mappings
- Add IsOptimalEtc2Supported() device capability check
- Update texture cache to handle ETC2 format conversion when needed
- Add ETC2 format cases to PixelFormat formatter for logging
- Improve shader environment texture handle validation with graceful
fallback for invalid handles
Fixes assertion failures for texture formats 90 and 99, enabling proper
rendering of ETC2 compressed textures using native Vulkan support.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-28 11:57:18 +10:00
Zephyron
5e16e20427
chore: update project branding to Citron
...
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-05-06 16:08:59 +10:00
Viktor Szépe
53085a45e0
Fix typos in video_core
2024-01-07 22:44:55 +00:00
Liam
9e9aed41be
shader_recompiler: use float image operations on load/store when required
2023-12-21 14:34:46 -05:00
Kelebek1
dfb7fc8293
Fix shader dumps with nvdisasm
...
skip fragment shaders when rasterizer is disabled
initialize env_ptrs
2023-08-03 15:30:27 +01:00
Kelebek1
f902cc2a2b
Fix code resize to use word size rather than byte size
2023-05-02 23:52:21 +01:00
Fernando Sahmkow
a0c697124c
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
a045e860dd
ShaderCompiler: Inline driver specific constants.
2023-01-03 16:29:25 -05:00
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
Liam
9737615948
general: fix compile for Apple Clang
2022-11-22 22:22:28 -05:00
Morph
c9bb888adf
ir/texture_pass: Use host_info instead of querying Settings::values ( #9176 )
2022-11-11 03:32:53 +01:00
Feng Chen
75596c07e0
video_core: Fix SNORM texture buffer emulating error ( #9001 )
2022-11-04 02:39:42 -04:00
bunnei
38e4382f53
Merge pull request #8858 from vonchenplus/mipmap
...
video_core: Generate mipmap texture by drawing
2022-11-03 22:21:58 -07:00
Kelebek1
752659aef3
Update 3D regs
2022-10-07 14:13:45 +01:00
Feng Chen
c864cb5772
Merge branch 'master' into mipmap
2022-09-20 11:56:43 +08:00
FengChen
9a95c7fa14
video_core: Generate mipmap texture by drawing
2022-09-20 11:55:43 +08:00
Morph
9533365486
style: General style changes to match with the rest of the codebase
2022-08-31 08:51:47 -04:00
FengChen
b2a6dde438
video_code: support rectangle texture
2022-08-25 12:45:58 +08:00
Liam
084d7d6b01
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
Liam
709d7fd92c
GCC 12 fixes
2022-04-28 16:50:34 -04:00
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
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.
2022-04-23 05:55:32 -04:00
ameerj
1bc7d61b57
video_core: Reduce unused includes
2022-03-19 15:01:31 -04:00
Narr the Reg
41bbb31af4
video_core: Remove unnecesary maybe_unused flag
2022-01-04 21:25:47 -06:00
Fernando Sahmkow
f58ee3f15f
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-04 02:39:00 +01:00
ameerj
427bf76e62
gpu: Migrate implementation to the cpp file
2021-10-03 00:35:57 -04:00
Morph
e67463df24
shader_environment: Add missing <algorithm> include
2021-09-11 17:19:16 -04:00
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
7dafa96ab5
shader: Rework varyings and implement passthrough geometry shaders
...
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
395bed3a0a
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
ReinUsesLisp
5befc0bf87
shader_environment: Fix local memory size calculations
2021-07-22 21:51:35 -04:00
ameerj
15bdd27cac
shader_environment: Add shader_local_memory_crs_size to local memory size
...
Fixes DOOM 2016 missing local memory
2021-07-22 21:51:35 -04:00
ReinUsesLisp
d621e96d0d
shader: Initial OpenGL implementation
2021-07-22 21:51:30 -04:00
ReinUsesLisp
025b20f96a
shader: Move pipeline cache logic to separate files
...
Move code to separate files to be able to reuse it from OpenGL. This
greatly simplifies the pipeline cache logic on Vulkan.
Transform feedback state is not yet abstracted and it's still
intrusively stored inside vk_pipeline_cache. It will be moved when
needed on OpenGL.
2021-07-22 21:51:29 -04:00