aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/compute/skc/platforms/cl_12/styling_cl_12.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compute/skc/platforms/cl_12/styling_cl_12.h')
-rw-r--r--src/compute/skc/platforms/cl_12/styling_cl_12.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/compute/skc/platforms/cl_12/styling_cl_12.h b/src/compute/skc/platforms/cl_12/styling_cl_12.h
new file mode 100644
index 0000000000..a319568ee5
--- /dev/null
+++ b/src/compute/skc/platforms/cl_12/styling_cl_12.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can
+ * be found in the LICENSE file.
+ *
+ */
+
+#pragma once
+
+//
+//
+//
+
+#include <CL/opencl.h>
+
+#include "styling.h"
+#include "grid.h"
+#include "extent_cl_12.h"
+#include "assert_state.h"
+
+//
+// styling states
+//
+
+typedef enum skc_styling_state_e {
+
+ SKC_STYLING_STATE_UNSEALING,
+ SKC_STYLING_STATE_UNSEALED,
+ SKC_STYLING_STATE_SEALING,
+ SKC_STYLING_STATE_SEALED
+
+} skc_styling_state_e;
+
+//
+// IMPL
+//
+
+struct skc_styling_impl
+{
+ struct skc_styling * styling;
+ struct skc_runtime * runtime;
+
+ SKC_ASSERT_STATE_DECLARE(skc_styling_state_e);
+
+ skc_int lock_count; // # of wip renders
+
+ skc_grid_t grid;
+
+ // in-order command queue
+ cl_command_queue cq;
+
+ //
+ // only 3 extents
+ //
+ struct skc_extent_phwN_pdrN layers;
+ struct skc_extent_phwN_pdrN groups;
+ struct skc_extent_phwN_pdrN extras;
+};
+
+//
+// ONLY VISIBLE WITHIN THIS RUNTIME
+//
+
+void
+skc_styling_retain_and_lock(struct skc_styling * const styling);
+
+void
+skc_styling_unlock_and_release(struct skc_styling * const styling);
+
+//
+//
+//