Commit Graph

4601 Commits

Author SHA1 Message Date
b66793194e Merge pull request #11028 from tellowkrinkle/MetalFixes
Various Metal renderer improvements
2022-10-24 15:22:37 -04:00
1e9b6f88e4 VideoCommon: Support hot reloading of VS expand 2022-10-22 20:18:02 -05:00
3912fa7a2e VideoCommon: Add reasons for disabled VS expand 2022-10-22 20:18:02 -05:00
b567f3afcf VideoCommon: Move repeated point/line expansion code to ShaderGenCommon 2022-10-22 20:13:24 -05:00
0a42c534c3 VideoCommon: Add configuration to prefer VS for line/point expansion 2022-10-22 20:13:24 -05:00
68f49df0f8 VideoCommon: Add vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
9222956acd Merge pull request #10859 from tellowkrinkle/UniformBufferSize
VideoCommon: Increase uniform stream buffer size to 64mb
2022-10-20 17:13:31 -04:00
9aece1810c Merge pull request #10836 from iwubcode/d3d_uint_fix
VideoCommon: fix uint shader compiler error when using d3d
2022-10-18 12:12:08 -04:00
ffed23c059 Simplify saving CP state
Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0d, we can just use p.Do on it instead of manually saving each field.
2022-10-09 19:32:59 -07:00
05f3bbfa4d Include tangent/binormal cache in savestates
This theoretically matters for RS2/RS3, although in practice these games reconfigure it each frame so it shouldn't matter for savestates.
2022-10-09 16:21:49 -07:00
bc360584a3 VideoCommon: add structures to graphics mods to allow for future adding or removing parameters with less code overhead 2022-10-09 00:00:01 -05:00
da27a3e6bc Merge pull request #11095 from K0bin/misc-vulkan
Remove special treatment for Android in video settings
2022-10-08 22:24:30 +02:00
a13f09433c VideoBackends:Metal: Add config option to use presentDrawable 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
274d4679ca VideoBackends:Multiple: More GPUs with broken subgroup ops 2022-10-08 04:44:48 -05:00
e8221d7948 Common/PointerWrap: Remove DoPOD
This was added in 385d8e2b15, but became somewhat redundant with Do in 4c7bbd96e4, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-10-06 11:25:36 -07:00
4e204a9a1a VideoCommon: Remove special treatment for Android in video settings 2022-10-01 20:53:02 +02:00
779fe13e62 VideoCommon: Update EFB peek cache on draw done and tokens
Massively improves performance in Mario Galaxy on Android.
2022-10-01 18:08:38 +02:00
68eda7f887 Merge pull request #11084 from K0bin/qcom-workaround
Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom
2022-09-30 15:33:00 -04:00
81c817c54d VideoBackends:Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom driver 2022-09-30 21:13:42 +02:00
Mai
0c19a1d87c Merge pull request #11100 from Pokechu22/software-settings-merge
Use the same settings for the software renderer as other backends
2022-09-29 09:05:51 -04:00
56fce3ba8a Software: Remove dedicated texture/frame dumping infrastructure
Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
2022-09-26 18:25:54 -07:00
39569392bd VideoCommon: Add statistics for draw done and token commands 2022-09-26 16:19:54 -07:00
b7855a3a56 Merge pull request #11073 from Hibyehello/Fix-Metal-init
Add Metal as backend option with Vulkan Disabled
2022-09-23 04:21:23 +02:00
22197c09a3 Merge pull request #10781 from tellowkrinkle/UberVertexLoader
VideoCommon: Add dynamic vertex loader for ubershaders to reduce pipeline count
2022-09-20 17:14:07 -04:00
1eb3aaa548 VideoCommon: Use std::array in PortableVertexDeclaration 2022-09-19 16:28:24 -05:00
dae56a24b8 VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
99533d2840 VideoCommon: Add separate pipeline usage for UberShaders 2022-09-19 16:28:24 -05:00
d289e9c51c VideoCommon: Compile a few extra pipelines 2022-09-19 16:28:24 -05:00
4c629c2bee VideoCommon: Add dynamic vertex loader to ubershaders 2022-09-19 16:28:23 -05:00
ef13a54b0a VideoBackends - Enable Metal without Vulkan 2022-09-19 11:28:34 -05:00
d80201a57f VertexLoaderARM64: Fix direct normal+tangent+binormal with index3 set
Fixes https://bugs.dolphin-emu.org/issues/12952
2022-09-18 23:33:24 -07:00
f148de161f VertexLoaderARM64: Specify the register to use as a parameter to ReadVertex
This also means that both a register and a vertex are always specified, though right now if the register is scratch1_reg the offset is always 0.
2022-09-18 23:33:24 -07:00
ad644d5e92 VertexLoaderARM64: Merge GetAddressImm into GetVertexAddr
This way it more closely matches VertexLoaderX64, and is in general easier to understand.
2022-09-18 23:33:24 -07:00
9a290c3d50 VertexLoaderARM64: Always use unscaled load/store instructions
The source and destination offsets will always be less than 255, so we can get rid of a lot of the complexity by doing this.
2022-09-18 23:33:24 -07:00
afe5adb74d VertexLoaderARM64: Use EnumMap for normal scales 2022-09-18 23:33:24 -07:00
200676f4e3 VertexLoaderX64: Fix direct normal+tangent+binormal with index3 set
Fixes https://bugs.dolphin-emu.org/issues/12952
2022-09-18 23:33:23 -07:00
5cc2f7729e VertexLoaderX64: Use EnumMap for normal scales 2022-09-18 23:33:23 -07:00
2db74e7f21 OpcodeDecoding: Get vertex size from the loader 2022-09-19 01:14:53 +02:00
a6c6ec012c VertexLoaderManager: Clean up and slightly speed up with templates 2022-09-19 01:14:49 +02:00
a31e36aeb7 VertexLoaderManager: Fix backwards preprocess check
Spotted by Pokechu22.
2022-09-15 23:56:04 +02:00
fdcd2b7d00 VertexLoader: Inline GetSize 2022-09-15 12:50:15 +02:00
8aa214453a VertexLoader: Optimize GetVertexSize
GetComponentSizes was unused, so we simplify this and get rid
of the branches.
2022-09-15 02:47:23 +02:00
85bd57df0e Merge pull request #11007 from PEmu2/enj
Edit error message
2022-09-08 20:00:18 +02:00
45c4aa288a Merge pull request #10881 from iwubcode/graphics-mod-draw-fb-texture-names
VideoCommon: fix graphics target texture names for efb/xfb
2022-09-08 19:56:49 +02:00
2dfe91336a Merge pull request #10549 from Pokechu22/sw-tev-enum-map
Refactor various bits of graphics code for readability
2022-09-08 09:42:12 -07:00
b0717607b2 TextureInfo: Reorder members in constructor
m_stage is initialized last
2022-08-29 21:16:21 +01:00
3323375efb GraphicsModManager: Reorder DecoratedAction members to initialization order
m_action_impl is initialized before m_mod in constructor
2022-08-29 21:15:49 +01:00
698def66ff Fifo analyzer: Fix various XF mistakes
* 'hangle' was a typo
* Light colors include an alpha value, so they should be 8 characters, not 6
* The XF command format adds 1 to the count internally (so 0 is one word), but we need to subtract that back to produce a valid command
* XFMEM_POSTMATRICES was calculating the row by subtracting XFMEM_POSMATRICES (POS vs POST), resulting in incorrect row numbering
2022-08-29 11:10:05 -07:00
3fb09e3297 Fifo analyzer: Improve some BP descriptions
Mainly, the improvements are passing in the current command ID so that e.g. stage numbers can be directly included, instead of saying 0/1 or even/odd.
2022-08-29 11:10:05 -07:00