citra/src/video_core
GPUCode 06f3c90cfb
Custom textures rewrite (#6452)
* common: Add thread pool from yuzu

* Is really useful for asynchronous operations like shader compilation and custom textures, will be used in following PRs

* core: Improve ImageInterface

* Provide a default implementation so frontends don't have to duplicate code registering the lodepng version

* Add a dds version too which we will use in the next commit

* rasterizer_cache: Rewrite custom textures

* There's just too much to talk about here, look at the PR description for more details

* rasterizer_cache: Implement basic pack configuration file

* custom_tex_manager: Flip dumped textures

* custom_tex_manager: Optimize custom texture hashing

* If no convertions are needed then we can hash the decoded data directly removing the needed for duplicate decode

* custom_tex_manager: Implement asynchronous texture loading

* The file loading and decoding is offloaded into worker threads, while the upload itself still occurs in the main thread to avoid having to manage shared contexts

* Address review comments

* custom_tex_manager: Introduce custom material support

* video_core: Move custom textures to separate directory

* Also split the files to make the code cleaner

* gl_texture_runtime: Generate mipmaps for material

* custom_tex_manager: Prevent memory overflow when preloading

* externals: Add dds-ktx as submodule

* string_util: Return vector from SplitString

* No code benefits from passing it as an argument

* custom_textures: Use json config file

* gl_rasterizer: Only bind material for unit 0

* Address review comments
2023-04-27 07:38:28 +03:00
..
custom_textures Custom textures rewrite (#6452) 2023-04-27 07:38:28 +03:00
debug_utils general: Use deducation guides for std::lock_guard and std::unique_lock 2019-04-07 15:14:29 +02:00
host_shaders Rasterizer refactor hotfixes (#6465) 2023-04-23 22:46:08 +03:00
rasterizer_cache Custom textures rewrite (#6452) 2023-04-27 07:38:28 +03:00
renderer_opengl Custom textures rewrite (#6452) 2023-04-27 07:38:28 +03:00
renderer_software video_core: Fix distance vector used when calculating lighting distance attenuation. (#6366) 2023-03-30 15:12:09 +03:00
shader Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
texture Resolve compilation errors related to the Color namespace change 2022-11-15 11:25:51 +01:00
CMakeLists.txt Custom textures rewrite (#6452) 2023-04-27 07:38:28 +03:00
command_processor.cpp command_processor: Resolve undefined behavior type punning 2020-04-27 15:35:21 -04:00
command_processor.h video_core serialization 2020-02-13 17:34:16 +08:00
geometry_pipeline.cpp code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
geometry_pipeline.h Fixed setting the right DSP service on deserialization 2020-02-13 17:42:10 +08:00
gpu_debugger.h code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
pica.cpp pica_state: Make use of std::array 2020-04-27 15:35:18 -04:00
pica.h Update the entire application to use the new clang format style 2018-03-09 10:54:43 -07:00
pica_state.h Separate the enums from cam/cam.h 2020-08-19 01:45:57 -03:00
pica_types.h clang-format fixes 2020-02-13 17:39:15 +08:00
precompiled_headers.h Port yuzu-emu/yuzu#9300: "CMake: Use precompiled headers to improve compile times" (#6213) 2022-12-17 16:06:38 +01:00
primitive_assembly.cpp primitive_assembly: Take triangle_handler by reference 2020-04-18 20:40:45 -04:00
primitive_assembly.h Fix savestates compatibility (#5256) 2020-04-20 16:21:37 +02:00
rasterizer_accelerated.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
rasterizer_accelerated.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
rasterizer_interface.h Sync GPU state after loading (fix FE terrain bug) 2020-04-11 10:28:52 +01:00
regs.cpp Pica/Regs: Use binary search to look up reg names 2017-02-09 00:04:24 -08:00
regs.h renderer_opengl: Header cleanup 2022-08-21 02:22:57 +03:00
regs_framebuffer.h Rasterizer cache refactor (#6375) 2023-04-21 10:14:55 +03:00
regs_lighting.h code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
regs_pipeline.h CI: fix recent build issues (#6148) 2022-10-05 18:43:07 +02:00
regs_rasterizer.h Rasterizer cache refactor (#6375) 2023-04-21 10:14:55 +03:00
regs_shader.h gl_rasterizer: Resolve truncation warnings 2020-05-01 06:08:20 -04:00
regs_texturing.h Rasterizer cache refactor (#6375) 2023-04-21 10:14:55 +03:00
renderer_base.cpp Frontend PR fixes (#6378) 2023-03-30 14:24:49 +03:00
renderer_base.h Frontend PR fixes (#6378) 2023-03-30 14:24:49 +03:00
utils.h Update the entire application to use the new clang format style 2018-03-09 10:54:43 -07:00
vertex_loader.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
vertex_loader.h VideoCore: Move Regs to its own file 2017-02-04 13:59:12 -08:00
video_core.cpp Remove remnants of separable shader setting (#6403) 2023-04-26 00:19:02 +02:00
video_core.h Remove remnants of separable shader setting (#6403) 2023-04-26 00:19:02 +02:00