╭ storage_buffer_opengl.zig ────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
.. compile_errors/ safety/ README.md address_of_extern_var_as_const.zi address_space_pointer_access_chai address_spaces_pointer_access_cha address_spaces_pointer_access_cha address_spaces_pointer_access_cha ambiguous_reference.zig array_in_anon_struct.zig blocks.zig callconv_spirv.zig compile_error.zig comptime_aggregate_print.zig decl_value_arena.zig default_value_references_comptime dereferencing_though_multiple_poi disable_stack_tracing.zig error_union_variant_is_runtime_kn exit.zig export_from_body_of_coerced_fn.zi f32_passed_to_variadic_fn.zig f_segment_address_space_reading_a float_mode_optimized_reduce.zig fn_typeinfo_passed_to_comptime_fn for_loop.zig function_redeclaration.zig global_variable_redeclaration.zig hello_world.zig image_sampling_spirv.zig inherit_want_safety.zig inner_func_accessing_outer_var.zi large_add_function.zig large_slices.zig maximum_sized_integer_literal.zig nested_blocks.zig no_compile_panic_for_unchecked_ar non_leaf_functions.zig optionals.zig passing_u0_to_function.zig pointer_keeps_address_space.zig pointer_keeps_address_space_when_ pointer_to_explicit_generic_addre recursive_fibonacci.zig rem.zig returning_undefined_sentinel_term returns_in_try.zig runtime_bitwise_and.zig runtime_bitwise_or.zig save_function_return_values_in_ca sentinel_references_comptime_var. setting_an_address_space_on_a_loc simple_addition_and_subtraction.z simple_if_statement.zig spirv_mergable_pointers.zig ╭─────────────────────────────────╮ │storage_buffer_opengl.zig │ ╰─────────────────────────────────╯ tail_call_noreturn.zig taking_pointer_of_global_tagged_u try_in_comptime_in_struct_in_test type_names.zig union_unresolved_layout.zig unused_vars.zig while_loops.zig
1 const std = @import("std"); 2 3 const RuntimeArray = @SpirvType(.{ .runtime_array = @Vector(4, f32) }); 4 const Buffer = extern struct { 5 data: RuntimeArray, 6 }; 7 8 const output = @extern(*addrspace(.storage_buffer) Buffer, .{ 9 .name = "output", 10 .decoration = .{ .descriptor = .{ .set = 0, .binding = 0 } }, 11 }); 12 13 const num_segments = 20; 14 15 export fn main() callconv(.{ .spirv_kernel = .{ .x = 1, .y = 1, .z = 1 } }) void { 16 const val = std.spirv.global_invocation_id[0]; 17 if (val > num_segments) return; 18 var val_f: f32 = @floatFromInt(val); 19 val_f /= num_segments; 20 output.data[val] = .{ val_f, val_f, 0, 1 }; 21 } 22 23 // compile 24 // output_mode=Obj 25 // backend=auto 26 // target=spirv32-opengl 27 // emit_bin=true 28