summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_graphics.cpp
AgeCommit message (Collapse)Author
2023-06-03android: native: Add support for custom Vulkan driver loading.bunnei
2023-05-07yuzu-qt/config: Add option to disable compute on Intellat9nq
This option is only visible if an Intel GPU using the proprietary driver is found during Vulkan device enumeration. configure_graphics: More directly get driver id Vulkan::Device does quite a bit more than we need just to see the driver ID here.
2023-05-03qt_common: Remove yuzu prefixlat9nq
2023-05-02configure_graphics: No there isn't a hyphen in VSynclat9nq
Most sources seem to suggest VSync and not V-Sync
2023-05-02configure_graphics: Clean up includes [IWYU]lat9nq
2023-05-02configure_graphics: Actively find present modeslat9nq
When Vulkan devices are enumerated, this also determines the available present modes for each device, maps them to a vector, and gives those options to the user. OpenGL options are limited to On/Off. Required creating a VkSurfaceKHR during device enumeration, which may or may not be desireable. For the sake of a less confusing UI. Also fixes a bug where if a graphics device disappears on the host, we don't try and select the non-existant devices. configure_graphics: Remove vsync runtime lock for Vulkan configure_graphics: Recommend Mailbox present mode configure_graphics: Fix type-limits warning configure_graphics: Clean up includes configure_graphics: Add tooltip
2023-05-02configuration: Expose separate swap present modeslat9nq
Previously, yuzu would try and guess which vsync mode to use given different scenarios, but apparently we didn't always get it right. This exposes the separate modes in a drop-down the user can select. If a mode isn't available in Vulkan, it defaults to FIFO.
2022-12-06configure_graphics: Make SPIRV backend string translatableLioncash
The parenthetical needs to be translatable, like with GLASM
2022-12-03Merge pull request #9344 from liamwhite/nullbunnei
video_core: add null backend
2022-12-02Merge pull request #9303 from liamwhite/new-vulkan-initMatías Locatti
Vulkan: update initialization
2022-11-28video_core: add null backendLiam
2022-11-27Vulkan: update initializationLiam
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-25configure_graphics: Implement custom FSR Sharpening settinglat9nq
2022-11-24FSR Sharpening Slider part 1 - only a global sliderMatías Locatti
2022-10-07configure_graphics: Fix graphics API selection when a game is runningMorph
The graphics API setting should not be changed when a game is running.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda
[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 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-10yuzu: Simplify broken Vulkan handlinglat9nq
2022-06-04configure_graphics: Remove unused includelat9nq
2022-05-30yuzu-qt: Make has_broken_vulkan only for crasheslat9nq
Being able to catch and handle a Vulkan exception is not what this is for.
2022-05-30yuzu-qt: Attempt to workaround broken Vulkan installationslat9nq
This does a few things in order to make the default setting Vulkan workable. - When yuzu boots, it just opens the Vulkan library. - If it works, all good and we continue with Vulkan as the default. - If something breaks, a new file in the config directory will be left behind (this is deleted normally). - If Vulkan is not working, has_broken_vulkan is set to true. - The first time this happens, a warning is displayed to notify the user. - This forces use of OpenGL, and Vulkan cannot be selected. - The Shader Backend selector is made accessible for use in custom configurations. - To disable has_broken_vulkan, the user needs to press a button in Graphics Configuration to manually run the Vulkan device enumeration.
2022-03-20yuzu: Reduce unused includesameerj
2021-11-16Frontend: Add anti-aliasing method settingMarshall Mohror
2021-11-16video_core,yuzu: Move UpdateRescalingInfo call to video_corelat9nq
This only needs to happen once per game boot, so we can just call it during CreateGPU and be done with it, avoiding the need to call it in the frontends.
2021-11-16Renderer: Implement Bicubic and ScaleForce filters.Fernando Sahmkow
2021-11-16Settings: Add resolution scaling to settings.Fernando Sahmkow
2021-10-15configuration: Use std::make_unique instead of operator new for uiMorph
2021-10-07configuration: Add const qualifier where ablelat9nq
2021-10-07yuzu qt: Remove global system instances from config, WaitTree, mainlat9nq
2021-08-16configure_graphics: Add GPU nvdec decoding as an optionameerj
Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference. Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com>
2021-07-28Merge pull request #6700 from lat9nq/fullscreen-enumbunnei
general: Implement FullscreenMode enumeration
2021-07-26configure_graphics: reword GLASM optionVamsi Krishna
Change wording to explain that GLASM is actually short for Assembly Shaders
2021-07-25Merge branch 'master' into fullscreen-enumlat9nq
2021-07-23general: Implement FullscreenMode enumerationlat9nq
Prevents us from using an unclear 0 or 1 to describe the fullscreen mode.
2021-07-22configure_graphics: Mark SPIR-V as Experimental, Mesa onlylat9nq
2021-07-22configure_graphics: Re-order vulkan device populatinglat9nq
2021-07-22general: Add setting shader_backendlat9nq
GLASM is getting good enough that we can move it out of advanced graphics settings. This removes the setting `use_assembly_shaders`, opting for a enum class `shader_backend`. This comes with the benefits that it is extensible for additional shader backends besides GLSL and GLASM, and this will work better with a QComboBox. Qt removes the related assembly shader setting from the Advanced Graphics section and places it as a new QComboBox in the API Settings group. This will replace the Vulkan device selector when OpenGL is selected. Additionally, mark all of the custom anisotropic filtering settings as "WILL BREAK THINGS", as that is the case with a select few games.
2021-07-08configure_graphics: Use u8 for bg_color valuesameerj
2021-06-15configure_graphics: Add Accelerate ASTC decoding settingameerj
2021-05-15configuration: Simplify applying per-game settingslat9nq
Originally, every time we add a per-game setting, we'd have to guard for it when setting it on the global config, and use a specific function to do it for the per-game config. This moves the global check into the ApplyPerGameSetting function so that we can use it for changing both the global and per-game states. Less work for the programmer.
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-06configure_graphics: Add Borderless Windowed fullscreen modeMorph
The borderless windowed fullscreen mode solves several issues with the presentation of the overlay dialogs and on-screen keyboard in exclusive fullscreen mode, and also has other benefits such as smoother gameplay, lower latency and a significant reduction in screen tearing. Co-authored-by: Its-Rei <kupfel@gmail.com>
2021-04-04configure_graphics: Prevent stack-use-after-scopelat9nq
Address Sanitizer reports stack-use-after-scope on line 231 `vulkan_devices.push_back(QString::fromStdString(name));`. Instead of using a pointer, copy the string into a std::string and use that, instead.
2021-02-13vulkan_wrapper: Pull Windows symbolsReinUsesLisp
2021-02-13gpu: Report renderer errors with exceptionsReinUsesLisp
Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
2020-12-24cmake: Always enable VulkanReinUsesLisp
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-11-04core/settings: Move configuring_global behind an APILioncash
Rather than have directly modified global state here, we can make it an implementation detail and have an interface that changes are queried through.
2020-10-26video_core: NVDEC Implementationameerj
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-08-14configuration_shared: Simplify name lookup in highlighting functionsLioncash
We can query the given object name directly from the widget itself. This removes any potential for forgetting to change the name if the widget gets renamed and makes the API much simpler (just pass in the widget, and not worry about its name).
2020-07-19configuration: Use forward declares and remove extraneous structslat9nq
2020-07-19clang-formatlat9nq