mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-19 05:46:25 +00:00
Prepare for 64bit relocation addresses
This reveal that quite a few locations were writing relocation offsets but only allowing for 32 bit addresses. To reveal such places in active tests, we also now double check that we do not use more batch space than declared. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
86055df968
commit
982f7eb238
@ -104,11 +104,9 @@ do_render(drm_intel_bufmgr *bufmgr, struct intel_batchbuffer *batch,
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(0); /* src x1,y1 */
|
OUT_BATCH(0); /* src x1,y1 */
|
||||||
OUT_BATCH(width * 4); /* src pitch */
|
OUT_BATCH(width * 4); /* src pitch */
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -102,11 +102,9 @@ do_render(drm_intel_bufmgr *bufmgr, struct intel_batchbuffer *batch,
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(0); /* src x1,y1 */
|
OUT_BATCH(0); /* src x1,y1 */
|
||||||
OUT_BATCH(width * 4); /* src pitch */
|
OUT_BATCH(width * 4); /* src pitch */
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -105,11 +105,9 @@ do_render(drm_intel_bufmgr *bufmgr, struct intel_batchbuffer *batch,
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(0); /* src x1,y1 */
|
OUT_BATCH(0); /* src x1,y1 */
|
||||||
OUT_BATCH(width * 4); /* src pitch */
|
OUT_BATCH(width * 4); /* src pitch */
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -115,11 +115,9 @@ do_render(drm_intel_bufmgr *bufmgr, struct intel_batchbuffer *batch,
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
OUT_BATCH((height << 16) | width); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(0); /* src x1,y1 */
|
OUT_BATCH(0); /* src x1,y1 */
|
||||||
OUT_BATCH(width * 4); /* src pitch */
|
OUT_BATCH(width * 4); /* src pitch */
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -240,10 +240,11 @@ intel_batchbuffer_flush(struct intel_batchbuffer *batch)
|
|||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
|
intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
|
||||||
drm_intel_bo *buffer, uint32_t delta,
|
drm_intel_bo *buffer, uint64_t delta,
|
||||||
uint32_t read_domains, uint32_t write_domain,
|
uint32_t read_domains, uint32_t write_domain,
|
||||||
int fenced)
|
int fenced)
|
||||||
{
|
{
|
||||||
|
uint64_t offset;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (batch->ptr - batch->buffer > BATCH_SZ)
|
if (batch->ptr - batch->buffer > BATCH_SZ)
|
||||||
@ -259,7 +260,12 @@ intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
|
|||||||
ret = drm_intel_bo_emit_reloc(batch->bo, batch->ptr - batch->buffer,
|
ret = drm_intel_bo_emit_reloc(batch->bo, batch->ptr - batch->buffer,
|
||||||
buffer, delta,
|
buffer, delta,
|
||||||
read_domains, write_domain);
|
read_domains, write_domain);
|
||||||
intel_batchbuffer_emit_dword(batch, buffer->offset + delta);
|
|
||||||
|
offset = buffer->offset64;
|
||||||
|
offset += delta;
|
||||||
|
intel_batchbuffer_emit_dword(batch, offset);
|
||||||
|
if (batch->gen >= 8)
|
||||||
|
intel_batchbuffer_emit_dword(batch, offset >> 32);
|
||||||
igt_assert(ret == 0);
|
igt_assert(ret == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,14 +368,26 @@ intel_blt_copy(struct intel_batchbuffer *batch,
|
|||||||
dst_pitch);
|
dst_pitch);
|
||||||
OUT_BATCH((dst_y1 << 16) | dst_x1); /* dst x1,y1 */
|
OUT_BATCH((dst_y1 << 16) | dst_x1); /* dst x1,y1 */
|
||||||
OUT_BATCH(((dst_y1 + height) << 16) | (dst_x1 + width)); /* dst x2,y2 */
|
OUT_BATCH(((dst_y1 + height) << 16) | (dst_x1 + width)); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((src_y1 << 16) | src_x1); /* src x1,y1 */
|
OUT_BATCH((src_y1 << 16) | src_x1); /* src x1,y1 */
|
||||||
OUT_BATCH(src_pitch);
|
OUT_BATCH(src_pitch);
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
|
#define CMD_POLY_STIPPLE_OFFSET 0x7906
|
||||||
|
if (gen == 5) {
|
||||||
|
OUT_BATCH(CMD_POLY_STIPPLE_OFFSET << 16);
|
||||||
|
OUT_BATCH(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gen >= 6 && src_bo == dst_bo) {
|
||||||
|
BEGIN_BATCH(3);
|
||||||
|
OUT_BATCH(XY_SETUP_CLIP_BLT_CMD);
|
||||||
|
OUT_BATCH(0);
|
||||||
|
OUT_BATCH(0);
|
||||||
|
ADVANCE_BATCH();
|
||||||
|
}
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ struct intel_batchbuffer {
|
|||||||
drm_intel_bo *bo;
|
drm_intel_bo *bo;
|
||||||
|
|
||||||
uint8_t buffer[BATCH_SZ];
|
uint8_t buffer[BATCH_SZ];
|
||||||
uint8_t *ptr;
|
uint8_t *ptr, *end;
|
||||||
uint8_t *state;
|
uint8_t *state;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ void intel_batchbuffer_data(struct intel_batchbuffer *batch,
|
|||||||
|
|
||||||
void intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
|
void intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
|
||||||
drm_intel_bo *buffer,
|
drm_intel_bo *buffer,
|
||||||
uint32_t delta,
|
uint64_t delta,
|
||||||
uint32_t read_domains,
|
uint32_t read_domains,
|
||||||
uint32_t write_domain,
|
uint32_t write_domain,
|
||||||
int fenced);
|
int fenced);
|
||||||
@ -85,7 +85,9 @@ intel_batchbuffer_require_space(struct intel_batchbuffer *batch,
|
|||||||
* scope.
|
* scope.
|
||||||
*/
|
*/
|
||||||
#define BEGIN_BATCH(n) do { \
|
#define BEGIN_BATCH(n) do { \
|
||||||
|
igt_assert(batch->end == NULL); \
|
||||||
intel_batchbuffer_require_space(batch, (n)*4); \
|
intel_batchbuffer_require_space(batch, (n)*4); \
|
||||||
|
batch->end = batch->ptr + (n) * 4; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,6 +146,8 @@ intel_batchbuffer_require_space(struct intel_batchbuffer *batch,
|
|||||||
* scope.
|
* scope.
|
||||||
*/
|
*/
|
||||||
#define ADVANCE_BATCH() do { \
|
#define ADVANCE_BATCH() do { \
|
||||||
|
igt_assert(batch->ptr == batch->end); \
|
||||||
|
batch->end = NULL; \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
#define BLIT_COPY_BATCH_START(devid, flags) do { \
|
#define BLIT_COPY_BATCH_START(devid, flags) do { \
|
||||||
@ -177,18 +181,6 @@ intel_batchbuffer_require_space(struct intel_batchbuffer *batch,
|
|||||||
} \
|
} \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
/**
|
|
||||||
* BLIT_RELOC_UDW:
|
|
||||||
* @devid: pci device id of the drm device
|
|
||||||
*
|
|
||||||
* Emits the upper relocation DWORD on gen8+ and nothing on earlier generations.
|
|
||||||
*/
|
|
||||||
#define BLIT_RELOC_UDW(devid) do { \
|
|
||||||
if (intel_gen(devid) >= 8) { \
|
|
||||||
OUT_BATCH(0); \
|
|
||||||
} \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
intel_blt_copy(struct intel_batchbuffer *batch,
|
intel_blt_copy(struct intel_batchbuffer *batch,
|
||||||
drm_intel_bo *src_bo, int src_x1, int src_y1, int src_pitch,
|
drm_intel_bo *src_bo, int src_x1, int src_y1, int src_pitch,
|
||||||
|
@ -205,12 +205,10 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch)
|
|||||||
|
|
||||||
/* surface */
|
/* surface */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* dynamic */
|
/* dynamic */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
0, BASE_ADDRESS_MODIFY);
|
0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* indirect */
|
/* indirect */
|
||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
@ -218,7 +216,6 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch)
|
|||||||
|
|
||||||
/* instruction */
|
/* instruction */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* general state buffer size */
|
/* general state buffer size */
|
||||||
OUT_BATCH(0xfffff000 | 1);
|
OUT_BATCH(0xfffff000 | 1);
|
||||||
|
@ -205,12 +205,10 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch)
|
|||||||
|
|
||||||
/* surface */
|
/* surface */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* dynamic */
|
/* dynamic */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
0, BASE_ADDRESS_MODIFY);
|
0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* indirect */
|
/* indirect */
|
||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
@ -218,7 +216,6 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch)
|
|||||||
|
|
||||||
/* instruction */
|
/* instruction */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* general state buffer size */
|
/* general state buffer size */
|
||||||
OUT_BATCH(0xfffff000 | 1);
|
OUT_BATCH(0xfffff000 | 1);
|
||||||
|
@ -522,12 +522,10 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch) {
|
|||||||
|
|
||||||
/* surface */
|
/* surface */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* dynamic */
|
/* dynamic */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
0, BASE_ADDRESS_MODIFY);
|
0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* indirect */
|
/* indirect */
|
||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
@ -535,7 +533,6 @@ gen8_emit_state_base_address(struct intel_batchbuffer *batch) {
|
|||||||
|
|
||||||
/* instruction */
|
/* instruction */
|
||||||
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
OUT_RELOC(batch->bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY);
|
||||||
OUT_BATCH(0);
|
|
||||||
|
|
||||||
/* general state buffer size */
|
/* general state buffer size */
|
||||||
OUT_BATCH(0xfffff000 | 1);
|
OUT_BATCH(0xfffff000 | 1);
|
||||||
|
@ -236,7 +236,7 @@ testdisplay_SOURCES = \
|
|||||||
testdisplay_hotplug.c \
|
testdisplay_hotplug.c \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
TESTS_progs += testdisplay
|
#TESTS_progs += testdisplay
|
||||||
|
|
||||||
common_files = \
|
common_files = \
|
||||||
eviction_common.c \
|
eviction_common.c \
|
||||||
|
@ -88,11 +88,9 @@ igt_simple_main
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((1024 << 16) | 512);
|
OUT_BATCH((1024 << 16) | 512);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +116,6 @@ igt_simple_main
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((1 << 16) | 1);
|
OUT_BATCH((1 << 16) | 1);
|
||||||
OUT_RELOC(bo[j], I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC(bo[j], I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(intel_get_drm_devid(fd));
|
|
||||||
OUT_BATCH(0xffffffff); /* color */
|
OUT_BATCH(0xffffffff); /* color */
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
@ -85,11 +85,9 @@ bad_blit(drm_intel_bo *src_bo, uint32_t devid)
|
|||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((64 << 16) | 64); /* 64x64 blit */
|
OUT_BATCH((64 << 16) | 64); /* 64x64 blit */
|
||||||
OUT_BATCH(BAD_GTT_DEST);
|
OUT_BATCH(BAD_GTT_DEST);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0); /* src x1,y1 */
|
OUT_BATCH(0); /* src x1,y1 */
|
||||||
OUT_BATCH(src_pitch);
|
OUT_BATCH(src_pitch);
|
||||||
OUT_RELOC(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -70,11 +70,9 @@ copy_bo(drm_intel_bo *src, drm_intel_bo *dst)
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH((BO_SIZE/4096) << 16 | 1024);
|
OUT_BATCH((BO_SIZE/4096) << 16 | 1024);
|
||||||
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -140,12 +140,10 @@ igt_simple_main
|
|||||||
4096);
|
4096);
|
||||||
OUT_BATCH(0); /* dst y1,x1 */
|
OUT_BATCH(0); /* dst y1,x1 */
|
||||||
OUT_BATCH((1 << 16) | 1024);
|
OUT_BATCH((1 << 16) | 1024);
|
||||||
OUT_RELOC(batch_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(batch_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((0 << 16) | 0); /* src x1, y1 */
|
OUT_BATCH((0 << 16) | 0); /* src x1, y1 */
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC(sample_batch_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(sample_batch_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -69,11 +69,9 @@ dummy_reloc_loop(void)
|
|||||||
OUT_BATCH(2048 << 16 | 0);
|
OUT_BATCH(2048 << 16 | 0);
|
||||||
OUT_BATCH((4096) << 16 | (2048));
|
OUT_BATCH((4096) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(blt_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(blt_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(4*4096);
|
OUT_BATCH(4*4096);
|
||||||
OUT_RELOC_FENCED(blt_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(blt_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
|
||||||
|
@ -92,11 +92,9 @@ static void emit_dummy_load(void)
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
|
@ -97,11 +97,9 @@ igt_simple_main
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC_FENCED(bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
|
@ -70,11 +70,9 @@ copy_bo(drm_intel_bo *src, drm_intel_bo *dst)
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH((BO_SIZE/4096) << 16 | 1024);
|
OUT_BATCH((BO_SIZE/4096) << 16 | 1024);
|
||||||
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -132,11 +132,9 @@ static void emit_dummy_load(int pitch)
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (intel_gen(devid) >= 6) {
|
if (intel_gen(devid) >= 6) {
|
||||||
|
@ -87,10 +87,9 @@ store_pipe_control_loop(bool preuse_buffer)
|
|||||||
* different domain than what the pipe control write
|
* different domain than what the pipe control write
|
||||||
* (and kernel wa) uses!
|
* (and kernel wa) uses!
|
||||||
*/
|
*/
|
||||||
OUT_RELOC(target_bo,
|
OUT_RELOC_FENCED(target_bo,
|
||||||
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
|
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
|
||||||
0);
|
0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0xdeadbeef);
|
OUT_BATCH(0xdeadbeef);
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
@ -104,10 +103,9 @@ store_pipe_control_loop(bool preuse_buffer)
|
|||||||
BEGIN_BATCH(5);
|
BEGIN_BATCH(5);
|
||||||
OUT_BATCH(GFX_OP_PIPE_CONTROL + 1);
|
OUT_BATCH(GFX_OP_PIPE_CONTROL + 1);
|
||||||
OUT_BATCH(PIPE_CONTROL_WRITE_IMMEDIATE);
|
OUT_BATCH(PIPE_CONTROL_WRITE_IMMEDIATE);
|
||||||
OUT_RELOC(target_bo,
|
OUT_RELOC_FENCED(target_bo,
|
||||||
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION,
|
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
PIPE_CONTROL_GLOBAL_GTT);
|
PIPE_CONTROL_GLOBAL_GTT);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(val); /* write data */
|
OUT_BATCH(val); /* write data */
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
|
@ -124,11 +124,9 @@ static void emit_dummy_load(int pitch)
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (intel_gen(devid) >= 6) {
|
if (intel_gen(devid) >= 6) {
|
||||||
|
@ -184,12 +184,10 @@ static void blt_copy(struct intel_batchbuffer *batch,
|
|||||||
dst->stride);
|
dst->stride);
|
||||||
OUT_BATCH((dst_y << 16) | dst_x); /* dst x1,y1 */
|
OUT_BATCH((dst_y << 16) | dst_x); /* dst x1,y1 */
|
||||||
OUT_BATCH(((dst_y + h) << 16) | (dst_x + w)); /* dst x2,y2 */
|
OUT_BATCH(((dst_y + h) << 16) | (dst_x + w)); /* dst x2,y2 */
|
||||||
OUT_RELOC(dst->bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst->bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((src_y << 16) | src_x); /* src x1,y1 */
|
OUT_BATCH((src_y << 16) | src_x); /* src x1,y1 */
|
||||||
OUT_BATCH(src->stride);
|
OUT_BATCH(src->stride);
|
||||||
OUT_RELOC(src->bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src->bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -93,11 +93,9 @@ static void do_test(uint32_t tiling, unsigned stride,
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(2*1024*4);
|
OUT_BATCH(2*1024*4);
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
@ -166,11 +164,9 @@ static void do_test(uint32_t tiling, unsigned stride,
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH((TEST_HEIGHT(stride)) << 16 | (TEST_WIDTH(stride)));
|
OUT_BATCH((TEST_HEIGHT(stride)) << 16 | (TEST_WIDTH(stride)));
|
||||||
OUT_RELOC_FENCED(target_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(target_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(blt_stride);
|
OUT_BATCH(blt_stride);
|
||||||
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
|
||||||
@ -192,11 +188,9 @@ static void do_test(uint32_t tiling, unsigned stride,
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH((1) << 16 | (1));
|
OUT_BATCH((1) << 16 | (1));
|
||||||
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(stride_after);
|
OUT_BATCH(stride_after);
|
||||||
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
|
||||||
|
@ -64,7 +64,6 @@ emit_store_dword_imm(int devid, drm_intel_bo *dest, uint32_t val)
|
|||||||
OUT_BATCH(cmd);
|
OUT_BATCH(cmd);
|
||||||
OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
|
OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
I915_GEM_DOMAIN_INSTRUCTION, 0);
|
I915_GEM_DOMAIN_INSTRUCTION, 0);
|
||||||
OUT_BATCH(0);
|
|
||||||
OUT_BATCH(val);
|
OUT_BATCH(val);
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
} else {
|
} else {
|
||||||
|
@ -68,7 +68,6 @@ store_dword_loop(int divider)
|
|||||||
OUT_BATCH(0); /* reserved */
|
OUT_BATCH(0); /* reserved */
|
||||||
OUT_RELOC(target_buffer, I915_GEM_DOMAIN_INSTRUCTION,
|
OUT_RELOC(target_buffer, I915_GEM_DOMAIN_INSTRUCTION,
|
||||||
I915_GEM_DOMAIN_INSTRUCTION, 0);
|
I915_GEM_DOMAIN_INSTRUCTION, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(val);
|
OUT_BATCH(val);
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
|
@ -170,11 +170,9 @@ static void emit_blt(drm_intel_bo *src_bo, uint32_t src_tiling, unsigned src_pit
|
|||||||
OUT_BATCH(dst_y << 16 | dst_x);
|
OUT_BATCH(dst_y << 16 | dst_x);
|
||||||
OUT_BATCH((dst_y+h) << 16 | (dst_x+w));
|
OUT_BATCH((dst_y+h) << 16 | (dst_x+w));
|
||||||
OUT_RELOC_FENCED(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(src_y << 16 | src_x);
|
OUT_BATCH(src_y << 16 | src_x);
|
||||||
OUT_BATCH(src_pitch);
|
OUT_BATCH(src_pitch);
|
||||||
OUT_RELOC_FENCED(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
|
@ -91,11 +91,9 @@ copy_bo(drm_intel_bo *src, int src_tiled,
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(BO_SIZE/scratch_pitch << 16 | 1024);
|
OUT_BATCH(BO_SIZE/scratch_pitch << 16 | 1024);
|
||||||
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(src_pitch);
|
OUT_BATCH(src_pitch);
|
||||||
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(src, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -93,11 +93,9 @@ igt_simple_main
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((2048) << 16 | (2048));
|
OUT_BATCH((2048) << 16 | (2048));
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(2*1024*4);
|
OUT_BATCH(2*1024*4);
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
@ -128,11 +126,9 @@ igt_simple_main
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH((1) << 16 | (1));
|
OUT_BATCH((1) << 16 | (1));
|
||||||
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(TEST_STRIDE);
|
OUT_BATCH(TEST_STRIDE);
|
||||||
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(test_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
igt_info("test bo offset: %#lx\n", test_bo->offset);
|
igt_info("test bo offset: %#lx\n", test_bo->offset);
|
||||||
@ -149,11 +145,9 @@ igt_simple_main
|
|||||||
OUT_BATCH(0 << 16 | 1024);
|
OUT_BATCH(0 << 16 | 1024);
|
||||||
OUT_BATCH((1) << 16 | (1));
|
OUT_BATCH((1) << 16 | (1));
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(2*1024*4);
|
OUT_BATCH(2*1024*4);
|
||||||
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
|
@ -80,12 +80,10 @@ igt_simple_main
|
|||||||
4096);
|
4096);
|
||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((1024 << 16) | 512);
|
OUT_BATCH((1024 << 16) | 512);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
intel_batchbuffer_flush(batch);
|
intel_batchbuffer_flush(batch);
|
||||||
|
@ -120,9 +120,7 @@ static void blt_color_fill(struct intel_batchbuffer *batch,
|
|||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
OUT_BATCH(width << 16 |
|
OUT_BATCH(width << 16 |
|
||||||
height);
|
height);
|
||||||
OUT_RELOC(buf, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(buf, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
if (intel_gen(batch->devid) >= 8)
|
|
||||||
OUT_BATCH(0);
|
|
||||||
OUT_BATCH(rand()); /* random pattern */
|
OUT_BATCH(rand()); /* random pattern */
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
@ -86,12 +86,10 @@ static void run_test(int ring)
|
|||||||
4096);
|
4096);
|
||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((1024 << 16) | 512);
|
OUT_BATCH((1024 << 16) | 512);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(load_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
OUT_BATCH((0 << 16) | 512); /* src x1, y1 */
|
||||||
OUT_BATCH(4096);
|
OUT_BATCH(4096);
|
||||||
OUT_RELOC(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(load_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,8 +99,7 @@ static void run_test(int ring)
|
|||||||
128);
|
128);
|
||||||
OUT_BATCH(0); /* dst x1,y1 */
|
OUT_BATCH(0); /* dst x1,y1 */
|
||||||
OUT_BATCH((1 << 16) | 1);
|
OUT_BATCH((1 << 16) | 1);
|
||||||
OUT_RELOC(target_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(target_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(COLOR);
|
OUT_BATCH(COLOR);
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
|
@ -97,8 +97,7 @@ static void fill_blt(data_t *data, uint32_t handle, unsigned char color)
|
|||||||
OUT_BATCH((0 << 24) | (0xf0 << 16) | 0);
|
OUT_BATCH((0 << 24) | (0xf0 << 16) | 0);
|
||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
OUT_BATCH(1 << 16 | 4);
|
OUT_BATCH(1 << 16 | 4);
|
||||||
OUT_RELOC(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dst, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(batch->devid);
|
|
||||||
OUT_BATCH(color);
|
OUT_BATCH(color);
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
|
@ -186,11 +186,9 @@ static void emit_dummy_load__bcs(struct test_output *o)
|
|||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(o->fb_height << 16 | o->fb_width);
|
OUT_BATCH(o->fb_height << 16 | o->fb_width);
|
||||||
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(dummy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC_FENCED(target_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(target_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
|
|
||||||
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
if (IS_GEN6(devid) || IS_GEN7(devid)) {
|
||||||
|
@ -87,12 +87,10 @@ static void exec_blt(data_t *data)
|
|||||||
pitch);
|
pitch);
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(h << 16 | w);
|
OUT_BATCH(h << 16 | w);
|
||||||
OUT_RELOC(data->busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
OUT_RELOC_FENCED(data->busy_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
|
||||||
BLIT_RELOC_UDW(data->devid);
|
|
||||||
OUT_BATCH(0 << 16 | 0);
|
OUT_BATCH(0 << 16 | 0);
|
||||||
OUT_BATCH(pitch);
|
OUT_BATCH(pitch);
|
||||||
OUT_RELOC(data->busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
OUT_RELOC_FENCED(data->busy_bo, I915_GEM_DOMAIN_RENDER, 0, 0);
|
||||||
BLIT_RELOC_UDW(data->devid);
|
|
||||||
ADVANCE_BATCH();
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user