mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-30 00:20:14 +01:00
Gen8+ supports 48-bit virtual addresses, but some objects must always be
allocated inside the 32-bit address range.
In specific, any resource used with flat/heapless (0x00000000-0xfffff000)
General State Heap (GSH) or Instruction State Heap (ISH) must be in a
32-bit range, because the General State Offset and Instruction State Offset
are limited to 32-bits.
The i915 driver has been modified to provide a flag to set when the 4GB
limit is not necessary in a given bo (EXEC_OBJECT_SUPPORTS_48B_ADDRESS).
48-bit range will only be used when explicitly requested.
Callers to the existing drm_intel_bo_emit_reloc function should set the
use_48b_address_range flag beforehand, in order to use full ppgtt range.
v2: Make set/clear functions nops on pre-gen8 platforms, and use them
internally in emit_reloc functions (Ben)
s/48BADDRESS/48B_ADDRESS/ (Dave)
v3: Keep set/clear functions internal, no-one needs to use them directly.
v4: Don't set 48bit-support flag in emit reloc, check for ppgtt type
before enabling set/clear function, print full offsets in debug
statements, using port of lower_32_bits and upper_32_bits from linux
kernel (Michał)
References: http://lists.freedesktop.org/archives/intel-gfx/2015-July/072612.html
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
|
||
|---|---|---|
| .. | ||
| tests | ||
| .gitignore | ||
| Android.mk | ||
| intel-symbol-check | ||
| intel_aub.h | ||
| intel_bufmgr.c | ||
| intel_bufmgr.h | ||
| intel_bufmgr_fake.c | ||
| intel_bufmgr_gem.c | ||
| intel_bufmgr_priv.h | ||
| intel_chipset.h | ||
| intel_debug.h | ||
| intel_decode.c | ||
| libdrm_intel.pc.in | ||
| Makefile.am | ||
| Makefile.sources | ||
| mm.c | ||
| mm.h | ||
| test_decode.c | ||