You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590. - Adds ubershaders that can run with specialization constants specified as push constants. - Pipelines with specialization constants can compile in the background. - Added monitoring for pipeline compilations. - Materials and shaders can now be created asynchronously on background threads. - Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
This commit is contained in:
@@ -104,14 +104,14 @@ struct VersatileResourceTemplate {
|
||||
uint8_t data[MAX_RESOURCE_SIZE];
|
||||
|
||||
template <typename T>
|
||||
static T *allocate(PagedAllocator<VersatileResourceTemplate> &p_allocator) {
|
||||
static T *allocate(PagedAllocator<VersatileResourceTemplate, true> &p_allocator) {
|
||||
T *obj = (T *)p_allocator.alloc();
|
||||
memnew_placement(obj, T);
|
||||
return obj;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static void free(PagedAllocator<VersatileResourceTemplate> &p_allocator, T *p_object) {
|
||||
static void free(PagedAllocator<VersatileResourceTemplate, true> &p_allocator, T *p_object) {
|
||||
p_object->~T();
|
||||
p_allocator.free((VersatileResourceTemplate *)p_object);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user