if (screen->finished_seqno >= seqno)
return true;
-#ifndef USE_VC4_SIMULATOR
struct drm_vc4_wait_seqno wait;
memset(&wait, 0, sizeof(wait));
wait.seqno = seqno;
wait.timeout_ns = timeout_ns;
- int ret = drmIoctl(screen->fd, DRM_IOCTL_VC4_WAIT_SEQNO, &wait);
+ int ret;
+ if (!using_vc4_simulator)
+ ret = drmIoctl(screen->fd, DRM_IOCTL_VC4_WAIT_SEQNO, &wait);
+ else {
+ wait.seqno = screen->finished_seqno;
+ ret = 0;
+ }
+
if (ret == -ETIME) {
return false;
} else if (ret != 0) {
screen->finished_seqno = wait.seqno;
return true;
}
-#else
- return true;
-#endif
}
bool
vc4_bo_wait(struct vc4_bo *bo, uint64_t timeout_ns)
{
-#ifndef USE_VC4_SIMULATOR
struct vc4_screen *screen = bo->screen;
struct drm_vc4_wait_bo wait;
wait.handle = bo->handle;
wait.timeout_ns = timeout_ns;
- int ret = drmIoctl(screen->fd, DRM_IOCTL_VC4_WAIT_BO, &wait);
+ int ret;
+ if (!using_vc4_simulator)
+ ret = drmIoctl(screen->fd, DRM_IOCTL_VC4_WAIT_BO, &wait);
+ else
+ ret = 0;
+
if (ret == -ETIME) {
return false;
} else if (ret != 0) {
} else {
return true;
}
-#else
- return true;
-#endif
}
void *
#include "vc4_cl.h"
#include "vc4_qir.h"
+#ifdef USE_VC4_SIMULATOR
+#define using_vc4_simulator true
+#else
+#define using_vc4_simulator false
+#endif
+
#define VC4_DIRTY_BLEND (1 << 0)
#define VC4_DIRTY_RASTERIZER (1 << 1)
#define VC4_DIRTY_ZSA (1 << 2)
if (!rsc->bo)
goto fail;
-#ifdef USE_VC4_SIMULATOR
- slice->stride = align(prsc->width0 * rsc->cpp, 16);
-#else
- slice->stride = handle->stride;
-#endif
+ if (!using_vc4_simulator)
+ slice->stride = handle->stride;
+ else
+ slice->stride = align(prsc->width0 * rsc->cpp, 16);
+
slice->tiling = VC4_TILING_FORMAT_LINEAR;
rsc->vc4_format = get_resource_texture_format(prsc);