intel/decoder: Make get_state_size take a full 64-bit address and a base
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 2 Oct 2019 19:09:33 +0000 (15:09 -0400)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 11 Dec 2019 03:10:49 +0000 (19:10 -0800)
commit69d7782b155b72707d95a2f6b0c0776afbb888e3
tree7518b4bdc90479e8e737c586a74bc4b9dc2e69df
parent8a8534a69855fed209c1842f9e143c785809a7e3
intel/decoder: Make get_state_size take a full 64-bit address and a base

i965 wants to use an offset from a base because everything is in a
single buffer whose address may be relocated, and all base addresses
are set to the start of that buffer.

iris wants to use a full 64-bit address, because state lives in separate
buffers which may be in the shader, surface, and dynamic memory zones,
where addresses grow downward from the top of a 4GB zone,  So it's very
possible for a 32-bit offset to exist relative to multiple bases,
leading to the wrong state size.
src/gallium/drivers/iris/iris_batch.c
src/gallium/drivers/iris/iris_state.c
src/intel/common/gen_batch_decoder.c
src/intel/common/gen_decoder.h
src/mesa/drivers/dri/i965/intel_batchbuffer.c