浏览代码

i915g: add some throttling

Intel classic drivers switched to this, too, so it must be good.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
undefined
Daniel Vetter 14 年前
父节点
当前提交
55a3c35243
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9
    0
      src/gallium/winsys/i915/drm/i915_drm_batchbuffer.c

+ 9
- 0
src/gallium/winsys/i915/drm/i915_drm_batchbuffer.c 查看文件

@@ -4,6 +4,7 @@

#include "i915_drm.h"
#include "i915/i915_debug.h"
#include <xf86drm.h>

#define BATCH_RESERVED 16

@@ -132,6 +133,12 @@ i915_drm_batchbuffer_reloc(struct i915_winsys_batchbuffer *ibatch,
return ret;
}

static void
i915_drm_throttle(struct i915_drm_winsys *idws)
{
drmIoctl(idws->fd, DRM_IOCTL_I915_GEM_THROTTLE, NULL);
}

static void
i915_drm_batchbuffer_flush(struct i915_winsys_batchbuffer *ibatch,
struct pipe_fence_handle **fence)
@@ -155,6 +162,8 @@ i915_drm_batchbuffer_flush(struct i915_winsys_batchbuffer *ibatch,
if (ret == 0 && i915_drm_winsys(ibatch->iws)->send_cmd)
ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0);

i915_drm_throttle(i915_drm_winsys(ibatch->iws));

if (ret != 0 || i915_drm_winsys(ibatch->iws)->dump_cmd) {
i915_dump_batchbuffer(ibatch);
assert(ret == 0);

正在加载...
取消
保存