You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-14 13:41:12 +00:00
Move transitions of textures initialized by transfer workers to the main graphics queue.
Also adds a new possible texture layout and API trait to support a particular behavior in D3D12 where only the COMMON layout is supported in copy queues. Fixes #98158.
This commit is contained in:
@@ -1267,6 +1267,7 @@ private:
|
||||
RDD::CommandBufferID command_buffer;
|
||||
RDD::CommandPoolID command_pool;
|
||||
RDD::FenceID command_fence;
|
||||
LocalVector<RDD::TextureBarrier> texture_barriers;
|
||||
bool recording = false;
|
||||
bool submitted = false;
|
||||
BinaryMutex thread_mutex;
|
||||
@@ -1280,6 +1281,7 @@ private:
|
||||
uint32_t transfer_worker_pool_max_size = 1;
|
||||
LocalVector<uint64_t> transfer_worker_operation_used_by_draw;
|
||||
LocalVector<uint32_t> transfer_worker_pool_available_list;
|
||||
LocalVector<RDD::TextureBarrier> transfer_worker_pool_texture_barriers;
|
||||
BinaryMutex transfer_worker_pool_mutex;
|
||||
ConditionVariable transfer_worker_pool_condition;
|
||||
|
||||
@@ -1288,12 +1290,13 @@ private:
|
||||
void _end_transfer_worker(TransferWorker *p_transfer_worker);
|
||||
void _submit_transfer_worker(TransferWorker *p_transfer_worker, VectorView<RDD::SemaphoreID> p_signal_semaphores = VectorView<RDD::SemaphoreID>());
|
||||
void _wait_for_transfer_worker(TransferWorker *p_transfer_worker);
|
||||
void _flush_barriers_for_transfer_worker(TransferWorker *p_transfer_worker);
|
||||
void _check_transfer_worker_operation(uint32_t p_transfer_worker_index, uint64_t p_transfer_worker_operation);
|
||||
void _check_transfer_worker_buffer(Buffer *p_buffer);
|
||||
void _check_transfer_worker_texture(Texture *p_texture);
|
||||
void _check_transfer_worker_vertex_array(VertexArray *p_vertex_array);
|
||||
void _check_transfer_worker_index_array(IndexArray *p_index_array);
|
||||
void _submit_transfer_workers(bool p_operations_used_by_draw);
|
||||
void _submit_transfer_workers(RDD::CommandBufferID p_draw_command_buffer = RDD::CommandBufferID());
|
||||
void _wait_for_transfer_workers();
|
||||
void _free_transfer_workers();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user