mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
i965: Ignore reloc read/write domains
Since before the kernel supported I915_EXEC_NO_RELOC, long before our minimum kernel requirement, the kernel unconditionally invalidated all GPU TLBs before a batch and flushed all GPU caches after a batch. At that moment, the only use for read/write domain was for activity tracking, ensuring that future reads waited for the last writer and future writes waited for all reads. This only requires a single bit in the execbuf interface which can be supplied via the NO_RELOC interface, making the use of relocation domains entirely redundant. Trimming the excess writes into the array allows the compiler to be much more frugal: text data bss dec hex filename 8493790 357184 424944 9275918 8d8a0e i965_dri.baseline 8493758 357184 424944 9275886 8d89ee i965_dri.so (This text improvement really does come from dropping domains, not from the new use of C99 initializers.) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
3f353342a6
commit
ba9b71e56a
1 changed files with 7 additions and 11 deletions
|
|
@ -811,17 +811,13 @@ brw_emit_reloc(struct intel_batchbuffer *batch, uint32_t batch_offset,
|
|||
offset64 = target->offset64;
|
||||
}
|
||||
|
||||
struct drm_i915_gem_relocation_entry *reloc =
|
||||
&batch->relocs[batch->reloc_count];
|
||||
|
||||
batch->reloc_count++;
|
||||
|
||||
reloc->offset = batch_offset;
|
||||
reloc->delta = target_offset;
|
||||
reloc->target_handle = target->gem_handle;
|
||||
reloc->read_domains = read_domains;
|
||||
reloc->write_domain = write_domain;
|
||||
reloc->presumed_offset = offset64;
|
||||
batch->relocs[batch->reloc_count++] =
|
||||
(struct drm_i915_gem_relocation_entry) {
|
||||
.offset = batch_offset,
|
||||
.delta = target_offset,
|
||||
.target_handle = target->gem_handle,
|
||||
.presumed_offset = offset64,
|
||||
};
|
||||
|
||||
/* Using the old buffer offset, write in what the right data would be, in
|
||||
* case the buffer doesn't move and we can short-circuit the relocation
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue