TellowKrinkle
0d4a5274f1
CMake: Remove custom SDL2 find script
...
It doesn't properly set the include paths for macos framework builds of SDL, and SDL has had its own find script since 2.0.10
2023-03-30 21:17:10 -05:00
TellowKrinkle
38b8547055
CMake: Enable CMP0099
...
Allows INTERFACE_LINK_OPTIONS to propagate through private dependencies, required by MacOS framework builds of SDL2
2023-03-30 21:16:27 -05:00
TellowKrinkle
f25a0b43b6
VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS)
2023-02-14 18:25:33 +01:00
TellowKrinkle
600ad5f498
VideoCommon: Better logic op invert approximation
2023-01-30 14:04:37 -06:00
TellowKrinkle
07e98c7790
CMake: Use imported target for fmt in tests
...
This properly adds the header include paths when using system fmt
2023-01-29 14:37:54 -06:00
TellowKrinkle
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
TellowKrinkle
1119a9ba32
VideoCommon: Don't create pipelines with no render targets
...
Some backends don't like it when you do that
2023-01-29 14:35:23 -06:00
TellowKrinkle
7413be1487
VideoCommon: Add configuration option for CPUCull
2023-01-25 02:21:56 -06:00
TellowKrinkle
a0e6d7c173
VideoCommon: Explicitly disable fp_contract for CPUCull
2023-01-25 02:21:56 -06:00
TellowKrinkle
1be0149146
VideoCommon: Cull vertices on the CPU
2023-01-25 02:21:56 -06:00
TellowKrinkle
b170ef9651
VideoCommon: Add class for quickly transforming and culling vertices on the CPU
2023-01-25 02:21:56 -06:00
TellowKrinkle
8659de4d71
InputCommon:QuartzKB&M: Fix mouse y coordinates
...
Cocoa uses a different coordinate system from Carbon (Carbon's origin is the top left while Cocoa's is the bottom left)
2022-12-31 23:42:11 -06:00
TellowKrinkle
ffb73f43e1
VideoBackends:Metal: Fix min/max lod when setting non-zero-based samplers
2022-11-30 21:11:37 -06:00
TellowKrinkle
e3cc42069f
VideoBackends:OGL: Creating vertex formats shouldn't unbind anything
2022-11-28 21:28:24 -06:00
TellowKrinkle
db8f08b2bb
Externals: Update SDL to 2.26.0
2022-11-24 15:33:42 -06:00
TellowKrinkle
72eadc6520
InputCommon:SDL: Add SDL 2.26 left and right motion inputs
2022-11-24 15:12:07 -06:00
TellowKrinkle
37a51f1d09
VideoCommon: Add an option to disable mipmaps
...
Needed by M1 fifoci to work around a minor non-determinism bug
2022-11-07 22:18:56 -06:00
TellowKrinkle
d9ed9ae331
VideoCommon: Zero PortableVertexDeclarations on initialization
...
Fixes an issue where the default initializer wouldn't initialize padding, making for fun non-determinism
2022-11-05 02:02:53 -05:00
TellowKrinkle
83ca1ad8a6
VideoBackends:Metal: Headless render support
2022-11-03 02:35:24 -05:00
TellowKrinkle
fa8134deda
VideoBackends:Metal: Default to presentDrawable when vsync is on
2022-10-24 17:55:30 -05:00
TellowKrinkle
1e9b6f88e4
VideoCommon: Support hot reloading of VS expand
2022-10-22 20:18:02 -05:00
TellowKrinkle
3912fa7a2e
VideoCommon: Add reasons for disabled VS expand
2022-10-22 20:18:02 -05:00
TellowKrinkle
b567f3afcf
VideoCommon: Move repeated point/line expansion code to ShaderGenCommon
2022-10-22 20:13:24 -05:00
TellowKrinkle
0a42c534c3
VideoCommon: Add configuration to prefer VS for line/point expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
1eeba6dcca
VideoBackends:D3D12: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
9624479933
VideoBackends:OGL: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
3a5901d12e
VideoBackends:Vulkan: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
678ee48bfc
VideoBackends:Metal: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
68f49df0f8
VideoCommon: Add vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
6fd933915b
VideoBackends:Vulkan: Improve backend multithreading
...
Makes the multiple threads actually able to run at the same time
2022-10-17 00:05:35 -05:00
TellowKrinkle
fd2680d8b4
VideoBackends:Metal: Use a temporary buffer for large texture uploads
2022-10-08 04:46:07 -05:00
TellowKrinkle
a13f09433c
VideoBackends:Metal: Add config option to use presentDrawable
2022-10-08 04:46:07 -05:00
TellowKrinkle
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
TellowKrinkle
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
TellowKrinkle
93ce7bf344
VideoBackends:Metal: Unroll lighting loop
2022-10-08 04:44:48 -05:00
TellowKrinkle
45ee1be6da
VideoBackends:Metal: Properly set vsync on creation
2022-10-08 04:44:48 -05:00
TellowKrinkle
274d4679ca
VideoBackends:Multiple: More GPUs with broken subgroup ops
2022-10-08 04:44:48 -05:00
TellowKrinkle
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
TellowKrinkle
1eb3aaa548
VideoCommon: Use std::array in PortableVertexDeclaration
2022-09-19 16:28:24 -05:00
TellowKrinkle
28b31b8327
VideoBackends:Vulkan: Make dynamic vertex loader optional
...
Makes it easier to disable in the future if support for VK_EXT_vertex_input_dynamic_state is added
2022-09-19 16:28:24 -05:00
TellowKrinkle
dae56a24b8
VideoBackends:D3D12: Dynamic vertex loader support
2022-09-19 16:28:24 -05:00
TellowKrinkle
936b4d5d0d
VideoBackends:Vulkan: Dynamic vertex loader support
2022-09-19 16:28:24 -05:00
TellowKrinkle
7edc8b4e79
VideoBackends:Metal: Don't set primitive on ubershaders
2022-09-19 16:28:24 -05:00
TellowKrinkle
99533d2840
VideoCommon: Add separate pipeline usage for UberShaders
2022-09-19 16:28:24 -05:00
TellowKrinkle
d289e9c51c
VideoCommon: Compile a few extra pipelines
2022-09-19 16:28:24 -05:00
TellowKrinkle
d3dae1cd7e
VideoBackends:Metal: Dynamic vertex loader support
2022-09-19 16:28:24 -05:00
TellowKrinkle
4c629c2bee
VideoCommon: Add dynamic vertex loader to ubershaders
2022-09-19 16:28:23 -05:00
TellowKrinkle
1bc133f3ae
CMake: Properly include lzma include directories
2022-08-18 21:06:57 -05:00
TellowKrinkle
048f6fac52
CMake: Properly include zstd include directories
2022-08-18 21:06:57 -05:00
TellowKrinkle
588c4bd635
InputCommon:QuarzKB&M: Use view position instead of window position
2022-08-18 16:29:43 -05:00
TellowKrinkle
798b241832
InputCommon:QuarzKB&M: Use KVO to watch window position
...
CGWindowListCreateDescriptionFromArray would block for up to ~1ms, which isn't a great thing to do on the main emulation thread
2022-08-18 16:29:43 -05:00
TellowKrinkle
b96bc4267e
InputCommon: Enable ARC for obj-c++
2022-08-12 02:09:53 -05:00
TellowKrinkle
6559c6b8ee
VideoBackends:Multiple: Grammar fixes
2022-07-21 20:44:19 -05:00
TellowKrinkle
a41345127f
VideoBackends:Metal: Remove unified memory config
...
Not worth the extra code
2022-07-21 20:44:19 -05:00
TellowKrinkle
5065767abd
VideoBackends:Metal: Avoid submitting draw calls with no vertices/indices
2022-07-21 20:44:19 -05:00
TellowKrinkle
ee3f2b8fcb
VideoBackends:Metal: Implement PerfQuery
2022-07-21 20:44:19 -05:00
TellowKrinkle
c48035908c
VideoBackends:Metal: Use unified memory path by default on all GPUs
2022-07-21 20:44:19 -05:00
TellowKrinkle
6ee0248eab
VideoBackends:Metal: MSAA support
2022-07-21 20:44:19 -05:00
TellowKrinkle
c0fd128171
VideoBackends:Metal: Use base vertex
2022-07-21 20:44:19 -05:00
TellowKrinkle
5742ccf8de
VideoBackends:Metal: Cache pipelines
...
Metal pipelines hold less stuff than Dolphin pipelines, so duplicates will appear
2022-07-21 20:44:19 -05:00
TellowKrinkle
e32213d031
VideoBackends:Metal: Create samplers on demand
2022-07-21 20:44:19 -05:00
TellowKrinkle
61705b05da
VideoBackends:Metal: FBFetch for Intel GPUs
2022-07-21 20:44:19 -05:00
TellowKrinkle
a5ef9dfd53
VideoBackends:Metal: Use DriverDetails for bugs
2022-07-21 20:44:19 -05:00
TellowKrinkle
716c0980d7
VideoBackends: Add Metal renderer
2022-07-21 20:44:19 -05:00
TellowKrinkle
88c85ce471
VideoCommon: Fix IsDualSrc check for dst blend factors
2022-07-17 20:50:53 -05:00
TellowKrinkle
89ae060214
VideoCommon: Increase uniform stream buffer size to 64mb
...
Densha De Go uses 27mb per frame, and we want enough space for the CPU to be encoding one frame while the GPU is rendering the previous
2022-07-15 18:21:50 -05:00
TellowKrinkle
fb5648541c
VideoCommon: Remove dstalpha from BlendingState
...
It's not supported by any PC graphics API, and therefore completely unused
2022-07-15 15:31:47 -05:00
TellowKrinkle
991024173e
VideoCommon: Always use fbfetch in ubershaders if available
...
Reduce the number of different pipelines needed. Also works around drivers that break when you combine fbfetch with dual source blending
2022-07-15 15:31:47 -05:00
TellowKrinkle
6ab24e6c17
VideoCommon: Better driver bug handling
...
Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader
2022-07-13 21:51:24 -05:00
TellowKrinkle
f83015649c
VideoCommon: Clear backend_info before populating
2022-07-13 02:55:54 -05:00
TellowKrinkle
6bd0fc86ba
VideoCommon: Properly mask fbfetch logic op emulation
2022-07-13 02:27:45 -05:00
TellowKrinkle
3d34a20105
Common: Fix CountTrailingZeros for weird compilers
2022-07-10 17:35:47 -05:00
TellowKrinkle
3ee4b89a46
VideoCommon: Remember to flush command buffers after multiple EFB copies
2022-07-06 18:38:05 -05:00
TellowKrinkle
f79ac768d8
VideoCommon:ShaderCache: Add const to some local variables
2022-06-17 20:14:32 -05:00
TellowKrinkle
26529a31ab
VideoCommon: Fix SSBO layout and remove associated "bug"
2022-06-16 20:26:11 -05:00
TellowKrinkle
c7892d7371
VideoCommon: Name ubershaders
2022-06-16 02:08:45 -05:00
TellowKrinkle
23c1721fbd
VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders
2022-06-16 02:08:45 -05:00
TellowKrinkle
3fe1a1a3d7
VideoCommon: Don't add garbage to shader uids in debug builds
...
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14 21:51:58 -05:00
TellowKrinkle
994210e369
InputCommon: SDL 2.0.22 init crash workaround
...
See https://github.com/libsdl-org/SDL/pull/5598
2022-06-14 21:02:45 -05:00
TellowKrinkle
25929789c1
VideoCommon: Don't pass State by inout
...
Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`. Not all Metal backends handle this mess well. In particular, it causes register spills on Intel, losing about 5% in performance.
2022-06-14 00:48:47 -05:00
TellowKrinkle
db6e928c8d
VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders
2022-06-14 00:48:47 -05:00
TellowKrinkle
7cf5547b97
CMake: Make bundled MoltenVK optional
...
Adds ~20s to incremental build time in Xcode projects
2022-06-11 16:34:33 -05:00
TellowKrinkle
26fc167a44
DiscIO: Fix creation of rvz with > 2mb chunk size
2022-06-11 16:10:32 -05:00
TellowKrinkle
e4614067b3
CMake: Respect SKIP_POSTPROCESS_BUNDLE
2022-06-11 15:46:38 -05:00
TellowKrinkle
f9c6eb7b98
InputCommon/ControllerEmu: Use more locks
...
Loading configs while another thread is messing with stuff just doesn't feel like a good idea
Hopefully fixes Wiimote Scanning Thread crashes on startup
2022-05-31 20:17:37 -05:00
Tellow Krinkle
f04f5fe930
Match path type to BundleUtilities when running fixup_bundle
...
BundleUtilities uses `ABSOLUTE`, and if you use `REALPATH` (which removes symlinks) and compile from a path that contains symlinks, BundleUtilities will complain about things not being inside the main app bundle because some paths don't match
2020-03-29 20:04:03 -05:00