i965/blorp: Use the return value of brw_emit_reloc.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 23 Apr 2017 03:00:14 +0000 (20:00 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 18 Jul 2017 22:53:33 +0000 (15:53 -0700)
This guarantees that the value written in the batch matches the
value recorded in the relocation entry.

(Chris Wilson wrote an identical patch as well.)

src/mesa/drivers/dri/i965/genX_blorp_exec.c

index af3d60919d9b4e76a1bf700a4f4142d73d959ce0..c6eee4c5aea1a3622398f552eb68bcfe44b3a9f2 100644 (file)
@@ -73,10 +73,10 @@ blorp_surface_reloc(struct blorp_batch *batch, uint32_t ss_offset,
    struct brw_context *brw = batch->driver_batch;
    struct brw_bo *bo = address.buffer;
 
-   brw_emit_reloc(&brw->batch, ss_offset, bo, address.offset + delta,
-                  address.read_domains, address.write_domain);
+   uint64_t reloc_val =
+      brw_emit_reloc(&brw->batch, ss_offset, bo, address.offset + delta,
+                     address.read_domains, address.write_domain);
 
-   uint64_t reloc_val = bo->offset64 + address.offset + delta;
    void *reloc_ptr = (void *)brw->batch.map + ss_offset;
 #if GEN_GEN >= 8
    *(uint64_t *)reloc_ptr = reloc_val;