Miguel Pozo
5d132ac0c6
GPU: Optimize OpenGL indirect drawing overhead
...
`GLBatch::draw_indirect` has additional overhead compared to
`GLBatch::draw`, and can become a bottleneck in scenes that require
many draw calls (ie. with too many unique meshes).
The performance difference is almost exclusively caused by the
`GL_COMMAND_BARRIER_BIT` barrier that happens on every call.
This PR adds a `GPU_storagebuf_sync_as_indirect_buffer` function that
can be used to place the barrier only once after filling the indirect
buffer content.
This function is a no-op in Vulkan and Metal since they don't need the
barrier.
Pull Request: https://projects.blender.org/blender/blender/pulls/117561
2024-02-01 17:26:08 +01:00
..
2024-01-31 18:12:59 +01:00
2023-09-18 13:42:17 +02:00
2024-02-01 10:03:47 +01:00
2024-02-01 10:03:47 +01:00
2023-08-16 00:20:26 +10:00
2023-11-14 13:55:37 +01:00
2023-11-24 13:52:48 +01:00
2023-11-24 13:52:48 +01:00
2023-11-16 15:03:47 +01:00
2023-11-16 15:03:47 +01:00
2024-02-01 10:03:47 +01:00
2024-02-01 10:03:47 +01:00
2023-11-14 11:12:19 +01:00
2023-11-14 11:12:19 +01:00
2023-11-24 15:23:46 +01:00
2023-11-20 14:08:19 +01:00
2023-11-10 15:19:24 +01:00
2024-01-11 12:55:33 +01:00
2023-11-10 15:19:24 +01:00
2023-10-14 13:53:00 +11:00
2023-08-30 10:57:17 +10:00
2023-11-16 15:03:47 +01:00
2023-11-16 15:03:47 +01:00
2023-12-08 15:32:35 +01:00
2023-11-16 15:03:47 +01:00
2024-01-31 18:12:59 +01:00
2023-12-11 16:25:41 +01:00
2024-02-01 10:03:47 +01:00
2024-02-01 10:03:47 +01:00
2023-09-21 15:21:32 +02:00
2023-08-16 00:20:26 +10:00
2024-01-15 13:25:20 +01:00
2024-01-15 13:25:20 +01:00
2023-11-10 12:52:34 +01:00
2023-10-19 14:41:18 +02:00
2023-11-08 09:44:22 +01:00
2023-11-08 09:44:22 +01:00
2023-11-24 13:52:48 +01:00
2023-11-20 15:48:06 +01:00
2023-11-24 13:27:41 +01:00
2023-09-19 11:52:59 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-11-30 10:48:33 +11:00
2023-08-16 00:20:26 +10:00
2023-11-24 13:28:09 +01:00
2023-11-16 15:03:47 +01:00
2023-11-03 14:42:12 +01:00
2023-09-28 10:00:24 +02:00
2023-11-17 07:56:56 +01:00
2023-08-16 00:20:26 +10:00
2023-09-21 15:21:32 +02:00
2023-08-16 00:20:26 +10:00
2023-10-30 14:21:14 +01:00
2023-10-30 14:21:14 +01:00
2024-01-11 11:41:35 +01:00
2023-11-14 11:12:19 +01:00
2023-11-14 11:12:19 +01:00
2023-11-14 11:12:19 +01:00
2024-01-08 11:31:43 +11:00
2023-12-22 19:02:53 +01:00
2024-01-01 00:43:09 +13:00
2024-01-01 00:43:09 +13:00
2024-01-12 14:28:50 +01:00
2024-01-12 14:28:50 +01:00
2023-11-24 13:52:48 +01:00
2023-11-24 13:52:48 +01:00
2023-11-14 11:12:19 +01:00
2023-08-16 00:20:26 +10:00
2024-02-01 10:03:47 +01:00
2024-02-01 17:26:08 +01:00
2024-01-11 12:47:11 +01:00
2024-01-11 12:47:11 +01:00
2023-11-27 09:30:52 +11:00
2023-11-27 09:54:36 +11:00
2023-11-24 13:52:48 +01:00
2023-11-14 13:55:37 +01:00
2023-11-24 13:52:48 +01:00
2023-11-24 13:52:48 +01:00
2023-11-24 13:52:48 +01:00
2023-11-24 13:52:48 +01:00