Harbor

branch main
showing the latest snapshot on main
workflow_compute_builtins.luma 539 B · Plain text
gpu/shader/tests/shaders/workflow_compute_builtins.luma 0644 Raw
-- Workflow compute builtin namespace test.

struct Params
	count: uint
	scale: float
end

struct DataBuffer
	values: [64]float
end

group sim = 0
	buffer params: Params
	buffer data: DataBuffer
end

shared scratch: [64]float

compute main @workgroup_size(64, 1, 1)
do
	let idx = work.local_index
	let gid = work.global_id.x
	let lid = work.local_id.x
	let group_x = work.group_id.x

	if gid < params.count then
		scratch[idx] = data.values[idx] * params.scale
		barrier()
		data.values[idx] = scratch[idx] + float(lid + group_x)
	end
end