/** * Validate inputs against outputs in a program pipeline. */ extern "C" bool _mesa_validate_pipeline_io(struct gl_pipeline_object *pipeline) { struct gl_shader_program **shProg = (struct gl_shader_program **) pipeline->CurrentProgram; /* Find first active stage in pipeline. */ unsigned idx, prev = 0; for (idx = 0; idx < ARRAY_SIZE(pipeline->CurrentProgram); idx++) { if (shProg[idx]) { prev = idx; break; } } for (idx = prev + 1; idx < ARRAY_SIZE(pipeline->CurrentProgram); idx++) { if (shProg[idx]) { /* Pipeline might include both non-compute and a compute program, do * not attempt to validate varyings between non-compute and compute * stage. */ if (shProg[idx]->_LinkedShaders[idx]->Stage == MESA_SHADER_COMPUTE) break; if (!validate_io(shProg[prev], shProg[idx])) return false; prev = idx; } } return true; }
std::size_t ConsoleWriteChannel::write(const byte_buffer& buffer) { DWORD result = 0; BOOL succeeded = peer_(hCons_, vpos(buffer), buffer.length() / charSize_, &result, NULL); validate_io(succeeded,"Write console error."); result = result * charSize_; return result; }