Whitespace cleanup again

Change-Id: I38ab9ff141eb088084a4c0e664f327ceb89fcf70
Reviewed-on: https://skia-review.googlesource.com/140784
Commit-Queue: Hal Canary <halcanary@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This commit is contained in:
Hal Canary 2018-07-11 16:10:14 -04:00 committed by Skia Commit-Bot
parent 7e83f89dd6
commit 1419534a00
56 changed files with 345 additions and 345 deletions

View File

@ -104,8 +104,8 @@ color_linear_to_srgb_rgb_f32(float rgb[3])
//
//
static
float
static
float
lerpf(float const a, float const b, float const t)
{
return fmaf(t, b, fmaf(-t, a, a));
@ -115,8 +115,8 @@ lerpf(float const a, float const b, float const t)
//
//
void
color_linear_lerp_rgba_f32(float rgba_m[4],
void
color_linear_lerp_rgba_f32(float rgba_m[4],
float const rgba_a[4],
float const rgba_b[4],
float const t)

View File

@ -59,7 +59,7 @@ void color_linear_to_srgb_rgb_f32(float rgb[3]);
//
//
void color_linear_lerp_rgba_f32(float rgba_m[4],
void color_linear_lerp_rgba_f32(float rgba_m[4],
float const rgba_a[4],
float const rgba_b[4],
float const t);

View File

@ -147,7 +147,7 @@ assert_cl(cl_int const code, char const * const file, int const line, bool const
//
void
cl_get_event_info(cl_event event,
cl_get_event_info(cl_event event,
cl_int * const status,
cl_command_type * const type)
{
@ -169,7 +169,7 @@ cl_get_event_info(cl_event event,
}
char const *
char const *
cl_get_event_command_status_string(cl_int const status)
{
switch (status)
@ -177,14 +177,14 @@ cl_get_event_command_status_string(cl_int const status)
CL_VAL_TO_STRING(CL_QUEUED);
CL_VAL_TO_STRING(CL_SUBMITTED);
CL_VAL_TO_STRING(CL_RUNNING);
CL_VAL_TO_STRING(CL_COMPLETE);
CL_VAL_TO_STRING(CL_COMPLETE);
default:
return "UNKNOWN COMMAND STATUS";
}
}
}
char const *
char const *
cl_get_event_command_type_string(cl_command_type const type)
{
switch (type)

View File

@ -19,13 +19,13 @@
//
//
char const *
char const *
cl_get_error_string(cl_int const err);
cl_int
assert_cl(cl_int const code,
char const * const file,
int const line,
cl_int
assert_cl(cl_int const code,
char const * const file,
int const line,
bool const abort);
//
@ -40,14 +40,14 @@ assert_cl(cl_int const code,
//
void
cl_get_event_info(cl_event event,
cl_get_event_info(cl_event event,
cl_int * const status,
cl_command_type * const type);
char const *
char const *
cl_get_event_command_status_string(cl_int const status);
char const *
char const *
cl_get_event_command_type_string(cl_command_type const type);
//

View File

@ -42,7 +42,7 @@ clFindIdsByName(char const * const target_platform_substring,
// get number of platforms
//
cl_uint platform_count;
cl(GetPlatformIDs(0,NULL,&platform_count));
cl_platform_id * const platform_ids = ALLOCA(sizeof(*platform_ids) * platform_count);
@ -94,13 +94,13 @@ clFindIdsByName(char const * const target_platform_substring,
&device_count);
cl_device_id * const device_ids = ALLOCA(sizeof(*device_ids) * device_count);
cl_err = clGetDeviceIDs(platform_ids[ii],
CL_DEVICE_TYPE_ALL,
device_count,
device_ids,
NULL);
if (cl_err != CL_DEVICE_NOT_FOUND)
cl_ok(cl_err);
@ -135,7 +135,7 @@ clFindIdsByName(char const * const target_platform_substring,
driver_version_size,
driver_version,
NULL));
if (!match_device && match_platform && (strstr(device_name,target_device_substring) != NULL))
{
match_device = true;
@ -148,7 +148,7 @@ clFindIdsByName(char const * const target_platform_substring,
if (matched_device_name_size >= 1)
matched_device_name[matched_device_name_size-1] = 0;
if (matched_device_name_size > 1)
if (matched_device_name_size > 1)
{
bytes = MIN_MACRO(device_name_size,matched_device_name_size-1);
@ -202,7 +202,7 @@ clFindIdsByName(char const * const target_platform_substring,
}
return CL_SUCCESS;
}
}
//
//

View File

@ -6,7 +6,7 @@
*
*/
#include <intrin.h>
#include <intrin.h>
//
//

View File

@ -84,11 +84,11 @@ hs_cpu_sort_u32(uint32_t * a, uint32_t const count)
}
extern "C"
char const *
char const *
hs_cpu_sort_u64(uint64_t * a, uint32_t const count)
{
#if defined ( HS_USE_PARALLEL_SORT )
std::sort(std::execution::par_unseq,a,a+count);
std::sort(std::execution::par_unseq,a,a+count);
return "std::sort(std::execution::par_unseq)()";
#elif defined ( HS_USE_STD_SORT )
std::sort(a,a+count);

View File

@ -1,26 +1,26 @@
//
// Copyright 2016 Google Inc.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//
#ifndef HS_CL_ONCE
#define HS_CL_ONCE
#define HS_LANES_PER_WARP_LOG2 3
#define HS_LANES_PER_WARP (1 << HS_LANES_PER_WARP_LOG2)
#define HS_BS_WARPS 16
#define HS_BS_WARPS_LOG2_RU 4
#define HS_BC_WARPS_LOG2_MAX 4
#define HS_FM_BLOCKS_LOG2_MIN 1
#define HS_HM_BLOCKS_LOG2_MIN 1
#define HS_KEYS_PER_LANE 16
#define HS_REG_LAST(c) c##16
#define HS_KEY_WORDS 2
#define HS_KEY_TYPE ulong
#define HS_EMPTY
//
// Copyright 2016 Google Inc.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//
#ifndef HS_CL_ONCE
#define HS_CL_ONCE
#define HS_LANES_PER_WARP_LOG2 3
#define HS_LANES_PER_WARP (1 << HS_LANES_PER_WARP_LOG2)
#define HS_BS_WARPS 16
#define HS_BS_WARPS_LOG2_RU 4
#define HS_BC_WARPS_LOG2_MAX 4
#define HS_FM_BLOCKS_LOG2_MIN 1
#define HS_HM_BLOCKS_LOG2_MIN 1
#define HS_KEYS_PER_LANE 16
#define HS_REG_LAST(c) c##16
#define HS_KEY_WORDS 2
#define HS_KEY_TYPE ulong
#define HS_EMPTY
#define HS_SLAB_ROWS() \
HS_SLAB_ROW( 1, 0 ) \
HS_SLAB_ROW( 2, 1 ) \
@ -39,7 +39,7 @@
HS_SLAB_ROW( 15, 14 ) \
HS_SLAB_ROW( 16, 15 ) \
HS_EMPTY
#define HS_TRANSPOSE_SLAB() \
HS_TRANSPOSE_STAGE( 1 ) \
HS_TRANSPOSE_STAGE( 2 ) \
@ -85,38 +85,38 @@
HS_TRANSPOSE_REMAP( u, 15, 14 ) \
HS_TRANSPOSE_REMAP( u, 16, 16 ) \
HS_EMPTY
#define HS_FM_BLOCKS_LOG2_1 0
#define HS_FM_BLOCKS_LOG2_2 1
#define HS_FM_BLOCKS_LOG2_3 2
#define HS_FM_BLOCKS_LOG2_4 3
#define HS_FM_BLOCKS_LOG2_5 4
#define HS_FM_BLOCKS_LOG2_6 5
#define HS_HM_BLOCKS_LOG2_5 0
#define HS_FM_BLOCKS_LOG2_7 6
#define HS_HM_BLOCKS_LOG2_6 1
#define HS_FM_BLOCKS_LOG2_8 7
#define HS_HM_BLOCKS_LOG2_7 2
#define HS_FM_BLOCKS_LOG2_9 8
#define HS_HM_BLOCKS_LOG2_8 3
#define HS_FM_BLOCKS_LOG2_10 9
#define HS_HM_BLOCKS_LOG2_9 4
#define HS_FM_BLOCKS_LOG2_11 10
#define HS_HM_BLOCKS_LOG2_10 5
#define HS_FM_BLOCKS_LOG2_12 11
#define HS_HM_BLOCKS_LOG2_11 6
#define HS_FM_BLOCKS_LOG2_13 12
#define HS_HM_BLOCKS_LOG2_12 7
#define HS_FM_BLOCKS_LOG2_14 13
#define HS_HM_BLOCKS_LOG2_13 8
#define HS_FM_BLOCKS_LOG2_15 14
#define HS_HM_BLOCKS_LOG2_14 9
#define HS_FM_BLOCKS_LOG2_16 15
#define HS_HM_BLOCKS_LOG2_15 10
#endif
//
//
//
#define HS_FM_BLOCKS_LOG2_1 0
#define HS_FM_BLOCKS_LOG2_2 1
#define HS_FM_BLOCKS_LOG2_3 2
#define HS_FM_BLOCKS_LOG2_4 3
#define HS_FM_BLOCKS_LOG2_5 4
#define HS_FM_BLOCKS_LOG2_6 5
#define HS_HM_BLOCKS_LOG2_5 0
#define HS_FM_BLOCKS_LOG2_7 6
#define HS_HM_BLOCKS_LOG2_6 1
#define HS_FM_BLOCKS_LOG2_8 7
#define HS_HM_BLOCKS_LOG2_7 2
#define HS_FM_BLOCKS_LOG2_9 8
#define HS_HM_BLOCKS_LOG2_8 3
#define HS_FM_BLOCKS_LOG2_10 9
#define HS_HM_BLOCKS_LOG2_9 4
#define HS_FM_BLOCKS_LOG2_11 10
#define HS_HM_BLOCKS_LOG2_10 5
#define HS_FM_BLOCKS_LOG2_12 11
#define HS_HM_BLOCKS_LOG2_11 6
#define HS_FM_BLOCKS_LOG2_13 12
#define HS_HM_BLOCKS_LOG2_12 7
#define HS_FM_BLOCKS_LOG2_14 13
#define HS_HM_BLOCKS_LOG2_13 8
#define HS_FM_BLOCKS_LOG2_15 14
#define HS_HM_BLOCKS_LOG2_14 9
#define HS_FM_BLOCKS_LOG2_16 15
#define HS_HM_BLOCKS_LOG2_15 10
#endif
//
//
//

View File

@ -774,7 +774,7 @@ hs_fm_launcher(struct hs_state * const state,
// how many full-sized scaled flip-merge spans are there?
state->fm.full = state->bx.ru / full_span_warps;
state->fm.frac = 0;
// initialize down_warps
*down_warps = state->fm.full * full_span_warps;
@ -787,10 +787,10 @@ hs_fm_launcher(struct hs_state * const state,
uint32_t const frac_rem = span_rem - half_span_warps;
uint32_t const frac_rem_pow2 = pow2_ru_u32(frac_rem);
if (frac_rem_pow2 >= half_span_warps)
if (frac_rem_pow2 >= half_span_warps)
{
*down_warps += full_span_warps;
state->fm.full += 1;
state->fm.full += 1;
}
else
{
@ -895,7 +895,7 @@ hs_pad(uint32_t const count,
void
hs_sort(cl_command_queue cq, // out-of-order cq
cl_mem vin,
cl_mem vin,
cl_mem vout,
uint32_t const count,
uint32_t const count_padded_in,
@ -1019,7 +1019,7 @@ hs_sort(cl_command_queue cq, // out-of-order cq
}
}
if (linearize)
if (linearize)
{
// launch linearize;
hs_transpose_launcher(&state,cq);
@ -1113,7 +1113,7 @@ hs_create(cl_context context,
HS_CREATE_KERNELS(bc_kernels);
HS_CREATE_KERNELS(fm_kernels);
HS_CREATE_KERNELS(hm_kernels);
HS_CREATE_KERNELS(transpose_kernels);
HS_CREATE_KERNELS(transpose_kernels);
cl(ReleaseProgram(program));
}

View File

@ -882,7 +882,7 @@ hsg_bs_flip_merge_level(struct hsg_op * ops,
uint32_t const level,
uint32_t const s_pairs)
{
//
//
// Note there are a number of ways to flip merge these warps. There
// is a magic number in the merge structure that indicates which
// warp to activate as well as what network size to invoke.
@ -917,7 +917,7 @@ hsg_bs_flip_merge_level(struct hsg_op * ops,
uint32_t s_rows = s_pairs * 2;
uint32_t base = 0;
while (s_rows > 0)
{
uint32_t active = merge->warps;
@ -934,7 +934,7 @@ hsg_bs_flip_merge_level(struct hsg_op * ops,
// how many equal number of rows to merge?
uint32_t loops = s_rows / active;
// decrement
// decrement
s_rows -= loops * active;
for (uint32_t ss=0; ss<loops; ss++)
@ -998,7 +998,7 @@ hsg_bs_flip_merge(struct hsg_op * ops, struct hsg_merge const * const merge)
{
uint32_t const count = merge->levels[level].count;
if (count == 0)
if (count == 0)
continue;
uint32_t const r_mid = hsg_config.thread.regs/2 + 1;

View File

@ -51,7 +51,7 @@ hsg_target_cuda_sm3x(struct hsg_file * const files,
uint32_t const bc_max = msb_idx_u32(pow2_rd_u32(merge[0].warps));
fprintf(files[HSG_FILE_TYPE_HEADER].file,
"// \n"
"// \n"
"// Copyright 2016 Google Inc. \n"
"// \n"
"// Use of this source code is governed by a BSD-style \n"
@ -86,7 +86,7 @@ hsg_target_cuda_sm3x(struct hsg_file * const files,
files[HSG_FILE_TYPE_SOURCE].name);
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"// \n"
"// \n"
"// Copyright 2016 Google Inc. \n"
"// \n"
"// Use of this source code is governed by a BSD-style \n"
@ -461,12 +461,12 @@ hsg_target_cuda_sm3x(struct hsg_file * const files,
break;
case HSG_OP_TYPE_CMP_FLIP:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"HS_CMP_FLIP(r%-3u,r%-3u,r%-3u)\n",ops->a,ops->b,ops->c);
break;
case HSG_OP_TYPE_CMP_HALF:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"HS_CMP_HALF(r%-3u,r%-3u)\n",ops->a,ops->b);
break;

View File

@ -21,15 +21,15 @@
//
//
static
static
char
hsg_transpose_reg_prefix(uint32_t const cols_log2)
{
return 'a' + (('r' + cols_log2 - 'a') % 26);
}
static
void
static
void
hsg_transpose_blend(uint32_t const cols_log2,
uint32_t const row_ll, // lower-left
uint32_t const row_ur, // upper-right
@ -41,10 +41,10 @@ hsg_transpose_blend(uint32_t const cols_log2,
hsg_transpose_reg_prefix(cols_log2-1),
hsg_transpose_reg_prefix(cols_log2),
cols_log2,row_ll+1,row_ur+1);
}
}
static
void
static
void
hsg_transpose_remap(uint32_t const row_from,
uint32_t const row_to,
FILE * file)
@ -54,7 +54,7 @@ hsg_transpose_remap(uint32_t const row_from,
" HS_TRANSPOSE_REMAP( %c, %3u, %3u ) \\\n",
hsg_transpose_reg_prefix(msb_idx_u32(hsg_config.warp.lanes)),
row_from+1,row_to+1);
}
}
//
//
@ -89,7 +89,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
uint32_t const warp_lanes_log2 = msb_idx_u32(hsg_config.warp.lanes);
fprintf(files[HSG_FILE_TYPE_HEADER].file,
"// \n"
"// \n"
"// Copyright 2016 Google Inc. \n"
"// \n"
"// Use of this source code is governed by a BSD-style \n"
@ -125,7 +125,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
fprintf(files[HSG_FILE_TYPE_HEADER].file,
"#define HS_SLAB_ROWS() \\\n");
for (uint32_t ii=1; ii<=hsg_config.thread.regs; ii++)
fprintf(files[HSG_FILE_TYPE_HEADER].file,
" HS_SLAB_ROW( %3u, %3u ) \\\n",ii,ii-1);
@ -147,13 +147,13 @@ hsg_target_igp_genx(struct hsg_file * const files,
files[HSG_FILE_TYPE_HEADER].file,
hsg_transpose_blend,
hsg_transpose_remap);
fprintf(files[HSG_FILE_TYPE_HEADER].file,
" HS_EMPTY\n"
" \n");
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"// \n"
"// \n"
"// Copyright 2016 Google Inc. \n"
"// \n"
"// Use of this source code is governed by a BSD-style \n"
@ -215,11 +215,11 @@ hsg_target_igp_genx(struct hsg_file * const files,
"HS_TRANSPOSE_SLAB()\n");
}
break;
case HSG_OP_TYPE_BS_KERNEL_PROTO:
{
struct hsg_merge const * const m = merge + ops->a;
uint32_t const tpb = m->warps * hsg_config.warp.lanes;
uint32_t const bs = pow2_ru_u32(m->warps);
uint32_t const msb = msb_idx_u32(bs);
@ -236,7 +236,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
msb);
}
break;
case HSG_OP_TYPE_BS_KERNEL_PREAMBLE:
{
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
@ -466,12 +466,12 @@ hsg_target_igp_genx(struct hsg_file * const files,
break;
case HSG_OP_TYPE_CMP_FLIP:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"HS_CMP_FLIP(%-3u,r%-3u,r%-3u)\n",ops->a,ops->b,ops->c);
break;
case HSG_OP_TYPE_CMP_HALF:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"HS_CMP_HALF(%-3u,r%-3u)\n",ops->a,ops->b);
break;
@ -523,7 +523,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
ops->c,
ops->a);
break;
case HSG_OP_TYPE_BS_REG_SHARED_LOAD_LEFT:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"HS_KEY_TYPE r%u_%-3u = (shared.m + smem_l_idx)[%u];\n",
@ -598,7 +598,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
#endif
}
break;
case HSG_OP_TYPE_BC_MERGE_H_PREAMBLE:
{
struct hsg_merge const * const m = merge + ops->a;
@ -613,7 +613,7 @@ hsg_target_igp_genx(struct hsg_file * const files,
}
break;
case HSG_OP_TYPE_BX_MERGE_H_PRED:
fprintf(files[HSG_FILE_TYPE_SOURCE].file,
"if (get_sub_group_id() < %u)\n",

View File

@ -33,7 +33,7 @@ hsg_transpose(uint32_t const cols_log2,
{
// get mapping array
uint32_t * map_curr = ALLOCA(rows * sizeof(*map_curr));
uint32_t * map_next = ALLOCA(rows * sizeof(*map_next));
uint32_t * map_next = ALLOCA(rows * sizeof(*map_next));
// init the mapping array
for (uint32_t ii=0; ii<rows; ii++)
@ -53,7 +53,7 @@ hsg_transpose(uint32_t const cols_log2,
{
for (uint32_t jj=0; jj<rows; jj++)
{
if (map_curr[jj] == stay)
if (map_curr[jj] == stay)
{
map_next[jj] = stay;
map_next[ii] = stay + (rows << (cc-1));
@ -88,7 +88,7 @@ hsg_transpose(uint32_t const cols_log2,
static uint32_t cols; // implicit on SIMD/GPU
static
void
void
hsg_debug_remap(uint32_t const row_from,
uint32_t const row_to,
uint32_t * const r)
@ -99,9 +99,9 @@ hsg_debug_remap(uint32_t const row_from,
}
static
void
void
hsg_debug_blend(uint32_t const cols_log2,
uint32_t const row_ll, // lower-left
uint32_t const row_ll, // lower-left
uint32_t const row_ur, // upper-right
uint32_t * m)
{

View File

@ -33,7 +33,7 @@
//
void *
skc_runtime_host_perm_alloc(struct skc_runtime * const runtime,
skc_runtime_host_perm_alloc(struct skc_runtime * const runtime,
skc_mem_flags_e const flags,
size_t const size)
{
@ -42,7 +42,7 @@ skc_runtime_host_perm_alloc(struct skc_runtime * const runtime,
}
void
skc_runtime_host_perm_free(struct skc_runtime * const runtime,
skc_runtime_host_perm_free(struct skc_runtime * const runtime,
void * const mem)
{
SKC_ALIGNED_FREE(mem);
@ -65,11 +65,11 @@ skc_runtime_host_temp_alloc(struct skc_runtime * const runtime,
if (subbuf_size != NULL)
*subbuf_size = 0;
return NULL;
}
return runtime->allocator.host.temp.extent +
return runtime->allocator.host.temp.extent +
skc_suballocator_subbuf_alloc(&runtime->allocator.host.temp.suballocator,
runtime->scheduler,
size,subbuf_id,subbuf_size);
@ -101,7 +101,7 @@ skc_allocator_host_create(struct skc_runtime * const runtime)
SKC_RUNTIME_HOST_CACHELINE_SIZE,
runtime->config->suballocator.host.size);
runtime->allocator.host.temp.extent =
runtime->allocator.host.temp.extent =
skc_runtime_host_perm_alloc(runtime,
SKC_MEM_FLAGS_READ_WRITE,
runtime->config->suballocator.host.size);

View File

@ -28,7 +28,7 @@
//
skc_err
skc_context_create_cl(skc_context_t * context,
skc_context_create_cl(skc_context_t * context,
cl_context context_cl,
cl_device_id device_id_cl)
{

View File

@ -49,7 +49,7 @@ struct skc_context
skc_err (* path_flush )(struct skc_runtime * const runtime,
skc_path_t const * paths,
uint32_t count);
//
//
//

View File

@ -99,17 +99,17 @@ skc_extent_ring_snap_alloc(struct skc_runtime * const runtime,
{
skc_subbuf_id_t id;
struct skc_extent_ring_snap * snap =
struct skc_extent_ring_snap * snap =
skc_runtime_host_temp_alloc(runtime,
SKC_MEM_FLAGS_READ_WRITE,
sizeof(*snap),&id,NULL);
// save the id
snap->id = id;
// back point to parent
snap->ring = ring;
snap->next = NULL;
// save the inner boundaries of the ring to the snapshot
snap->reads = ring->inner.reads;
snap->writes = ring->inner.reads = ring->inner.writes;
@ -123,7 +123,7 @@ skc_extent_ring_snap_alloc(struct skc_runtime * const runtime,
ring->head = snap;
ring->last = snap;
}
else
else
{
ring->last->next = snap;
ring->last = snap;
@ -156,7 +156,7 @@ skc_extent_ring_snap_free(struct skc_runtime * const runtime,
do {
// increment read counter
ring->outer.reads = curr->writes;
struct skc_extent_ring_snap * const next = curr->next;
skc_runtime_host_temp_free(runtime,curr,curr->id);
@ -164,7 +164,7 @@ skc_extent_ring_snap_free(struct skc_runtime * const runtime,
curr = next;
// this was the last snap...
if (curr == NULL)
if (curr == NULL)
{
ring->last = NULL;
break;

View File

@ -113,7 +113,7 @@ struct skc_grid
struct skc_grid_pfn_name waiting; // optional - if defined, typically used to yank the grid away from host
struct skc_grid_pfn_name execute; // optional - starts execution of waiting grid
struct skc_grid_pfn_name dispose; // optional - invoked when grid is complete
struct {
skc_uint words[SKC_GRID_SIZE_WORDS]; // 0:inactive, 1:active
skc_uint count;
@ -535,7 +535,7 @@ skc_grid_clear_dependency(skc_grid_t const after, skc_uint const before)
after->before.count -= 1;
if ((after->before.count == 0) && ((after->state == SKC_GRID_STATE_WAITING) ||
if ((after->before.count == 0) && ((after->state == SKC_GRID_STATE_WAITING) ||
(after->state == SKC_GRID_STATE_FORCED)))
{
// schedule grid for execution

View File

@ -39,7 +39,7 @@ typedef enum skc_typed_handle_type_e
SKC_TYPED_HANDLE_TYPE_IS_PATH = 0x40000000,
SKC_TYPED_HANDLE_TYPE_IS_RASTER = 0x80000000
} skc_typed_handle_type_e;
typedef skc_uint skc_typed_handle_t;
typedef skc_uint skc_handle_t;

View File

@ -52,7 +52,7 @@ void
skc_interop_blit(struct skc_interop * interop);
void
skc_interop_get_size(struct skc_interop * interop,
skc_interop_get_size(struct skc_interop * interop,
uint32_t * width,
uint32_t * height);
//

View File

@ -194,7 +194,7 @@ main(int argc, char** argv)
// rasterize, render and reclaim svg until escape
//
skc_pipeline_start_at_e pipeline_start_at_base = SKC_PIPELINE_START_AT_DEFINE_PATHS;
skc_pipeline_start_at_e pipeline_start_at_loop = SKC_PIPELINE_START_AT_DEFINE_PATHS;
skc_pipeline_start_at_e pipeline_start_at_loop = SKC_PIPELINE_START_AT_DEFINE_PATHS;
skc_path_t * paths;
skc_raster_t * rasters;
@ -269,7 +269,7 @@ main(int argc, char** argv)
// do we only want to run part of the pipeline?
if ((key >= SKC_PIPELINE_START_AT_DEFINE_PATHS) && (key <= SKC_PIPELINE_START_AT_RENDER))
pipeline_start_at_base = key;
// valid for a loop
pipeline_start_at_loop = pipeline_start_at_base;

View File

@ -55,10 +55,10 @@ struct skc_coords_rem_count_cubic
struct skc_path_builder
{
struct skc_context * context;
struct skc_path_builder_impl * impl;
void (* begin )(struct skc_path_builder_impl * const impl);
void (* begin )(struct skc_path_builder_impl * const impl);
void (* end )(struct skc_path_builder_impl * const impl, skc_path_t * const path);
void (* new_line )(struct skc_path_builder_impl * const impl);
void (* new_quad )(struct skc_path_builder_impl * const impl);

View File

@ -57,7 +57,7 @@ skc_runtime_device_temp_alloc(struct skc_runtime * const runtime,
if (subbuf_size != NULL)
*subbuf_size = 0;
return NULL;
}
@ -83,7 +83,7 @@ skc_runtime_device_temp_alloc(struct skc_runtime * const runtime,
void
skc_runtime_device_temp_free(struct skc_runtime * const runtime,
skc_runtime_device_temp_free(struct skc_runtime * const runtime,
cl_mem const mem,
skc_subbuf_id_t const subbuf_id)
{
@ -92,7 +92,7 @@ skc_runtime_device_temp_free(struct skc_runtime * const runtime,
skc_suballocator_subbuf_free(&runtime->allocator.device.temp.suballocator,subbuf_id);
cl(ReleaseMemObject(mem));
cl(ReleaseMemObject(mem));
}
//
@ -116,7 +116,7 @@ skc_allocator_device_create(struct skc_runtime * const runtime)
cl_mem_flags const flags = CL_MEM_READ_WRITE;
#endif
runtime->allocator.device.temp.extent =
runtime->allocator.device.temp.extent =
skc_runtime_device_perm_alloc(runtime,
flags,
runtime->config->suballocator.device.size);

View File

@ -28,7 +28,7 @@ struct skc_allocator_device
{
#if 0
struct {
} perm;
#endif

View File

@ -118,7 +118,7 @@ struct skc_composition_place
static
void
skc_composition_unseal_block(struct skc_composition_impl * const impl,
skc_composition_unseal_block(struct skc_composition_impl * const impl,
skc_bool const block);
//
@ -140,7 +140,7 @@ skc_composition_pfn_release(struct skc_composition_impl * const impl)
skc_composition_unseal_block(impl,true); // block
struct skc_runtime * const runtime = impl->runtime;
// free host composition
skc_runtime_host_perm_free(runtime,impl->composition);
@ -149,7 +149,7 @@ skc_composition_pfn_release(struct skc_composition_impl * const impl)
// release kernels
cl(ReleaseKernel(impl->kernels.place));
cl(ReleaseKernel(impl->kernels.segment));
cl(ReleaseKernel(impl->kernels.segment));
// release extents
skc_extent_phw1g_tdrNs_free(runtime,&impl->cmds.extent);
@ -158,7 +158,7 @@ skc_composition_pfn_release(struct skc_composition_impl * const impl)
skc_extent_pdrw_free (runtime,&impl->keys);
skc_extent_pdrw_free (runtime,&impl->offsets);
// free composition impl
skc_runtime_host_perm_free(runtime,impl);
}
@ -204,7 +204,7 @@ void
skc_composition_place_read_cb(cl_event event, cl_int status, skc_grid_t const grid)
{
SKC_CL_CB(status);
struct skc_composition_place * const place = skc_grid_get_data(grid);
struct skc_composition_impl * const impl = place->impl;
struct skc_runtime * const runtime = impl->runtime;
@ -288,7 +288,7 @@ skc_composition_snap(struct skc_composition_impl * const impl)
// set grid data
skc_grid_set_data(impl->grids.place,place);
// acquire command queue
place->cq = skc_runtime_acquire_cq_in_order(impl->runtime);
@ -297,7 +297,7 @@ skc_composition_snap(struct skc_composition_impl * const impl)
// make a snapshot
skc_extent_phw1g_tdrNs_snap_init(impl->runtime,&impl->cmds.ring,&place->cmds);
// unmap the snapshot (could be a copy)
skc_extent_phw1g_tdrNs_snap_alloc(impl->runtime,
&impl->cmds.extent,
@ -382,7 +382,7 @@ skc_composition_sort_grid_pfn_execute(skc_grid_t const grid)
{
struct skc_composition_impl * const impl = skc_grid_get_data(grid);
// we should be sealing
// we should be sealing
assert(impl->state == SKC_COMPOSITION_STATE_SEALING);
struct skc_place_atomics * const atomics = impl->atomics.hr;
@ -422,7 +422,7 @@ skc_composition_sort_grid_pfn_execute(skc_grid_t const grid)
// next stage needs to know number of key segments
skc_extent_phr_pdrw_read(&impl->atomics,impl->cq,&complete);
// register a callback
cl(SetEventCallback(complete,CL_COMPLETE,skc_composition_sort_execute_cb,impl));
cl(ReleaseEvent(complete));
@ -456,7 +456,7 @@ skc_composition_raster_release(struct skc_composition_impl * const impl)
static
void
skc_composition_unseal_block(struct skc_composition_impl * const impl,
skc_composition_unseal_block(struct skc_composition_impl * const impl,
skc_bool const block)
{
// return if already unsealed
@ -526,7 +526,7 @@ skc_composition_reset(struct skc_composition_impl * const impl)
static
void
skc_composition_unseal_block_reset(struct skc_composition_impl * const impl,
skc_composition_unseal_block_reset(struct skc_composition_impl * const impl,
skc_bool const block,
skc_bool const reset)
{
@ -590,7 +590,7 @@ skc_composition_pfn_place(struct skc_composition_impl * const impl,
SKC_TYPED_HANDLE_TYPE_IS_RASTER,
rasters,
count);
if (err)
if (err)
return err;
skc_runtime_handle_device_retain(impl->runtime,rasters,count);
@ -614,7 +614,7 @@ skc_composition_pfn_place(struct skc_composition_impl * const impl,
do {
skc_uint rem;
// find out how much room is left in then ring's snap
// find out how much room is left in then ring's snap
// if the place ring is full -- let it drain
SKC_SCHEDULER_WAIT_WHILE(impl->runtime->scheduler,(rem = skc_extent_ring_wip_rem(&impl->cmds.ring)) == 0);

View File

@ -38,15 +38,15 @@ typedef enum skc_composition_state_e {
//
struct skc_composition_impl
{
{
struct skc_composition * composition;
struct skc_runtime * runtime;
SKC_ASSERT_STATE_DECLARE(skc_composition_state_e);
skc_int lock_count; // wip renders
struct {
struct {
skc_grid_t place;
skc_grid_t sort;
} grids;

View File

@ -27,10 +27,10 @@ struct skc_config
} host; // alignment determined by compiler
struct {
skc_uint size;
skc_uint subbufs;
skc_uint subbufs;
} device; // alignment determined by device
} suballocator;
struct {
skc_uint size;
} scheduler;
@ -58,7 +58,7 @@ struct skc_config
struct {
skc_uint size; // a large fraction of block pool size
skc_uint width; // determines number of launched reclamation subgroups
skc_uint recs; // how many in-flight width-subgroup reclamation grids
skc_uint recs; // how many in-flight width-subgroup reclamation grids
} handle_pool;
struct {

View File

@ -46,7 +46,7 @@ static
cl_command_queue
skc_runtime_cl_12_create_cq(struct skc_runtime * const runtime,
struct skc_cq_pool * const pool)
{
cl_command_queue cq;
@ -59,7 +59,7 @@ skc_runtime_cl_12_create_cq(struct skc_runtime * const runtime,
cq = clCreateCommandQueue(runtime->cl.context,
runtime->cl.device_id,
pool->cq_props,
&cl_err); cl_ok(cl_err);
&cl_err); cl_ok(cl_err);
#else
if (runtime_cl->version.major < 2)
{
@ -71,7 +71,7 @@ skc_runtime_cl_12_create_cq(struct skc_runtime * const runtime,
cq = clCreateCommandQueue(runtime_cl->context,
runtime_cl->device_id,
(cl_command_queue_properties)type,
&cl_err); cl_ok(cl_err);
&cl_err); cl_ok(cl_err);
}
else
{
@ -135,7 +135,7 @@ skc_cq_pool_dispose(struct skc_runtime * const runtime,
//
//
static
static
void
skc_cq_pool_write(struct skc_cq_pool * const pool,
cl_command_queue cq)
@ -174,7 +174,7 @@ skc_cq_pool_expand(struct skc_runtime * const runtime,
//
//
static
static
cl_command_queue
skc_cq_pool_read(struct skc_runtime * const runtime,
struct skc_cq_pool * const pool)
@ -199,7 +199,7 @@ skc_runtime_acquire_cq_in_order(struct skc_runtime * const runtime)
}
void
skc_runtime_release_cq_in_order(struct skc_runtime * const runtime,
skc_runtime_release_cq_in_order(struct skc_runtime * const runtime,
cl_command_queue cq)
{
skc_cq_pool_write(&runtime->cq_pool,cq);

View File

@ -14,7 +14,7 @@
// Why we need to wrap command queue creation:
//
// - command queue creation is expensive
//
//
// - the CL 1.2 function is deprecated in 2.0
//

View File

@ -33,7 +33,7 @@ typedef enum skc_device_kernel_id {
SKC_DEVICE_KERNEL_ID_FILLS_EXPAND,
SKC_DEVICE_KERNEL_ID_RASTERIZE_ALL,
SKC_DEVICE_KERNEL_ID_RASTERIZE_ALL,
SKC_DEVICE_KERNEL_ID_RASTERIZE_LINES,
SKC_DEVICE_KERNEL_ID_RASTERIZE_QUADS,
SKC_DEVICE_KERNEL_ID_RASTERIZE_CUBICS,
@ -69,12 +69,12 @@ void
skc_device_dispose(struct skc_runtime * const runtime);
//
//
// multi-threading/context/device requires multiple kernel instances
//
cl_kernel
skc_device_acquire_kernel(struct skc_device * const device,
skc_device_acquire_kernel(struct skc_device * const device,
skc_device_kernel_id const type);
void
@ -85,13 +85,13 @@ skc_device_release_kernel(struct skc_device * const device,
// grid shape can vary greatly by target platform
//
void
skc_device_enqueue_kernel(struct skc_device * const device,
skc_device_enqueue_kernel(struct skc_device * const device,
skc_device_kernel_id const type,
cl_command_queue cq,
cl_kernel kernel,
size_t const work_size,
size_t const work_size,
cl_uint num_events_in_wait_list,
cl_event const * const event_wait_list,
cl_event const * const event_wait_list,
cl_event * const event);
//

View File

@ -15,7 +15,7 @@
#include "skc.h"
//
//
//
//
skc_err
@ -23,7 +23,7 @@ skc_path_builder_cl_12_create(struct skc_context * const context,
struct skc_path_builder * * const path_builder);
//
//
//
//
skc_err

View File

@ -127,7 +127,7 @@ skc_extent_phr_pdrw_read(struct skc_extent_phr_pdrw * const extent,
if (extent->size == 0)
return;
cl(EnqueueReadBuffer(cq,
cl(EnqueueReadBuffer(cq,
extent->drw,
CL_FALSE,
0,
@ -191,7 +191,7 @@ skc_extent_thr_tdrw_read(struct skc_extent_thr_tdrw * const extent,
if (extent->size == 0)
return;
cl(EnqueueReadBuffer(cq,
cl(EnqueueReadBuffer(cq,
extent->drw,
CL_FALSE,
0,

View File

@ -40,7 +40,7 @@
// DURABLE R/W HOST EXTENT -- STANDARD CACHED MEMORY
//
struct skc_extent_phrw
struct skc_extent_phrw
{
void * hrw;
};
@ -58,7 +58,7 @@ skc_extent_phrw_free(struct skc_runtime * const runtime,
// DURABLE R/W DEVICE EXTENT -- ALLOCATED FROM DEVICE HEAP
//
struct skc_extent_pdrw
struct skc_extent_pdrw
{
cl_mem drw;
};
@ -76,7 +76,7 @@ skc_extent_pdrw_free(struct skc_runtime * const runtime,
// EPHEMERAL DEVICE R/W EXTENT -- ALLOCATED QUICKLY FROM A MANAGED RING
//
struct skc_extent_tdrw
struct skc_extent_tdrw
{
size_t size;
cl_mem drw;

View File

@ -88,7 +88,7 @@ union skc_handle_reclaim_rec
{
// ELEMENT 0
struct skc_runtime * runtime;
// ELEMENT 1
struct {
skc_uint rem; // # of available records

View File

@ -132,7 +132,7 @@ void
skc_interop_key_callback(GLFWwindow * window, int key, int scancode, int action, int mods)
{
struct skc_interop * interop = glfwGetWindowUserPointer(window);
if (action == GLFW_RELEASE)
return;
@ -182,7 +182,7 @@ void
skc_interop_window_size_callback(GLFWwindow * window, int width, int height)
{
struct skc_interop * interop = glfwGetWindowUserPointer(window);
interop->width = width;
interop->height = height;
interop->is_resized = true;
@ -217,7 +217,7 @@ skc_interop_scroll_callback(GLFWwindow * window, double xoffset, double yoffset)
if (!ctrl)
return;
struct skc_interop * interop = glfwGetWindowUserPointer(window);
struct skc_interop * interop = glfwGetWindowUserPointer(window);
skc_interop_scale(interop,yoffset);
@ -242,7 +242,7 @@ static
void
skc_interop_cursor_position_callback(GLFWwindow * window, double x, double y)
{
int const state = glfwGetMouseButton(window,GLFW_MOUSE_BUTTON_LEFT);
static bool is_mouse_dragging = false;
@ -253,8 +253,8 @@ skc_interop_cursor_position_callback(GLFWwindow * window, double x, double y)
if (state == GLFW_PRESS)
{
struct skc_interop * interop = glfwGetWindowUserPointer(window);
struct skc_interop * interop = glfwGetWindowUserPointer(window);
if (is_mouse_dragging)
{
const bool ctrl =
@ -294,7 +294,7 @@ skc_interop_cursor_position_callback(GLFWwindow * window, double x, double y)
mx - x_prev,
my - y_prev);
}
interop->is_transform = true;
}
else
@ -417,7 +417,7 @@ skc_interop_create()
// save back pointer
glfwSetWindowUserPointer(interop->window,interop);
glfwMakeContextCurrent(interop->window);
// set up GLAD
@ -519,7 +519,7 @@ skc_interop_transform(struct skc_interop * interop,
// spinner...
if (interop->is_spinning)
interop->rotate_theta = fmodf(interop->rotate_theta + SKC_ROTATE_STEP,(float)(M_PI*2.0));
// always rotate and scale around surface center point
skc_transform_stack_push_rotate_scale_xy(ts,
interop->rotate_theta,
@ -673,7 +673,7 @@ skc_interop_poll(struct skc_interop * interop, int * key)
bool const is_transform = interop->is_transform || interop->is_spinning;
interop->is_transform = false;
return is_transform;
}
@ -736,7 +736,7 @@ skc_interop_should_exit(struct skc_interop * interop)
//
void
skc_interop_get_size(struct skc_interop * interop,
skc_interop_get_size(struct skc_interop * interop,
uint32_t * width,
uint32_t * height)
{

View File

@ -90,7 +90,7 @@
// FIXME -- move these to log2 values where appropriate
//
static
static
struct skc_config const config =
{
.suballocator = {
@ -102,7 +102,7 @@ struct skc_config const config =
.size = 128 * 1024 * 1024,
.subbufs = 1024 // must be <= (1 << (8 * sizeof(skc_subbuf_id_t)))
}
},
},
.scheduler = {
.size = 4096 // 128 // FIXME -- this is just for testing -- way too big -- schedulees should bring their own state
@ -382,7 +382,7 @@ skc_device_shaper_paths_copy(size_t const work_size,
work_local [0] = SKC_PATHS_COPY_SUBGROUP_SIZE;
return work_local;
#else
#else
return NULL; // let runtime figure out local work size
#endif
}
@ -659,7 +659,7 @@ struct skc_device
{
//
// FIXME -- an OpenCL 2.1+ device would clone these kernels in a
// multithreaded system.
// multithreaded system.
//
// Not having the ability to clone kernels (yet set their sticky
// args) was an oversight in previous versions of OpenCL.

View File

@ -256,7 +256,7 @@ struct skc_path_builder_impl
static
union skc_ringdex_expand
skc_ringdex_expand(struct skc_path_builder_impl * const impl,
skc_ringdex_expand(struct skc_path_builder_impl * const impl,
skc_ringdex_t const ringdex)
{
return (union skc_ringdex_expand){
@ -322,7 +322,7 @@ skc_ringdex_prev_is_equal(struct skc_path_builder_impl * const impl)
static
skc_uint
skc_ringdex_dont_map_last(struct skc_path_builder_impl * const impl,
skc_ringdex_dont_map_last(struct skc_path_builder_impl * const impl,
skc_uint const to_block)
{
// no blocks acquired OR this is last block in subbuf
@ -509,7 +509,7 @@ skc_path_builder_impl_unmap(struct skc_path_builder_impl * const impl,
#if 0
fprintf(stderr,"unmap: [%2u,%2u)\n",from,to);
#endif
while (from != to) // 'to' might be out of range
{
// bring 'from' back in range
@ -647,9 +647,9 @@ void
skc_path_builder_paths_copy_cb(cl_event event, cl_int status, skc_grid_t grid)
{
SKC_CL_CB(status);
struct skc_release_record * const release = skc_grid_get_data(grid);
SKC_SCHEDULER_SCHEDULE(release->impl->runtime->scheduler,skc_path_builder_complete,grid);
}
@ -802,7 +802,7 @@ skc_path_builder_grid_pfn_waiting(skc_grid_t const grid)
// if there was no wip then round up to the next subbuf
//
skc_ringdex_wip_to_subbuf_inc(impl);
//
// update prev/curr with with incremented wip
//

View File

@ -329,7 +329,7 @@ skc_raster_builder_pfn_release(struct skc_raster_builder_impl * const impl)
//
//
static
static
void
skc_raster_builder_rasters_release(struct skc_runtime * const runtime,
skc_raster_t const * const rasters,
@ -344,12 +344,12 @@ skc_raster_builder_rasters_release(struct skc_runtime * const runtime,
skc_grid_deps_unmap(runtime->deps,rasters_from,count_from);
skc_runtime_raster_device_release(runtime,rasters_from,count_from);
}
}
else // from > to implies wrap
{
skc_raster_t const * rasters_lo = rasters + from;
skc_uint count_lo = size - from;
skc_grid_deps_unmap(runtime->deps,rasters_lo,count_lo);
skc_runtime_raster_device_release(runtime,rasters_lo,count_lo);
@ -358,7 +358,7 @@ skc_raster_builder_rasters_release(struct skc_runtime * const runtime,
}
}
static
static
void
skc_raster_builder_paths_release(struct skc_runtime * const runtime,
struct skc_extent_phrwg_thr1s_snap * const snap)
@ -401,7 +401,7 @@ skc_raster_builder_cohort_grid_pfn_dispose(skc_grid_t const grid)
// snap alloc the paths -- this host snap simply sets up pointers
skc_extent_phrwg_thr1s_snap_alloc(runtime,&impl->path_ids,&cohort->path_ids);
// unmap and release raster ids
skc_raster_builder_paths_release(runtime,&cohort->path_ids);
@ -418,7 +418,7 @@ skc_raster_builder_cohort_grid_pfn_dispose(skc_grid_t const grid)
// unmap and release raster ids
skc_raster_builder_rasters_release(runtime,impl->raster_ids.hrw,size,from,to);
// release cohort's remaining allocated resources
// release cohort's remaining allocated resources
skc_extent_phrwg_tdrNs_snap_free(runtime,&cohort->raster_ids);
skc_runtime_release_cq_in_order(runtime,cohort->cq);
skc_extent_thr_tdrw_free(runtime,&cohort->atomics);
@ -458,7 +458,7 @@ skc_raster_cohort_prefix_release(skc_grid_t const grid)
// FIXME -- note that pfn_dispose can be accomplished here
// release the grid
skc_grid_complete(grid);
skc_grid_complete(grid);
}
static
@ -466,7 +466,7 @@ void
skc_raster_cohort_prefix_cb(cl_event event, cl_int status, skc_grid_t const grid)
{
SKC_CL_CB(status);
struct skc_raster_cohort * const cohort = skc_grid_get_data(grid);
struct skc_scheduler * const scheduler = cohort->impl->runtime->scheduler;
@ -599,7 +599,7 @@ skc_raster_cohort_sort_prefix(skc_grid_t const grid)
// DELETE ALL THIS WHEN READY
//
#if 0
#if 0
//
//
//
@ -625,7 +625,7 @@ skc_raster_cohort_sort_prefix(skc_grid_t const grid)
//
// some counters
//
union skc_raster_cohort_meta_in meta_in = {
union skc_raster_cohort_meta_in meta_in = {
.blocks = 0,
.offset = 0,
.pk = 0,
@ -665,10 +665,10 @@ skc_raster_cohort_sort_prefix(skc_grid_t const grid)
// store back to buffer
metas->inout[curr.cohort].in = meta_in;
// update meta_in
meta_in.blocks = 0;
meta_in.offset = ii;
meta_in.offset = ii;
meta_in.pk = 0;
meta_in.rk = 0;
}
@ -699,7 +699,7 @@ skc_raster_cohort_sort_prefix(skc_grid_t const grid)
// store back to buffer
metas->inout[curr.cohort].in = meta_in;
// unmap
skc_extent_thrw_tdrw_unmap(&cohort->keys,
keys,
@ -795,7 +795,7 @@ void
skc_raster_cohort_rasterize_cb(cl_event event, cl_int status, skc_grid_t const grid)
{
SKC_CL_CB(status);
struct skc_raster_cohort * const cohort = skc_grid_get_data(grid);
// as quickly as possible, enqueue next stage in pipeline to context command scheduler
@ -1079,7 +1079,7 @@ skc_raster_builder_cohort_grid_pfn_waiting(skc_grid_t const grid)
// allocate the ephemeral/temp cohort
skc_subbuf_id_t id;
struct skc_raster_cohort * const cohort =
struct skc_raster_cohort * const cohort =
skc_runtime_host_temp_alloc(runtime,
SKC_MEM_FLAGS_READ_WRITE,
sizeof(*cohort),
@ -1145,7 +1145,7 @@ skc_raster_builder_cohort_create(struct skc_raster_builder_impl * const impl)
static
skc_err
skc_raster_builder_pfn_add(struct skc_raster_builder_impl * const impl,
skc_raster_builder_pfn_add(struct skc_raster_builder_impl * const impl,
skc_path_t const * paths,
skc_uint count)
{
@ -1329,7 +1329,7 @@ skc_raster_builder_cl_12_create(struct skc_context * const context,
// acquire kernels
//
impl->kernels.fills_expand = skc_device_acquire_kernel(runtime->device, SKC_DEVICE_KERNEL_ID_FILLS_EXPAND);
impl->kernels.rasterize_all = skc_device_acquire_kernel(runtime->device, SKC_DEVICE_KERNEL_ID_RASTERIZE_ALL);
impl->kernels.rasterize_all = skc_device_acquire_kernel(runtime->device, SKC_DEVICE_KERNEL_ID_RASTERIZE_ALL);
#if 0
impl->kernels.rasterize_lines = skc_device_acquire_kernel(runtime->device, SKC_DEVICE_KERNEL_ID_RASTERIZE_LINES);

View File

@ -31,7 +31,7 @@
//
//
static
static
void
skc_block_pool_create(struct skc_runtime * const runtime, cl_command_queue cq)
{
@ -41,7 +41,7 @@ skc_block_pool_create(struct skc_runtime * const runtime, cl_command_queue cq)
// create block extent
skc_extent_pdrw_alloc(runtime,
&runtime->block_pool.blocks,
runtime->block_pool.size->pool_size *
runtime->block_pool.size->pool_size *
runtime->config->block.bytes);
// allocate block pool ids
@ -84,7 +84,7 @@ skc_block_pool_create(struct skc_runtime * const runtime, cl_command_queue cq)
cl(ReleaseKernel(k1));
}
static
static
void
skc_block_pool_dispose(struct skc_runtime * const runtime)
{
@ -105,7 +105,7 @@ skc_runtime_yield(struct skc_runtime * const runtime)
}
static
void
void
skc_runtime_wait(struct skc_runtime * const runtime)
{
skc_scheduler_wait(runtime->scheduler);
@ -122,7 +122,7 @@ skc_runtime_cl_12_create(struct skc_context * const context,
{
// allocate the runtime
struct skc_runtime * const runtime = malloc(sizeof(*runtime));
// save off CL objects
runtime->cl.context = context_cl;
runtime->cl.device_id = device_id_cl;
@ -135,7 +135,7 @@ skc_runtime_cl_12_create(struct skc_context * const context,
sizeof(align_bits),
&align_bits,
NULL));
runtime->cl.align_bytes = align_bits / 8;
// create device
@ -183,7 +183,7 @@ skc_runtime_cl_12_create(struct skc_context * const context,
context->yield = skc_runtime_yield;
context->wait = skc_runtime_wait;
context->path_builder = skc_path_builder_cl_12_create;
context->path_retain = skc_runtime_path_host_retain;
context->path_release = skc_runtime_path_host_release;
@ -196,7 +196,7 @@ skc_runtime_cl_12_create(struct skc_context * const context,
context->composition = skc_composition_cl_12_create;
context->styling = skc_styling_cl_12_create;
context->surface = skc_surface_cl_12_create;
// block on pool creation
@ -234,7 +234,7 @@ skc_runtime_cl_12_dispose(struct skc_context * const context)
skc_block_pool_dispose(context->runtime);
// skc_handle_pool_dispose(context->runtime);
return SKC_ERR_SUCCESS;
}
@ -246,7 +246,7 @@ void
skc_runtime_cl_12_debug(struct skc_context * const context)
{
struct skc_runtime * const runtime = context->runtime;
// acquire out-of-order cq
cl_command_queue cq = skc_runtime_acquire_cq_in_order(runtime);

View File

@ -32,7 +32,7 @@ void
skc_styling_unmap_complete(skc_grid_t const grid)
{
struct skc_styling_impl * const impl = skc_grid_get_data(grid);
impl->state = SKC_STYLING_STATE_SEALED;
skc_grid_complete(grid);
@ -65,7 +65,7 @@ skc_styling_grid_pfn_execute(skc_grid_t const grid)
skc_extent_phwN_pdrN_unmap(&impl->layers,styling->layers.extent,impl->cq,NULL);
skc_extent_phwN_pdrN_unmap(&impl->groups,styling->groups.extent,impl->cq,NULL);
skc_extent_phwN_pdrN_unmap(&impl->extras,styling->extras.extent,impl->cq,&complete);
skc_extent_phwN_pdrN_unmap(&impl->extras,styling->extras.extent,impl->cq,&complete);
// set the event
cl(SetEventCallback(complete,CL_COMPLETE,skc_styling_unmap_cb,grid));
@ -97,7 +97,7 @@ skc_styling_pfn_seal(struct skc_styling_impl * const impl)
{
SKC_SCHEDULER_WAIT_WHILE(scheduler,impl->state != SKC_STYLING_STATE_UNSEALED);
}
//
// we're unsealed so we need to seal and start the grid
//
@ -121,7 +121,7 @@ void
skc_styling_unseal_complete(struct skc_styling_impl * const impl)
{
struct skc_runtime * const runtime = impl->runtime;
// we're now unsealed
impl->state = SKC_STYLING_STATE_UNSEALED;
}
@ -131,7 +131,7 @@ void
skc_styling_unseal_cb(cl_event event, cl_int status, struct skc_styling_impl * const impl)
{
SKC_CL_CB(status);
// as quickly as possible, enqueue next stage in pipeline to context command scheduler
SKC_SCHEDULER_SCHEDULE(impl->runtime->scheduler,skc_styling_unseal_complete,impl);
}
@ -166,10 +166,10 @@ skc_styling_pfn_unseal(struct skc_styling_impl * const impl, skc_bool const bloc
//
if (impl->state == SKC_STYLING_STATE_SEALING)
{
// wait if sealing
// wait if sealing
SKC_SCHEDULER_WAIT_WHILE(scheduler,impl->state != SKC_STYLING_STATE_SEALED);
}
// wait for rendering locks to be released
SKC_SCHEDULER_WAIT_WHILE(scheduler,impl->lock_count > 0);
@ -183,7 +183,7 @@ skc_styling_pfn_unseal(struct skc_styling_impl * const impl, skc_bool const bloc
cl_event complete;
struct skc_styling * const styling = impl->styling;
styling->layers.extent = skc_extent_phwN_pdrN_map(&impl->layers,impl->cq,NULL);
styling->groups.extent = skc_extent_phwN_pdrN_map(&impl->groups,impl->cq,NULL);
styling->extras.extent = skc_extent_phwN_pdrN_map(&impl->extras,impl->cq,&complete);
@ -239,7 +239,7 @@ skc_styling_pfn_release(struct skc_styling_impl * const impl)
// release the cq
skc_runtime_release_cq_in_order(runtime,impl->cq);
// free extents
skc_extent_phwN_pdrN_free(runtime,&impl->layers);
skc_extent_phwN_pdrN_free(runtime,&impl->groups);
@ -301,7 +301,7 @@ skc_styling_cl_12_create(struct skc_context * const context,
impl->lock_count = 0;
impl->cq = skc_runtime_acquire_cq_in_order(runtime);
//
// The styling object is unique in that the API lets the user
// specify resource limits

View File

@ -40,7 +40,7 @@ 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

View File

@ -80,7 +80,7 @@ static
void
skc_surface_debug_clear(struct skc_surface_impl * const impl,
skc_framebuffer_t fb,
float const rgba[4],
float const rgba[4],
uint32_t const rect[4])
{
size_t const origin[3] = { rect[0], rect[1], 0 };
@ -150,11 +150,11 @@ skc_surface_pfn_release(struct skc_surface_impl * const impl)
//
// otherwise, release all resources
//
// drain the command queue
cl(Finish(impl->cq));
struct skc_runtime * const runtime = impl->runtime;
struct skc_runtime * const runtime = impl->runtime;
// release the kernel
cl(ReleaseKernel(impl->kernels.render));
@ -167,7 +167,7 @@ skc_surface_pfn_release(struct skc_surface_impl * const impl)
// release fb
// skc_extent_phrN_pdwN_free(runtime,&impl->fb);
// free surface impl
skc_runtime_host_perm_free(runtime,impl);
}
@ -200,7 +200,7 @@ skc_surface_render_complete(struct skc_surface_render * const render)
// grid is now complete
skc_grid_complete(render->grid);
struct skc_surface_impl * const impl = render->impl;
struct skc_surface_impl * const impl = render->impl;
struct skc_runtime * const runtime = impl->runtime;
// release the surface
@ -341,7 +341,7 @@ skc_surface_pfn_render(struct skc_surface_impl * const impl,
// them here.
//
// retain and lock the styling and composition
// retain and lock the styling and composition
skc_styling_retain_and_lock(styling);
skc_composition_retain_and_lock(composition);

View File

@ -155,7 +155,7 @@ skc_raster_builder_transforms_append(struct skc_raster_builder * const raster_bu
static
skc_bool
skc_raster_builder_clips_append(struct skc_raster_builder * const raster_builder,
union skc_cmd_fill * const cmd,
union skc_cmd_fill * const cmd,
skc_raster_clip_weakref_t * const raster_clip_weakref,
skc_float const * const raster_clip)
{
@ -183,7 +183,7 @@ skc_raster_builder_cmds_append(struct skc_raster_builder * const raster_builder,
cmd->cohort = skc_extent_ring_wip_count(&raster_builder->raster_ids.ring);
skc_uint const base = skc_extent_ring_wip_index_inc(&raster_builder->fill_cmds.ring);
raster_builder->fill_cmds.extent[base] = *cmd;
#if 0
@ -292,7 +292,7 @@ skc_raster_add_filled(skc_raster_builder_t raster_builder,
// mask off the guard bits
path = SKC_TYPED_HANDLE_TO_HANDLE(path);
//
//
// build the command...
//
union skc_cmd_fill cmd;

View File

@ -63,8 +63,8 @@ struct skc_scheduler_command
void * data;
skc_scheduler_command_pfn pfn;
skc_scheduler_command_state state;
char const * name;
};
char const * name;
};
#if 0
struct skc_scheduler_command

View File

@ -18,12 +18,12 @@
#include "types.h"
//
//
//
//
#define SKC_SCHEDULER_SCHEDULE(s,c,d) skc_scheduler_schedule(s,c,d,#c)
#ifndef NDEBUG
#ifndef NDEBUG
#include <stdio.h>
@ -70,7 +70,7 @@ skc_scheduler_create(struct skc_runtime * const runtime, skc_uint const size);
void
skc_scheduler_dispose(struct skc_runtime * const runtime,
struct skc_scheduler * const scheduler);
//
//

View File

@ -27,7 +27,7 @@ struct skc_styling
void (* seal )(struct skc_styling_impl * const impl);
void (* unseal )(struct skc_styling_impl * const impl, skc_bool const block);
void (* release)(struct skc_styling_impl * const impl);
skc_int ref_count;
struct {

View File

@ -127,7 +127,7 @@ SKC_STATIC_ASSERT(sizeof(struct skc_group_node) == sizeof(skc_uint2) * 3); // 6
union skc_gradient_slope
{
skc_float slope;
skc_half color_pair[2];
skc_half color_pair[2];
};
SKC_STATIC_ASSERT(sizeof(union skc_gradient_slope) == sizeof(skc_float));
@ -174,7 +174,7 @@ SKC_STATIC_ASSERT(sizeof(union skc_gradient_vector) == sizeof(skc_float4));
// +------------+---------------------------------+--------+-------------------------+
//
// COLOR LAYOUT:
//
//
// R[0]R[1], R[1]R[2], ... R[N-1]R[N-1]
// G[0]G[1], G[1]G[2], ... G[N-1]G[N-1]
// B[0]B[1], B[1]B[2], ... B[N-1]B[N-1]
@ -203,7 +203,7 @@ SKC_STATIC_ASSERT(sizeof(union skc_gradient_vector) == sizeof(skc_float4));
// +------------+--------------------------------+--------+
//
// COLOR LAYOUT:
//
//
// R[0]R[1], R[1]R[2], ... R[N-1]R[N-1] <-------------------------- FIXME -- USE HERB'S SINGLE FMA REPRESENTATION
// G[0]G[1], G[1]G[2], ... G[N-1]G[N-1] <-------------------------- FIXME -- USE HERB'S SINGLE FMA REPRESENTATION
// B[0]B[1], B[1]B[2], ... B[N-1]B[N-1] <-------------------------- FIXME -- USE HERB'S SINGLE FMA REPRESENTATION
@ -222,7 +222,7 @@ SKC_STATIC_ASSERT(sizeof(union skc_gradient_vector) == sizeof(skc_float4));
// This will require that the colors are laid out in sampler-friendly
// order:
//
// RGBA[0]RGBA[1], RGBA[1]RGBA[2], ..., RGBA[N-1]RGBA[N-1]
// RGBA[0]RGBA[1], RGBA[1]RGBA[2], ..., RGBA[N-1]RGBA[N-1]
//
//
@ -247,4 +247,4 @@ SKC_STATIC_ASSERT(sizeof(union skc_gradient_vector) == sizeof(skc_float4));
//
//

View File

@ -178,7 +178,7 @@ skc_suballocator_subbuf_alloc(struct skc_suballocator * const suballocator,
}
assert(suballocator->rem.avail > 0);
// return origin
return avail->origin;
}
@ -189,7 +189,7 @@ skc_suballocator_subbuf_alloc(struct skc_suballocator * const suballocator,
skc_uint spare_idx = suballocator->count - spare_rem;
skc_subbuf_id_t const spare_id = ids[spare_idx];
struct skc_subbuf * const spare = suballocator->subbufs + spare_id;
assert(spare->inuse == 0);
// simple -- we're popping the top-of-stack of spares
@ -199,7 +199,7 @@ skc_suballocator_subbuf_alloc(struct skc_suballocator * const suballocator,
*subbuf_id = spare_id;
SKC_SUBALLOCATOR_DEBUG_ALLOC(suballocator,spare_id,size_ru);
// get prev
struct skc_subbuf * const prev = avail->prev;

View File

@ -39,7 +39,7 @@
typedef skc_ushort skc_subbuf_id_t;
typedef skc_uint skc_subbuf_size_t; // <4GB
// typedef size_t skc_subbuf_size_t; // >4GB
// typedef size_t skc_subbuf_size_t; // >4GB
//
//
@ -49,7 +49,7 @@ struct skc_subbuf
{
struct skc_subbuf * prev;
struct skc_subbuf * next;
skc_subbuf_size_t size;
skc_subbuf_size_t origin;

View File

@ -414,7 +414,7 @@
#define SKC_TTCK_LO_BITS_PREFIX 1
#define SKC_TTCK_LO_OFFSET_PREFIX SKC_TTCK_LO_BITS_ID
#define SKC_TTCK_LO_MASK_PREFIX SKC_BITS_TO_MASK_AT(SKC_TTCK_LO_BITS_PREFIX,SKC_TTCK_LO_OFFSET_PREFIX)
#define SKC_TTCK_LO_BITS_ID_PREFIX (SKC_TTCK_LO_BITS_ID + SKC_TTCK_LO_BITS_PREFIX)
#define SKC_TTCK_LO_MASK_ID_PREFIX SKC_BITS_TO_MASK(SKC_TTCK_LO_BITS_ID_PREFIX)

View File

@ -12,7 +12,7 @@
//
//
#include <intrin.h>
#include <intrin.h>
//
//

View File

@ -56,27 +56,27 @@ SKC_STATIC_ASSERT(sizeof(union skc_weakref) == sizeof(skc_ulong));
//
//
void
void
skc_weakref_epoch_init(skc_epoch_t * const epoch)
{
*epoch = SKC_WEAKREF_EPOCH_INIT;
}
void
void
skc_weakref_epoch_inc(skc_epoch_t * const epoch)
{
*epoch += SKC_WEAKREF_EPOCH_ONE;
}
void
skc_weakref_init(skc_weakref_t * const weakref,
void
skc_weakref_init(skc_weakref_t * const weakref,
skc_epoch_t * const epoch,
skc_uint const index)
{
*weakref = *epoch | (index & SKC_WEAKREF_INDEX_MASK);
}
bool
bool
skc_weakref_is_invalid(skc_weakref_t const * const weakref,
skc_epoch_t const * const epoch)
{

View File

@ -25,20 +25,20 @@ typedef skc_ulong skc_epoch_t;
//
//
void
void
skc_weakref_epoch_init(skc_epoch_t * const epoch);
void
void
skc_weakref_epoch_inc(skc_epoch_t * const epoch);
void
skc_weakref_init(skc_weakref_t * const weakref,
void
skc_weakref_init(skc_weakref_t * const weakref,
skc_epoch_t * const epoch,
skc_uint const index);
bool
bool
skc_weakref_is_invalid(skc_weakref_t const * const weakref,
skc_epoch_t const * const epoch);
skc_epoch_t const * const epoch);
skc_uint
skc_weakref_index(skc_weakref_t const * const weakref);

View File

@ -41,7 +41,7 @@
union skc_transform_stack_3x3_u
{
skc_transform_float_t a9[9];
struct {
skc_transform_float_t sx;
skc_transform_float_t shx;
@ -62,7 +62,7 @@ struct skc_transform_stack
{
uint32_t size;
uint32_t count;
skc_transform_weakref_t * weakrefs;
union skc_transform_stack_3x3_u * transforms;
};
@ -78,7 +78,7 @@ skc_transform_stack_3x3_u_copy(union skc_transform_stack_3x3_u * const __r
{
for (int32_t ii=0; ii<9; ii++)
dst->a9[ii] = src->a9[ii];
}
}
//
// C = A * B
@ -89,7 +89,7 @@ void
skc_transform_stack_3x3_u_multiply(union skc_transform_stack_3x3_u * const __restrict C,
union skc_transform_stack_3x3_u const * const __restrict A,
union skc_transform_stack_3x3_u const * const __restrict B)
{
{
C->sx = A->sx * B->sx + A->shx * B->shy + A->tx * B->w0;
C->shx = A->sx * B->shx + A->shx * B->sy + A->tx * B->w1;
C->tx = A->sx * B->tx + A->shx * B->ty + A->tx * B->w2;
@ -167,7 +167,7 @@ skc_transform_stack_save(struct skc_transform_stack * const ts)
}
void
skc_transform_stack_restore(struct skc_transform_stack * const ts,
skc_transform_stack_restore(struct skc_transform_stack * const ts,
uint32_t const restore)
{
ts->count = restore;
@ -177,7 +177,7 @@ skc_transform_stack_restore(struct skc_transform_stack * const ts,
//
//
static
static
union skc_transform_stack_3x3_u *
skc_transform_stack_tos(struct skc_transform_stack * const ts)
{
@ -241,7 +241,7 @@ skc_transform_stack_top_weakref(struct skc_transform_stack * const ts)
//
//
void
void
skc_transform_stack_drop(struct skc_transform_stack * const ts)
{
assert(ts->count >= 1);
@ -249,11 +249,11 @@ skc_transform_stack_drop(struct skc_transform_stack * const ts)
ts->count -= 1;
}
void
void
skc_transform_stack_dup(struct skc_transform_stack * const ts)
{
skc_transform_stack_ensure(ts);
union skc_transform_stack_3x3_u * const tos = skc_transform_stack_tos(ts);
skc_transform_stack_3x3_u_copy(tos+1,tos);
@ -269,18 +269,18 @@ skc_transform_stack_dup(struct skc_transform_stack * const ts)
void
skc_transform_stack_push_matrix(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const shx,
skc_transform_float_t const tx,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const ty,
skc_transform_float_t const w0,
skc_transform_float_t const w1,
skc_transform_float_t const w0,
skc_transform_float_t const w1,
skc_transform_float_t const w2)
{
skc_transform_stack_ensure(ts);
union skc_transform_stack_3x3_u * t = ts->transforms + ts->count;
t->sx = sx;
@ -310,10 +310,10 @@ skc_transform_stack_push_identity(struct skc_transform_stack * const ts)
void
skc_transform_stack_push_affine(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const shx,
skc_transform_float_t const shx,
skc_transform_float_t const tx,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const ty)
{
skc_transform_stack_push_matrix(ts,
@ -330,23 +330,23 @@ skc_transform_stack_push_translate(struct skc_transform_stack * const ts,
skc_transform_stack_push_matrix(ts,
1.0, 0.0, tx,
0.0, 1.0, ty,
0.0, 0.0, 1.0);
0.0, 0.0, 1.0);
}
void
skc_transform_stack_push_scale(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const sy)
{
skc_transform_stack_push_matrix(ts,
sx, 0.0, 0.0,
0.0, sy, 0.0,
0.0, 0.0, 1.0);
0.0, 0.0, 1.0);
}
void
skc_transform_stack_push_shear(struct skc_transform_stack * const ts,
skc_transform_float_t const shx,
skc_transform_float_t const shx,
skc_transform_float_t const shy)
{
skc_transform_stack_push_matrix(ts,
@ -412,7 +412,7 @@ skc_transform_stack_push_rotate_xy2(struct skc_transform_stack * const ts,
void
skc_transform_stack_push_rotate_xy(struct skc_transform_stack * const ts,
skc_transform_float_t const theta,
skc_transform_float_t const cx,
skc_transform_float_t const cx,
skc_transform_float_t const cy)
{
skc_transform_stack_push_rotate_xy2(ts,theta,cx,cy,cx,cy);
@ -421,7 +421,7 @@ skc_transform_stack_push_rotate_xy(struct skc_transform_stack * const ts,
void
skc_transform_stack_push_rotate_scale_xy(struct skc_transform_stack * const ts,
skc_transform_float_t const theta,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const sy,
skc_transform_float_t const cx,
skc_transform_float_t const cy)
@ -465,7 +465,7 @@ skc_transform_stack_push_quad_to_unit(struct skc_transform_stack * const ts,
//
// dividing by the determinant (just w2?)
//
skc_transform_float_t const det =
skc_transform_float_t const det =
DIAG2(T,0,4) +
DIAG3(T,3,7,2) +
DIAG3(T,6,1,5) -
@ -478,7 +478,7 @@ skc_transform_stack_push_quad_to_unit(struct skc_transform_stack * const ts,
skc_transform_float_t const rcp = 1.0 / det;
const union skc_transform_stack_3x3_u A =
const union skc_transform_stack_3x3_u A =
{
+DET3(T,4,5,7) * rcp,
-DET3(T,1,2,7) * rcp,
@ -495,7 +495,7 @@ skc_transform_stack_push_quad_to_unit(struct skc_transform_stack * const ts,
#else // just the adjoint can result in large values
const union skc_transform_stack_3x3_u A =
const union skc_transform_stack_3x3_u A =
{
+DET3(T,4,5,7),
-DET3(T,1,2,7),
@ -513,7 +513,7 @@ skc_transform_stack_push_quad_to_unit(struct skc_transform_stack * const ts,
#endif
skc_transform_stack_3x3_u_copy(T,&A);
return true;
}
@ -536,7 +536,7 @@ skc_transform_stack_push_unit_to_quad(struct skc_transform_stack * const ts,
skc_transform_float_t const x3 = (skc_transform_float_t)X(quad_dst,3);
skc_transform_float_t const y3 = (skc_transform_float_t)Y(quad_dst,3);
skc_transform_float_t sx = x1 - x0;
skc_transform_float_t shy = y1 - y0;
@ -547,7 +547,7 @@ skc_transform_stack_push_unit_to_quad(struct skc_transform_stack * const ts,
skc_transform_float_t const dy3 = -shy - dy2;
// if both zero then quad_dst is a parallelogram and affine
if ((dx3 == 0.0) && (dy3 == 0.0))
if ((dx3 == 0.0) && (dy3 == 0.0))
{
skc_transform_float_t const shx = x2 - x1;
skc_transform_float_t const sy = y2 - y1;
@ -556,7 +556,7 @@ skc_transform_stack_push_unit_to_quad(struct skc_transform_stack * const ts,
sx, shx, x0,
shy, sy, y0,
0.0, 0.0, 1.0);
}
}
else
{
skc_transform_float_t const dx1 = x1 - x2;
@ -600,7 +600,7 @@ skc_transform_stack_push_quad_to_quad(struct skc_transform_stack * const ts,
if (skc_transform_stack_push_quad_to_unit(ts,quad_src) == false)
return false;
if (skc_transform_stack_push_unit_to_quad(ts,quad_dst) == false)
if (skc_transform_stack_push_unit_to_quad(ts,quad_dst) == false)
return false;
union skc_transform_stack_3x3_u * const U2Q = skc_transform_stack_tos(ts);
@ -631,21 +631,21 @@ skc_transform_stack_push_rect_to_quad(struct skc_transform_stack * const ts,
const float y1,
const float quad_dst[8])
{
if (skc_transform_stack_push_unit_to_quad(ts,quad_dst) == false)
if (skc_transform_stack_push_unit_to_quad(ts,quad_dst) == false)
return false;
const union skc_transform_stack_3x3_u R2U =
const union skc_transform_stack_3x3_u R2U =
{
SKC_TRANSFORM_RCP((skc_transform_float_t)(x1-x0)),
0.0f,
SKC_TRANSFORM_RCP((skc_transform_float_t)(x1-x0)),
0.0f,
(skc_transform_float_t)-x0,
0.0f,
0.0f,
SKC_TRANSFORM_RCP((skc_transform_float_t)(y1-y0)),
(skc_transform_float_t)-y0,
0.0f,
0.0f,
0.0f,
0.0f,
1.0,
};
@ -682,7 +682,7 @@ skc_transform_stack_concat(struct skc_transform_stack * const ts)
if (ts->count <= 1)
return;
// get A and B
// get A and B
union skc_transform_stack_3x3_u * const B = skc_transform_stack_tos(ts);
const union skc_transform_stack_3x3_u * const A = B - 1;
@ -702,7 +702,7 @@ skc_transform_stack_concat(struct skc_transform_stack * const ts)
//
//
void
void
skc_transform_stack_transform_affine(struct skc_transform_stack * const ts,
skc_transform_float_t const x_pre,
skc_transform_float_t const y_pre,

View File

@ -70,21 +70,21 @@ skc_transform_stack_top_weakref(struct skc_transform_stack * const ts);
//
//
void
void
skc_transform_stack_drop(struct skc_transform_stack * const ts);
void
void
skc_transform_stack_dup(struct skc_transform_stack * const ts);
//
//
//
void
void
skc_transform_stack_transform_affine(struct skc_transform_stack * const ts,
skc_transform_float_t const x_pre,
skc_transform_float_t const x_pre,
skc_transform_float_t const y_pre,
skc_transform_float_t * const x_post,
skc_transform_float_t * const x_post,
skc_transform_float_t * const y_post);
//
@ -93,14 +93,14 @@ skc_transform_stack_transform_affine(struct skc_transform_stack * const ts,
void
skc_transform_stack_push_matrix(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const shx,
skc_transform_float_t const tx,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const sy,
skc_transform_float_t const ty,
skc_transform_float_t const w0,
skc_transform_float_t const w1,
skc_transform_float_t const w0,
skc_transform_float_t const w1,
skc_transform_float_t const w2);
void
@ -108,26 +108,26 @@ skc_transform_stack_push_identity(struct skc_transform_stack * const ts);
void
skc_transform_stack_push_affine(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const shx,
skc_transform_float_t const tx,
skc_transform_float_t const shy,
skc_transform_float_t const shy,
skc_transform_float_t const sy,
skc_transform_float_t const ty);
void
skc_transform_stack_push_translate(struct skc_transform_stack * const ts,
skc_transform_float_t const tx,
skc_transform_float_t const tx,
skc_transform_float_t const ty);
void
skc_transform_stack_push_scale(struct skc_transform_stack * const ts,
skc_transform_float_t const sx,
skc_transform_float_t const sx,
skc_transform_float_t const sy);
void
skc_transform_stack_push_shear(struct skc_transform_stack * const ts,
skc_transform_float_t const shx,
skc_transform_float_t const shx,
skc_transform_float_t const shy);
@ -148,7 +148,7 @@ skc_transform_stack_push_rotate_xy2(struct skc_transform_stack * const ts,
skc_transform_float_t const theta,
skc_transform_float_t const cx,
skc_transform_float_t const cy,
skc_transform_float_t const tx,
skc_transform_float_t const tx,
skc_transform_float_t const ty);
void

View File

@ -51,7 +51,7 @@ extern "C" {
#define VK_NULL_HANDLE 0
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
@ -64,7 +64,7 @@ extern "C" {
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
#endif
typedef uint32_t VkFlags;