diff options
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.h | 73 |
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); + +// +// +// |