i965: Allow 48-bit addressing on Gen8+.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 12 Feb 2018 15:18:29 +0000 (07:18 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 1 Mar 2018 23:46:11 +0000 (15:46 -0800)
commitcee9f3890351e24cfaa000f32fef10367c45fe64
tree05860be5b4b049b55fb46065d94fe39904a901f6
parent6712611735afa23bf11da6a3db2293ab1a589470
i965: Allow 48-bit addressing on Gen8+.

This allows most GPU objects to use the full 48-bit address space
offered by Gen8+ platforms, rather than being stuck with 32-bit.
This expands the available GPU memory from 4G to 256TB or so.

A few objects - instruction, scratch, and vertex buffers - need to
remain pinned in the low 4GB of the address space for various reasons.
We default everything to 48-bit but disable it in those cases.

Thanks to Jason Ekstrand for blazing this trail in anv first and
finding the nasty undocumented hardware issues.  This patch simply
rips off all of his findings.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_bufmgr.c
src/mesa/drivers/dri/i965/brw_misc_state.c
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
src/mesa/drivers/dri/i965/genX_blorp_exec.c
src/mesa/drivers/dri/i965/genX_state_upload.c
src/mesa/drivers/dri/i965/intel_batchbuffer.c
src/mesa/drivers/dri/i965/intel_batchbuffer.h