egl emulator: fixes for covegl conformance test

Support for eglChooseConfig with configs==NULL.
Also added small change to query EGL_LARGEST_PBUFFER attrib of surfaces.
Fixed error print in QemuPipeStream::readFully.

Those changes make sure that covegl completes & passes on the emulator with Translator
on linux in the backend.

Change-Id: I892917ec102ae85d56a16a7cb321e8c12e7083f1
This commit is contained in:
Stas Gurtovoy
2011-07-11 13:53:36 +03:00
committed by David 'Digit' Turner
parent 5dd421c56b
commit 201584b1d4
4 changed files with 12 additions and 7 deletions

View File

@@ -268,14 +268,14 @@ int FBConfig::chooseConfig(FrameBuffer *fb, EGLint * attribs, uint32_t * configs
//
uint32_t nVerifiedCfgs = 0;
for (int matchedIdx=0; matchedIdx<nConfigs; matchedIdx++) {
if ((configs_size > 0) && (nVerifiedCfgs >= configs_size)) break; //We have enouhgt configs
if ((configs != NULL) && (configs_size > 0) && (nVerifiedCfgs >= configs_size)) break; //We have enouhgt configs
int sCfgId;
s_egl.eglGetConfigAttrib(dpy, matchedConfigs[matchedIdx], EGL_CONFIG_ID, &sCfgId);
for (int fbIdx=0; fbIdx<s_numConfigs; fbIdx++) {
int dCfgId = s_fbConfigs[fbIdx]->m_attribValues[4]; //CONFIG_ID
if (sCfgId == dCfgId) {
//This config matches the requested attributes and filtered into fbConfigs, so we're happy with it
if (nVerifiedCfgs < configs_size) {
if (configs && nVerifiedCfgs < configs_size) {
configs[nVerifiedCfgs] = fbIdx;
}
nVerifiedCfgs++;