dispatch: stop generating separate GLES1 API code.
[mesa.git] / src / mesa / main / syncobj.c
index 2c8bcbeaf7cbc2fcf5850886e851f0254fb2e452..1d178950c084b2e1fa200c44190b1b3c5d912817 100644 (file)
 #include "imports.h"
 #include "context.h"
 #include "macros.h"
+#include "mfeatures.h"
 #include "get.h"
 #include "dispatch.h"
+#include "mtypes.h"
 
-#if FEATURE_ARB_sync
 #include "syncobj.h"
 
 static struct gl_sync_object *
@@ -324,9 +325,13 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
    if (syncObj->StatusFlag) {
       ret = GL_ALREADY_SIGNALED;
    } else {
-      ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
+      if (timeout == 0) {
+         ret = GL_TIMEOUT_EXPIRED;
+      } else {
+         ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
 
-      ret = syncObj->StatusFlag ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED;
+         ret = syncObj->StatusFlag ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED;
+      }
    }
 
    _mesa_unref_sync_object(ctx, syncObj);
@@ -420,5 +425,3 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length,
       *length = size;
    }
 }
-
-#endif /* FEATURE_ARB_sync */