intel/genxml: Define 3DSTATE_SUBSLICE_HASH_TABLE command for Gen12 and Gen12.5.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 14 Jan 2021 03:57:35 +0000 (19:57 -0800)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 24 Feb 2021 05:14:57 +0000 (21:14 -0800)
commitab076e19ed93b1240f21dcfaf48e0dbe70322966
treead3c092c783ca847b4d3867833f8ea9f57528695
parenta2a17bf25ea1ffcf083b8d248d318f3333714655
intel/genxml: Define 3DSTATE_SUBSLICE_HASH_TABLE command for Gen12 and Gen12.5.

This command allows programming custom pixel hashing tables
controlling the balancing of load across pixel pipes.  Rather
confusingly 3DSTATE_SLICE_TABLE_STATE_POINTERS was serving the same
purpose on Gen11: A pixel is mapped to the pixel pipe with index
specified by the entry in the table corresponding to the LSBs of the
pixel coordinates [Yes you read right the entries are neither subslice
nor slice indices!].  Either a 2-way or a 3-way table can be
programmed based on whether the platform has two or three pixel pipes
per slice.  In addition the 16x8 tables defined below can hold two
separate 8x8 tables when in DUAL_TABLE mode (which AFAIA is only
useful for platforms with multiple asymmetric slices -- I.e. no
production platforms as of today to my knowledge).

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8749>
src/intel/genxml/gen12.xml
src/intel/genxml/gen125.xml