mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
clover/api: Fail if trying to build a non-executable binary
From the OpenCL 1.2 Specification, Section 5.6.2 (about clBuildProgram): > If program is created with clCreateProgramWithBinary, then the > program binary must be an executable binary (not a compiled binary or > library). Reviewed-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
25d4e65eb7
commit
bad161c894
1 changed files with 7 additions and 0 deletions
|
|
@ -186,6 +186,13 @@ clBuildProgram(cl_program d_prog, cl_uint num_devs,
|
|||
if (prog.has_source) {
|
||||
prog.compile(devs, opts);
|
||||
prog.link(devs, opts, { prog });
|
||||
} else if (any_of([&](const device &dev){
|
||||
return prog.build(dev).binary_type() != CL_PROGRAM_BINARY_TYPE_EXECUTABLE;
|
||||
}, devs)) {
|
||||
// According to the OpenCL 1.2 specification, “if program is created
|
||||
// with clCreateProgramWithBinary, then the program binary must be an
|
||||
// executable binary (not a compiled binary or library).”
|
||||
throw error(CL_INVALID_BINARY);
|
||||
}
|
||||
|
||||
return CL_SUCCESS;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue