Commit Graph
57 Commits
Author SHA1 Message Date
Robin Kertels 38a5774a85 Android: Remove GPU driver from per-game settings 2023-06-23 20:13:14 +02:00
Robin Kertels 6f55b26751 Android: Fix Adrenotools in release builds 2023-06-11 22:44:48 +02:00
Robin Kertels 2da7d16b7c Android: Implement a UI for Adrenotools 2023-06-11 13:53:31 +02:00
Robin Kertels 23bebc5270 VideoBackends:Vulkan: Allow loading custom drivers on Android
... using libadrenotools
2023-06-11 13:52:34 +02:00
Robin Kertels 57ed5320b5 Android: Fix various issues with the DocumentProvider
Fixes copying & deleting folders and copy conflict handling.
2023-04-15 20:53:01 +02:00
Robin Kertels 1596b13743 Android: Give Debug and Benchmark builds unique names
on the launcher and for the DocumentsProvider
2023-04-08 15:56:44 +02:00
Robin Kertels ee563189fd Android: Adjust user data text to match DocumentProvider 2023-03-26 20:32:43 +02:00
Robin Kertels 43d346aba4 Android: Open DocumentProvider directly when tapping the File Manager button 2023-03-24 00:33:42 +01:00
Robin Kertels 93fce0e4b6 VideoCommon:VertexManagerBase: Only calculate remaining indices once
Before, both of those were calculated 3 times due to the ASSERTs.
2023-03-20 20:59:50 +01:00
Robin Kertels 408b09da31 VideoCommon:VertexShaderManager: Inline SetVertexFormat & UpdateValue/Offset 2023-03-20 20:59:38 +01:00
Robin Kertels c1be9628fc VideoBackends:Vulkan: Use WorkQueueThread 2023-03-20 16:40:32 +01:00
Robin Kertels 9d422d14d5 WorkQueueThread: Fix WaitForCompletion 2023-03-20 16:31:40 +01:00
Robin Kertels 9186050daa VideoBackends:Vulkan: Clean up submission thread BlockingLoop usage 2023-03-20 16:23:35 +01:00
Robin Kertels 7703fef3a4 VideoCommon:VertexLoaderManager: Only update vertex format in shader manager if necessary. 2023-03-20 00:41:16 +01:00
Robin Kertels 784ce78eaf Android: Use $applicationId for DocmentProvider authority
Fixes side by side installation of debug, benchmark and release builds.
2023-03-12 15:28:21 +01:00
Robin Kertels 13ed46a488 Android: Implement DocumentProvider
This allows users to access the Dolphin user directory.
2023-03-08 23:09:49 +01:00
Robin Kertels 1b47144312 Android: Center list view headers 2023-03-08 18:57:19 +01:00
Robin Kertels edde253724 Android: Only show divider in settings for headers 2023-03-08 18:57:08 +01:00
Robin Kertels 2695666e6d VideoBackends:Vulkan: Fix printing validation errors 2023-02-16 17:53:15 +01:00
Robin Kertels 94a0c50bf8 WorkQueueThread: Rework without Flags/Events 2023-02-04 14:31:16 +13:00
Robin Kertels 9affbfe683 WorkQueueThread: Implement proper Flush
and rename the existing Flush to FlushOne.
2023-02-04 14:31:16 +13:00
Robin Kertels 9badcc6eb8 WorkQueueThread: Add Push 2023-02-04 14:31:16 +13:00
Robin Kertels 19a4653203 VideoBackends:Vulkan: Replace debug_report with debug_utils
The former is deprecated and pretty much all modern drivers
support VK_EXT_debug_utils.
Android drivers dont support it. On those drivers,
we use the implementation provided by the validation layers.
2022-12-27 02:48:50 +01:00
Robin Kertels 35a6d16d9e VideoBackends: Rename query_type to query_group 2022-11-29 23:14:23 +01:00
Robin Kertels df2e07ad29 VideoBackends:Vulkan: Fix incorrect barriers in StagingBuffer
HOST barriers need to be issued regardless of
whether the memory type is coherent
and we need to properly synchronize writes to the buffer.
2022-11-29 23:14:23 +01:00
Robin Kertels 57b2ea663e VideoBackends:D3D12: Set query type 2022-11-29 23:14:23 +01:00
Robin Kertels 6ba7573877 VideoBackends:Vulkan: Fix queries
Fixes both checking whether queries are done
and actually resets query pools.
2022-11-29 23:14:07 +01:00
Robin Kertels f179fd9c33 VideoCommon:VertexLoaderManager: Reduce CPConfig checks
A bit of a micro optimization:
CheckCPConfiguration is called 350 times instead of 35k times.
2022-11-18 01:42:30 +01:00
Robin Kertels 3beb22ed7f VideoBackends:Vulkan: Synchronize presentation
Synchronize with the submission thread
if the last present is not done yet.
2022-11-07 02:20:22 +01:00
Robin Kertels 0e02ddcf52 VideoCommon:FramebufferManager: Cleanup 2022-11-04 01:18:23 +01:00
Robin Kertels 371935d61e VideoCommon:FramebufferManager: Mark cache as valid after refresh
Otherwise we might never hit the early return
if either depth or color doesnt have any active
tiles.
2022-11-04 01:18:23 +01:00
Robin Kertels f5fecaf964 VideoBackends:Vulkan: Fix 0 size descriptor pools
[ VUID-VkDescriptorPoolCreateInfo-maxSets-00301 ] Object 0:
handle = 0x7f1,b8d,3cd,e70, type = VK_OBJECT_TYPE_DEVICE; |
MessageID = 0xa1,70e,236 | vkCreateDescriptorPool():
pCreateInfo->maxSets is not greater than 0.
The Vulkan spec states: maxSets must be greater than 0
2022-10-31 22:41:16 +01:00
Robin Kertels a07ee729e5 VideoBackends:D3D12: Defer binding framebuffer in SetAndDiscardFramebuffer
BindFramebuffer depends on the pipeline which might not be set yet.
That's why the framebuffer dirty flag exists in the first place.
I assume BindFramebuffer was called directly here, in order to handle
the texture state transitions necessary for DiscardResource.
The state is tracked anyway, so we can just issue those transitions there
too and defer binding the actual framebuffer.

