Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/device/device_queue.h')
-rw-r--r--intern/cycles/device/device_queue.h115
1 files changed, 0 insertions, 115 deletions
diff --git a/intern/cycles/device/device_queue.h b/intern/cycles/device/device_queue.h
deleted file mode 100644
index e6835b787cf..00000000000
--- a/intern/cycles/device/device_queue.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright 2011-2021 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include "device/device_kernel.h"
-
-#include "device/device_graphics_interop.h"
-#include "util/util_logging.h"
-#include "util/util_map.h"
-#include "util/util_string.h"
-#include "util/util_unique_ptr.h"
-
-CCL_NAMESPACE_BEGIN
-
-class Device;
-class device_memory;
-
-struct KernelWorkTile;
-
-/* Abstraction of a command queue for a device.
- * Provides API to schedule kernel execution in a specific queue with minimal possible overhead
- * from driver side.
- *
- * This class encapsulates all properties needed for commands execution. */
-class DeviceQueue {
- public:
- virtual ~DeviceQueue();
-
- /* Number of concurrent states to process for integrator,
- * based on number of cores and/or available memory. */
- virtual int num_concurrent_states(const size_t state_size) const = 0;
-
- /* Number of states which keeps the device occupied with work without loosing performance.
- * The renderer will add more work (when available) when number of active paths falls below this
- * value. */
- virtual int num_concurrent_busy_states() const = 0;
-
- /* Initialize execution of kernels on this queue.
- *
- * Will, for example, load all data required by the kernels from Device to global or path state.
- *
- * Use this method after device synchronization has finished before enqueueing any kernels. */
- virtual void init_execution() = 0;
-
- /* Test if an optional device kernel is available. */
- virtual bool kernel_available(DeviceKernel kernel) const = 0;
-
- /* Enqueue kernel execution.
- *
- * Execute the kernel work_size times on the device.
- * Supported arguments types:
- * - int: pass pointer to the int
- * - device memory: pass pointer to device_memory.device_pointer
- * Return false if there was an error executing this or a previous kernel. */
- virtual bool enqueue(DeviceKernel kernel, const int work_size, void *args[]) = 0;
-
- /* Wait unit all enqueued kernels have finished execution.
- * Return false if there was an error executing any of the enqueued kernels. */
- virtual bool synchronize() = 0;
-
- /* Copy memory to/from device as part of the command queue, to ensure
- * operations are done in order without having to synchronize. */
- virtual void zero_to_device(device_memory &mem) = 0;
- virtual void copy_to_device(device_memory &mem) = 0;
- virtual void copy_from_device(device_memory &mem) = 0;
-
- /* Graphics resources interoperability.
- *
- * The interoperability comes here by the meaning that the device is capable of computing result
- * directly into an OpenGL (or other graphics library) buffer. */
-
- /* Create graphics interoperability context which will be taking care of mapping graphics
- * resource as a buffer writable by kernels of this device. */
- virtual unique_ptr<DeviceGraphicsInterop> graphics_interop_create()
- {
- LOG(FATAL) << "Request of GPU interop of a device which does not support it.";
- return nullptr;
- }
-
- /* Device this queue has been created for. */
- Device *device;
-
- protected:
- /* Hide construction so that allocation via `Device` API is enforced. */
- explicit DeviceQueue(Device *device);
-
- /* Implementations call these from the corresponding methods to generate debugging logs. */
- void debug_init_execution();
- void debug_enqueue(DeviceKernel kernel, const int work_size);
- void debug_synchronize();
- string debug_active_kernels();
-
- /* Combination of kernels enqueued together sync last synchronize. */
- DeviceKernelMask last_kernels_enqueued_;
- /* Time of synchronize call. */
- double last_sync_time_;
- /* Accumulated execution time for combinations of kernels launched together. */
- map<DeviceKernelMask, double> stats_kernel_time_;
-};
-
-CCL_NAMESPACE_END