execbuf.flags |= I915_EXEC_FENCE_OUT;
}
-#if 1
int ret = drm_ioctl(batch->screen->fd, cmd, &execbuf);
if (ret != 0) {
ret = -errno;
} else {
DBG("execbuf succeeded\n");
}
-#else
- int ret = 0;
- fprintf(stderr, "execbuf disabled for now\n");
-#endif
for (int i = 0; i < batch->exec_count; i++) {
struct iris_bo *bo = batch->exec_bos[i];
bo->idle = false;
bo->index = -1;
-
- /* Update iris_bo::gtt_offset */
- if (batch->validation_list[i].offset != bo->gtt_offset) {
- DBG("BO %d migrated: 0x%" PRIx64 " -> 0x%llx\n",
- bo->gem_handle, bo->gtt_offset,
- batch->validation_list[i].offset);
- bo->gtt_offset = batch->validation_list[i].offset;
- }
}
if (ret == 0 && out_fence_fd != NULL)
/* The kernel assumes batchbuffers are smaller than 256kB. */
#define MAX_BATCH_SIZE (256 * 1024)
-/* 3DSTATE_BINDING_TABLE_POINTERS has a U16 offset from Surface State Base
- * Address, which means that we can't put binding tables beyond 64kB. This
- * effectively limits the maximum statebuffer size to 64kB.
- */
-#define MAX_STATE_SIZE (64 * 1024)
-
struct iris_address {
struct iris_bo *bo;
uint64_t offset;