Skip to content

Instantly share code, notes, and snippets.

@flyx
Created October 3, 2012 12:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flyx/3826729 to your computer and use it in GitHub Desktop.
Save flyx/3826729 to your computer and use it in GitHub Desktop.
passing struct from Ada to OpenCL C
// kernel
typedef struct {
int2 offset;
int2 center;
} viewport;
kernel void renderkernel(viewport vp) {
// just accessing the struct crashes
int a = vp.offset;
}
// calling code (Ada)
type Viewport is record
Center : Int2;
Offset : Int2;
end record;
pragma Convention (C_Pass_By_Copy, Viewport);
procedure Set_To_Kernel (Target : CL.Kernels.Kernel; Value : Viewport;
Argument_Index : CL.UInt) is
procedure Setter is new CL.Kernels.Set_Kernel_Argument
(Argument_Type => Viewport, Argument_Index => Argument_Index);
begin
Setter (Target, Value);
end Set_To_Kernel;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment