@@ -108,7 +108,7 @@ intel_batchbuffer_flush(struct intel_batchbuffer *batch)
batch->ptr = NULL;
ring = 0;
- if (IS_GEN6(batch->devid))
+ if (HAS_BLT_RING(batch->devid))
ring = I915_EXEC_BLT;
ret = drm_intel_bo_mrb_exec(batch->bo, used, NULL, 0, 0, ring);
assert(ret == 0);
@@ -78,13 +78,21 @@
#define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS 0x0126
#define PCI_CHIP_SANDYBRIDGE_S 0x010A /* server */
+#define PCI_CHIP_IVYBRIDGE_M_GT1 0x0156
+#define PCI_CHIP_IVYBRIDGE_M_GT2 0x0166
+#define PCI_CHIP_IVYBRIDGE_D_GT1 0x0152
+#define PCI_CHIP_IVYBRIDGE_D_GT1_SERVER 0x015a
+#define PCI_CHIP_IVYBRIDGE_D_GT2 0x0162
+
#define IS_MOBILE(devid) (devid == PCI_CHIP_I855_GM || \
devid == PCI_CHIP_I915_GM || \
devid == PCI_CHIP_I945_GM || \
devid == PCI_CHIP_I945_GME || \
devid == PCI_CHIP_I965_GM || \
devid == PCI_CHIP_I965_GME || \
- devid == PCI_CHIP_GM45_GM || IS_IGD(devid))
+ devid == PCI_CHIP_GM45_GM || IS_IGD(devid) || \
+ devid == PCI_CHIP_IVYBRIDGE_M_GT1 || \
+ devid == PCI_CHIP_IVYBRIDGE_M_GT2)
#define IS_G45(devid) (devid == PCI_CHIP_IGD_E_G || \
devid == PCI_CHIP_Q45_G || \
@@ -135,15 +143,28 @@
devid == PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS || \
devid == PCI_CHIP_SANDYBRIDGE_S)
+#define IS_GEN7(devid) (devid == PCI_CHIP_IVYBRIDGE_M_GT1 || \
+ devid == PCI_CHIP_IVYBRIDGE_M_GT2 || \
+ devid == PCI_CHIP_IVYBRIDGE_D_GT1 || \
+ devid == PCI_CHIP_IVYBRIDGE_D_GT1_SERVER || \
+ devid == PCI_CHIP_IVYBRIDGE_D_GT2)
+
+
#define IS_965(devid) (IS_GEN4(devid) || \
IS_GEN5(devid) || \
- IS_GEN6(devid))
+ IS_GEN6(devid) || \
+ IS_GEN7(devid))
#define IS_INTEL(devid) (IS_GEN2(devid) || \
IS_GEN3(devid) || \
IS_GEN4(devid) || \
IS_GEN5(devid) || \
- IS_GEN6(devid))
+ IS_GEN6(devid) || \
+ IS_GEN7(devid))
#define HAS_PCH_SPLIT(devid) (IS_GEN5(devid) || \
- IS_GEN6(devid))
+ IS_GEN6(devid) || \
+ IS_GEN7(devid))
+
+#define HAS_BLT_RING(devid) (IS_GEN6(devid) || \
+ IS_GEN7(devid))
@@ -253,7 +253,7 @@ static void run(int object_size)
exec[2].rsvd2 = 0;
ring = 0;
- if (IS_GEN6(intel_get_drm_devid(fd)))
+ if (HAS_BLT_RING(intel_get_drm_devid(fd)))
ring = I915_EXEC_BLT;
execbuf.buffers_ptr = (uintptr_t)exec;
@@ -189,7 +189,7 @@ copy(int fd, uint32_t dst, uint32_t src)
exec.DR1 = exec.DR4 = 0;
exec.num_cliprects = 0;
exec.cliprects_ptr = 0;
- exec.flags = IS_GEN6(intel_get_drm_devid(fd)) ? I915_EXEC_BLT : 0;
+ exec.flags = HAS_BLT_RING(intel_get_drm_devid(fd)) ? I915_EXEC_BLT : 0;
exec.rsvd1 = exec.rsvd2 = 0;
ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &exec);
@@ -328,7 +328,7 @@ main (int argc, char *argv[])
printf("ESR: 0x%08x\n", INREG(ESR));
printf("PGTBL_ER: 0x%08x\n", INREG(PGTBL_ER));
- if (IS_GEN6(devid)) {
+ if (IS_GEN6(devid) || IS_GEN7(devid)) {
instdone = INREG(GEN6_INSTDONE_1);
instdone1 = INREG(GEN6_INSTDONE_2);