| 140 | } |
| 141 | |
| 142 | Status GlProgram::CreateWithBinaryShader(const BinaryShader& shader, |
| 143 | GlProgram* gl_program) { |
| 144 | GLuint program_id; |
| 145 | RETURN_IF_ERROR(CreateNewProgramId(&program_id)); |
| 146 | |
| 147 | // program_id needs to be properly deleted if there will be an error, hense |
| 148 | // wrap program_id into Program. |
| 149 | GlProgram program(program_id); |
| 150 | |
| 151 | RETURN_IF_ERROR(TFLITE_GPU_CALL_GL(glProgramBinary, program.id(), |
| 152 | shader.format(), shader.binary().data(), |
| 153 | shader.binary().size())); |
| 154 | RETURN_IF_ERROR(CheckProgramLinked(program.id())); |
| 155 | |
| 156 | *gl_program = std::move(program); |
| 157 | return OkStatus(); |
| 158 | } |
| 159 | |
| 160 | Status GlProgram::GetBinary(BinaryShader* binary_shader) { |
| 161 | GLint size = 0; |
nothing calls this directly
no test coverage detected