Commit Graph

61 Commits

Author SHA1 Message Date
258151fe5a Merge pull request #11523 from degasus/OGL_KHR_subgroup
VideoBackend/OGL: Prefer KHR_shader_subgroup over NV_shader_thread.
2023-02-10 04:47:20 -05:00
4b2aa948e6 VideoBackend/OGL: Prefer KHR_subgroup over NV_shader_thread.
While the NV extension is totally fine, the KHR extension should be able to support more hardware.

For NVIDIA, the hardware either supports both or neither, it just needs a driver from the last two years.
For AMD, the drivers from late 2022-12 seems to bring support for the KHR extension.
For Intel, the KHR is also supported for some years.
2023-02-09 13:27:02 +01:00
d0c6b6c9ed VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
ccf92a3e56 Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
60f2b5af7b Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
cf9a6f8477 Lint fixes 2023-02-09 18:36:20 +13:00
4422af1272 Cleanup headers 2023-02-09 18:36:20 +13:00
31cfe8250d Lint fixes 2023-02-09 18:36:20 +13:00
11de923dcb Move xfb tracking and IR scaling out of RenderBase 2023-02-09 18:36:20 +13:00
e009002411 Refactor ClearRegion
And fix bug where opengl was getting the wrong coordinates
2023-02-09 18:36:20 +13:00
c92de420ef lint: update to clang-format-13 2023-02-02 04:56:08 +01:00
e98ab0784d Merge pull request #11501 from iwubcode/abstract_texture_load_specify_layer
VideoBackends: add a way to load data into a specific level AND layer
2023-02-01 00:03:59 +13:00
3ae78b8e76 Also use events for config changed 2023-01-31 19:41:24 +13:00
eaae5b4a45 Implement AbstactGfx for Metal 2023-01-31 19:41:24 +13:00
0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
606c18210d TextureCache: Refactor with smart pointers
The whole ownership model was getting a bit of a mess, with a some
of special cases to deal with. And I'm planning to make it even more
complex in the future.
So here is some upfront work to convert it over to reference counted
pointers.
2023-01-31 18:29:47 +13:00
a2f4606d33 Merge pull request #11205 from TellowKrinkle/AutoPresent
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-30 09:01:18 +01:00
e4e425b930 VideoBackends:Metal: Assert on pipelines with no render targets
This only actually fails on specific Metal drivers, this way doing it will actually fail the CI and we'll notice
2023-01-29 14:36:28 -06:00
7bea39b39e VideoBackends: add a way to load data into a specific level AND layer, default to layer 0 2023-01-27 18:46:53 -06:00
cb0a603c72 VideoCommon: De-globalize GeometryShaderManager class. 2022-12-29 15:33:19 +01:00
50625728e0 VideoCommon: De-globalize VertexShaderManager class. 2022-12-28 15:52:29 +01:00
725bd64ec2 VideoCommon: De-globalize PixelShaderManager class. 2022-12-27 20:13:24 +01:00
05bebee802 Replace BitUtils with C++20: Counting Zeroes
With the upgrade to C++20, std::countl_zero and std::countr_zero can replace these home-spun implementations from the BitUtil.h library.
2022-12-21 04:17:00 -06:00
ffb73f43e1 VideoBackends:Metal: Fix min/max lod when setting non-zero-based samplers 2022-11-30 21:11:37 -06:00
cc5640245c Fix build errors related to formatting non-scoped enums 2022-11-23 13:45:43 -08:00
83ca1ad8a6 VideoBackends:Metal: Headless render support 2022-11-03 02:35:24 -05:00
fa8134deda VideoBackends:Metal: Default to presentDrawable when vsync is on 2022-10-24 17:55:30 -05:00
b66793194e Merge pull request #11028 from tellowkrinkle/MetalFixes
Various Metal renderer improvements
2022-10-24 15:22:37 -04:00
678ee48bfc VideoBackends:Metal: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
fd2680d8b4 VideoBackends:Metal: Use a temporary buffer for large texture uploads 2022-10-08 04:46:07 -05:00
a13f09433c VideoBackends:Metal: Add config option to use presentDrawable 2022-10-08 04:46:07 -05:00
5a1b90c7f3 VideoBackends:Metal: Explicitly disable arc
Makes it easier to enable arc elsewhere without breaking the Metal backend
2022-10-08 04:46:07 -05:00
c08de82e90 VideoBackends:Metal: Bring back unified memory config
Turns out it was helpful.  (Most improvement in ubershaders.)  This time with much better auto mode.
2022-10-08 04:46:05 -05:00
93ce7bf344 VideoBackends:Metal: Unroll lighting loop 2022-10-08 04:44:48 -05:00
45ee1be6da VideoBackends:Metal: Properly set vsync on creation 2022-10-08 04:44:48 -05:00
274d4679ca VideoBackends:Multiple: More GPUs with broken subgroup ops 2022-10-08 04:44:48 -05:00
ee692abbe1 VideoBackends:Metal: Use BitField for stuffing bits in pipeline ids
Also removes cullmode all handling, it's handled in CPU and DX11 backend doesn't specially handle it either
2022-09-20 01:45:18 -05:00
1eb3aaa548 VideoCommon: Use std::array in PortableVertexDeclaration 2022-09-19 16:28:24 -05:00
7edc8b4e79 VideoBackends:Metal: Don't set primitive on ubershaders 2022-09-19 16:28:24 -05:00
99533d2840 VideoCommon: Add separate pipeline usage for UberShaders 2022-09-19 16:28:24 -05:00
d3dae1cd7e VideoBackends:Metal: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
4c629c2bee VideoCommon: Add dynamic vertex loader to ubershaders 2022-09-19 16:28:23 -05:00
362167fde5 MTLObjectCache: Correct signature of equality operator
Not doing so produces a warning in clang:
    ISO C++20 considers use of overloaded operator '!=' (with operand types
    'Metal::DepthStencilSelector' and 'Metal::DepthStencilSelector') to be
    ambiguous despite there being a unique best viable function with
    non-reversed arguments

The underlying reason for this warning is an incorrect method signature.
2022-08-29 21:23:23 +01:00
700162b8bd MTLUtil: Include TargetConditionals 2022-07-23 17:22:11 -04:00
77f44f1600 MTLMain: Include TargetConditionals 2022-07-23 17:22:11 -04:00
b32b27ae9a MTLMain: Only compile NSView manipulation code on macOS 2022-07-23 17:22:04 -04:00
8ad7fa0313 MTLUtil: Return invalid for non-supported texture formats on non-macOS platforms 2022-07-23 13:53:31 -04:00
7edd3aff75 MTLUtil: Don't attempt to get all GPUs on non-macOS platforms 2022-07-23 13:53:22 -04:00
50d3ad58df CMakeLists: Link videometal with Foundation 2022-07-23 13:53:15 -04:00
6559c6b8ee VideoBackends:Multiple: Grammar fixes 2022-07-21 20:44:19 -05:00