Fixes an issue in Zelda Twilight Princess with EFB depth peeks.
Dolphin would bind a frame buffer which doesn't have an integer format
descriptor for the color target before binding the new pipeline.
So it would accidentally use the 0 descriptor.

Debug layer error:
D3D12 ERROR: ID3D12CommandList::OMSetRenderTargets:
Specified CPU descriptor handle ptr=0x0000000000000000 does not refer to
a location in a descriptor heap. pRenderTargetDescriptors[0] is the issue.
[ EXECUTION ERROR #646: INVALID_DESCRIPTOR_HANDLE]
2022-10-29 23:41:32 +02:00
Robin Kertels a6aa651291 VideoBackends:D3D12: Use COMMON as initial state for default heap buffer
Fixes the following error in the D3D12 debug layer:

D3D12 WARNING: ID3D12Device::CreateCommittedResource:
Ignoring InitialState D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Buffers are effectively created in state D3D12_RESOURCE_STATE_COMMON.
[ STATE_CREATION WARNING #1328: CREATERESOURCE_STATE_IGNORED]
2022-10-29 23:39:32 +02:00
Robin Kertels 22fecb41fc VideoBackends:D3D12: Don't query GPU descriptor handle for non-shader visible heap
Fixes the following error in the D3D12 debug layer:

D3D12 ERROR: ID3D12DescriptorHeap::GetGPUDescriptorHandleForHeapStart:
GetGPUDescriptorHandleForHeapStart is invalid to call on a descriptor
heap that does not have DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE set.
If the heap is not supposed to be shader visible, then
GetCPUDescriptorHandleForHeapStart would be the appropriate method
to call. That call is valid both for shader visible and non shader
visible descriptor heaps.
[ STATE_GETTING ERROR #1315: DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE]
2022-10-29 23:39:27 +02:00
Robin Kertels aa1679f2c7 VideoBackends:Vulkan: Clean up unused memory allocation code 2022-10-23 03:21:29 +02:00
Robin Kertels 1ba58e83ca VideoBackends:Vulkan: Use VMA for stream buffer 2022-10-23 03:21:29 +02:00
Robin Kertels 0e1b7a7b35 VideoBackends:Vulkan: Use VMA for bounding box 2022-10-23 03:21:29 +02:00
Robin Kertels 0532f4a05a VideoBackends:Vulkan: Use VMA for staging buffers 2022-10-23 03:21:14 +02:00
Robin Kertelsandiwubcode 3ffbf94b2a VideoBackends:Vulkan: Set up VMA
Co-authored-by: iwubcode <[email protected]>
2022-10-23 02:54:35 +02:00
Robin Kertels 5e96733e35 Externals: Add VMA 2022-10-23 02:33:03 +02:00
Robin Kertels 6992b0d8e1 VideoBackends:Vulkan: Allocate descriptor pools as needed 2022-10-16 17:04:35 +02:00
Robin Kertels 332824f7d5 VideoBackends:Vulkan: Fix command buffer cleanup 2022-10-08 21:40:33 +02:00
Robin Kertels 4e204a9a1a VideoCommon: Remove special treatment for Android in video settings 2022-10-01 20:53:02 +02:00
Robin Kertels 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
Robin Kertels e5fb9c9adf VideoBackends:Vulkan: Raise number of command buffers
Avoid waiting for earlier submissions when we flush more often.
The vertex manager will flush more often if the game accesses the EFB
on the CPU, to give the GPU a head start.
2022-10-01 01:26:04 +02:00
Robin Kertels fba7d35f94 VideoBackends:Vulkan: Associate descriptor pool with frame rather than command buffer 2022-10-01 01:26:04 +02:00
Robin Kertels ed75a58061 VideoBackends:Vulkan: Decouple available command buffers from frames in flight 2022-10-01 01:26:04 +02:00
Robin Kertels e8fa867f14 VideoBackends:Vulkan: Only synchronize with submission thread when necessary
We only need to synchronize with the submission thread
when submitting on the GPU thread or when waiting for a command buffer.
2022-10-01 01:26:04 +02:00
Robin Kertels 2e6d8d6575 VideoBackends:Vulkan: Fix validation error around surface_capabilities2 2022-10-01 01:26:03 +02:00
Robin Kertels 81c817c54d VideoBackends:Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom driver 2022-09-30 21:13:42 +02:00
Robin Kertels 2db74e7f21 OpcodeDecoding: Get vertex size from the loader 2022-09-19 01:14:53 +02:00
Robin Kertels a6c6ec012c VertexLoaderManager: Clean up and slightly speed up with templates 2022-09-19 01:14:49 +02:00
Robin Kertels a31e36aeb7 VertexLoaderManager: Fix backwards preprocess check
Spotted by Pokechu22.
2022-09-15 23:56:04 +02:00
Robin Kertels fdcd2b7d00 VertexLoader: Inline GetSize 2022-09-15 12:50:15 +02:00
Robin Kertels 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
Robin Kertels 40dcf1c2e2 D3D12: Transition compute textures to UAV state 2021-08-11 00:17:04 +02:00