| /* |
| * Copyright 2024 Valve Corporation |
| * SPDX-License-Identifier: MIT |
| */ |
| #include "compiler/libcl/libcl.h" |
| |
| KERNEL(32) |
| libagx_fill(global uint32_t *address, uint32_t value) |
| { |
| assert((((uintptr_t)address) & 0x3) == 0); |
| |
| address[cl_global_id.x] = value; |
| } |
| |
| KERNEL(32) |
| libagx_copy_uint4(global uint4 *dest, global uint4 *src) |
| { |
| assert((((uintptr_t)dest) & 0xf) == 0); |
| assert((((uintptr_t)src) & 0xf) == 0); |
| |
| dest[cl_global_id.x] = src[cl_global_id.x]; |
| } |
| |
| KERNEL(16) |
| libagx_copy_uchar(global uint8_t *dest, global uint8_t *src) |
| { |
| dest[cl_global_id.x] = src[cl_global_id.x]; |
| } |
| |
| KERNEL(32) |
| libagx_fill_uint4(global uint4 *address, uint layer_stride_uint4, uint a, |
| uint b, uint c, uint d) |
| { |
| uint offs = cl_global_id.x + cl_global_id.y * layer_stride_uint4; |
| address[offs] = (uint4)(a, b, c, d); |
| } |