Commit Graph
9773 Commits
Author SHA1 Message Date
GPUCodeandGitHub 30fcdc5474 renderer_vulkan: Misc fixes (#6974)
* vk_platform: Check if library was loaded

* pica_to_vk: Dont crash on unknow blend equation
2023-09-15 00:21:12 +03:00
Steveice10andGitHub ee3eab5054 ci: Re-enable macOS artifact upload. (#6646) 2023-09-12 15:33:23 -07:00
dfa2fd0e0d Add vulkan backend (#6512)
* code: Prepare frontend for vulkan support

* citra_qt: Add vulkan options to the GUI

* vk_instance: Collect tooling info

* renderer_vulkan: Add vulkan backend

* qt: Fix fullscreen and resize issues on macOS. (#47)

* qt: Fix bugged macOS full screen transition.

* renderer/vulkan: Fix swapchain recreation destroying in-use semaphore.

* renderer/vulkan: Make gl_Position invariant. (#48)

This fixes an issue with black artifacts in Pokemon games on Apple GPUs.
If the vertex calculations differ slightly between render passes, it can
cause parts of model faces to fail depth test.

* vk_renderpass_cache: Bump pixel format count

* android: Custom driver code

* vk_instance: Set moltenvk configuration

* rasterizer_cache: Proper surface unregister

* citra_qt: Fix invalid characters

* vk_rasterizer: Correct special unbind

* android: Allow async presentation toggle

* vk_graphics_pipeline: Fix async shader compilation

* We were actually waiting for the pipelines regardless of the setting, oops

* vk_rasterizer: More robust attribute loading

* android: Move PollEvents to OpenGL window

* Vulkan does not need this and it causes problems

* vk_instance: Enable robust buffer access

* Improves stability on mali devices

* vk_renderpass_cache: Bring back renderpass flushing

* externals: Update vulkan-headers

* gl_rasterizer: Separable shaders for everyone

* vk_blit_helper: Corect depth to color convertion

* renderer_vulkan: Implement reinterpretation with copy

* Allows reinterpreteration with simply copy on AMD

* vk_graphics_pipeline: Only fast compile if no shaders are pending

* With this shaders weren't being compiled in parallel

* vk_swapchain: Ensure vsync doesn't lock framerate

* vk_present_window: Match guest swapchain size to vulkan image count

* Less latency and fixes crashes that were caused by images being deleted before free

* vk_instance: Blacklist VK_EXT_pipeline_creation_cache_control with nvidia gpus

* Resolves crashes when async shader compilation is enabled

* vk_rasterizer: Bump async threshold to 6

* Many games have fullscreen quads with 6 vertices. Fixes pokemon textures missing with async shaders

* android: More robust surface recreation

* renderer_vulkan: Fix dynamic state being lost

* vk_pipeline_cache: Skip cache save when no pipeline cache exists

* This is the cache when loading a save state

* sdl: Fix surface initialization on macOS. (#49)

* sdl: Fix surface initialization on macOS.

* sdl: Fix render window events not being handled under Vulkan.

* renderer/vulkan: Fix binding/unbinding of shadow rendering buffer.

* vk_stream_buffer: Respect non coherent access alignment

* Required by nvidia GPUs on MacOS

* renderer/vulkan: Support VK_EXT_fragment_shader_interlock for shadow rendering. (#51)

* renderer_vulkan: Port some recent shader fixes

* vk_pipeline_cache: Improve shadow detection

* vk_swapchain: Add missing check

* renderer_vulkan: Fix hybrid screen

* Revert "gl_rasterizer: Separable shaders for everyone"

Causes crashes on mali GPUs, will need separate PR

This reverts commit d22d556d30ff641b62dfece85738c96b7fbf7061.

* renderer_vulkan: Fix flipped screenshot

---------

Co-authored-by: Steveice10 <1269164+Steveice10@users.noreply.github.com>
2023-09-13 01:28:50 +03:00
TobiasandGitHub 8f8c54201d citra_qt/config: Fix Telemetry checkbox (#6965) 2023-09-11 23:07:06 +02:00
GPUCodeandGitHub 9be4fd8b91 gl_rasterizer: Bind null surface when unit is disabled (#6967) 2023-09-11 19:34:41 +03:00
Vitor KandGitHub bbb47cd753 gles: fix crashing on mali gpus (#6956)
* gles: reorder framebuffer fetch extension directives

* Address review comments
2023-09-11 00:30:30 +03:00
GPUCodeandGitHub 0b0d3a4ac3 gpu: Correct display transfer output with vertical flip+crop lines (#6952) 2023-09-11 00:30:06 +03:00
GPUCodeandGitHub 6aa31d6ec2 video_core: Use epsilons for clip planes (#6945)
* video_core: Use epsilons for clip planes

* video_core: Add comments
2023-09-11 00:29:55 +03:00
Castor215andGitHub 3e254d01ee Add Kdevelop files to .gitignore (#6951) 2023-09-07 11:52:40 -07:00
GPUCodeandGitHub 928f352c94 renderer_gl: Use explicit bindings (#6940)
* renderer_gl: Use explicit bindings

* gl_state: Match shadow order with vulkan
2023-09-07 21:42:22 +03:00
Steveice10andGitHub e2d8eef5fa qt: Fix arguments to maintenancetool for update check. (#6946) 2023-09-04 17:25:41 -07:00
Steveice10andGitHub 9e898bca06 build: Fix Qt installer build script. (#6938) 2023-09-01 15:18:47 -07:00
GPUCodeandGitHub cab0ad50f0 gl_shader_decompiler: Fix min/max NaN edge case (#6935) 2023-08-31 13:37:53 -07:00
Steveice10andGitHub 5ad58e0605 shader: Fix shadow_texture_orthographic not being set correctly. (#6937) 2023-08-31 13:37:39 -07:00
GPUCodeandGitHub 1159e4d928 video_core: Take factors into account with min/max blending functions (#6925)
* sw_framebuffer: Take factors into account for min/max blending

* renderer_gl: Take factors into account for min/max blending

* Address review comments

* gl_shader_gen: Fix frambuffer fetch on qcom and mali

* renderer_opengl: Add fallback path for mesa

* gl_shader_gen: Avoid emitting blend emulation if minmax_factor is present
2023-08-30 21:26:28 +03:00
Steveice10andGitHub 93c7c6a995 service: Downgrade some spammy logs to trace level. (#6936) 2023-08-30 19:19:38 +02:00
Steveice10andGitHub 81a5e2355a shader: Fix address register offset behavior in GLSL. (#6920) 2023-08-28 13:23:59 -07:00
d2260bafef fix: Added padding to reset defaults button (#6926)
The button did not have enough padding, now it does!

Co-authored-by: liamwhite <liamwhite@users.noreply.github.com>
Co-authored-by: Benjamin <73490201+benjaminhalko@users.noreply.github.com>
2023-08-28 12:17:59 -07:00
GPUCodeandGitHub d1f600601d renderer_software: Multi-thread processing (#6698)
* renderer_software: Multi-thread processing

* Doubles the performance in most cases

* renderer_software: Move memory access out of the raster loop

* Profiling shows this has a significant impact
2023-08-28 01:09:23 -07:00
GPUCodeandGitHub 8b218e1b7d tev: Use primary color for previous source in first stage (#6921) 2023-08-27 23:59:32 -07:00
Steveice10andGitHub 04aeecabcf arm: Do not try to access null page table. (#6930) 2023-08-27 17:26:31 +02:00
Steveice10andGitHub df57012c50 video_core: Correct shader interpeter address register handling. (#6910) 2023-08-27 01:49:31 +03:00
GPUCodeandGitHub 61cf550d0c video_core: Avoid setting alpha tev with Dot3_RGBA8 color op (#6907)
* Further reduces unnecessary shader regenerations
2023-08-27 01:48:45 +03:00
Steveice10andGitHub f2e0748a22 build: Enable link time optimization in release builds. (#6887) 2023-08-26 11:15:13 -07:00
Steveice10andGitHub edf157200d qt: Support updating an installed app image. (#6915) 2023-08-24 03:57:11 -07:00
GPUCodeandGitHub a94297922b shader_interpreter: Fix control flow edge cases and implement break/breakc (#6844) 2023-08-21 18:12:46 -07:00
TGP17andGitHub 894c1c85a5 Include Citra Icon in release (#6905) 2023-08-21 22:34:54 +02:00
m4xwandGitHub e129f07047 [ShaderGen] Avoid setting lighting states if components aren't enabled (#6895)
* [ShaderGen] Avoid setting lighting states if components aren't enabled

* [Squash] clang-format
2023-08-20 21:12:38 -07:00
Steveice10andGitHub cf54210f42 ci: Remove compatibility artifact naming for releases. (#6647) 2023-08-20 16:41:13 -07:00
Steveice10andGitHub b2092de871 build: Fix web service functionality. (#6903) 2023-08-19 17:34:35 -07:00
Steveice10andGitHub 6ddf4b241f renderer/vulkan: Emulate custom border colors in shaders when unavailable. (#6878) 2023-08-17 22:22:25 +02:00
Vitor KandGitHub f3d92dd3b8 Fix post processing shaders crashing on Intel GPUs (#6890) 2023-08-17 22:17:24 +02:00
Vitor KandGitHub 1a6860f35c opengl: disable ClearTexture on Intel drivers (#6879) 2023-08-17 22:16:51 +02:00
GPUCodeandGitHub bc0bf4d3d2 (gl/vk)_shader_gen: Use floor instead of int cast (#6885) 2023-08-17 22:16:28 +02:00
Steveice10andGitHub 1d3bf64f13 qt: Make input configuration scrollable. (#6881) 2023-08-16 19:27:01 -07:00
Steveice10andGitHub c3609785ff build: Add flag for disabling bundling target. (#6845) 2023-08-16 19:26:52 -07:00
Steveice10andGitHub 66404a669f build: Fixes for a few minor issues (#6886) 2023-08-14 09:47:17 -07:00
Steveice10andGitHub 6a1fd38063 build: Use new glslang tool name. (#6889) 2023-08-13 15:45:22 -07:00
Steveice10andGitHub a27971e723 service/cecd: Fix buffer writes in ReadData. (#6880) 2023-08-11 10:31:24 -07:00
Vitor KandGitHub eb8d2941c9 savestates: save the build name to be displayed when there's a version mismatch (#6493)
* savestates: add a build_name field to the header

* savestates: display build name on save/load menu

* savestates: add zero member to header just in case of UB from an older save state

* savestates: add legacy hash lookup

* savestate_data: update hash database
2023-08-10 20:55:22 -07:00
Steveice10andGitHub af78268dd5 qt: Update Qt to 6.5.1 (#6863) 2023-08-10 14:32:51 -07:00
Steveice10andGitHub baca2bfc6b qt: Only register graphics debugger as observer if visible. (#6875) 2023-08-09 17:31:09 -07:00
Narr the RegandGitHub 33a2113b71 service: nfp: Fix size and increase timeout (#6868) 2023-08-08 14:00:53 -07:00
Daniel López GuimaraesandGitHub 1f07ab8643 http/ac: Fix failing assert and stub GetConnectingProxyEnable (#6864) 2023-08-08 14:00:42 -07:00
Steveice10andGitHub b739bd2632 qt: Fix double dialog and crash when OpenGL is selected on unsupported platform. (#6867) 2023-08-07 18:21:42 -07:00
GPUCodeandGitHub f76165d848 frame_dumper: Use jthread (#6855) 2023-08-07 18:21:28 -07:00
GPUCodeandGitHub ac78b74c45 gl_texture_runtime: Implement ARB_clear_texture (#6850) 2023-08-08 01:10:28 +03:00
GPUCodeandGitHub a478bedb12 rasterizer_cache: Bring back custom format parameter (#6873) 2023-08-08 01:10:11 +03:00
Steveice10andGitHub 6d0cd5b00e build: Expose ENABLE_SCRIPTING and ENABLE_WEB_SERVICE flags as public. (#6872) 2023-08-07 03:12:49 -07:00
GPUCodeandGitHub 5b52849f90 rasterizer_cache: Allow custom recycle (#6851)
* surface_params: Allow custom surface recycling

* rasterizer_cache: Cleanup
2023-08-06 22:59:54 +03:00