iris: make BATCH_SZ smaller by BATCH_RESERVED bytes
Iris allocates gem buffers using buckets of allocation sizes that are page aligned. We always ask for batch buffers of size BATCH_SZ + BATCH_RESERVED, which is not page aligned: we ask for 65552 bytes, which ends up in the bucket of size 81920, resulting in 20% unused space. Adjust things so there is no waste of space: BATCH_SZ + BATCH_RESERVED is now 65536. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4561>
This commit is contained in:
parent
103cb32c79
commit
2c82b13c8f
|
@ -63,12 +63,6 @@
|
||||||
|
|
||||||
#define FILE_DEBUG_FLAG DEBUG_BUFMGR
|
#define FILE_DEBUG_FLAG DEBUG_BUFMGR
|
||||||
|
|
||||||
/* Terminating the batch takes either 4 bytes for MI_BATCH_BUFFER_END
|
|
||||||
* or 12 bytes for MI_BATCH_BUFFER_START (when chaining). Plus, we may
|
|
||||||
* need an extra 4 bytes to pad out to the nearest QWord. So reserve 16.
|
|
||||||
*/
|
|
||||||
#define BATCH_RESERVED 16
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
iris_batch_reset(struct iris_batch *batch);
|
iris_batch_reset(struct iris_batch *batch);
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,14 @@
|
||||||
/* The kernel assumes batchbuffers are smaller than 256kB. */
|
/* The kernel assumes batchbuffers are smaller than 256kB. */
|
||||||
#define MAX_BATCH_SIZE (256 * 1024)
|
#define MAX_BATCH_SIZE (256 * 1024)
|
||||||
|
|
||||||
|
/* Terminating the batch takes either 4 bytes for MI_BATCH_BUFFER_END
|
||||||
|
* or 12 bytes for MI_BATCH_BUFFER_START (when chaining). Plus, we may
|
||||||
|
* need an extra 4 bytes to pad out to the nearest QWord. So reserve 16.
|
||||||
|
*/
|
||||||
|
#define BATCH_RESERVED 16
|
||||||
|
|
||||||
/* Our target batch size - flush approximately at this point. */
|
/* Our target batch size - flush approximately at this point. */
|
||||||
#define BATCH_SZ (64 * 1024)
|
#define BATCH_SZ (64 * 1024 - BATCH_RESERVED)
|
||||||
|
|
||||||
enum iris_batch_name {
|
enum iris_batch_name {
|
||||||
IRIS_BATCH_RENDER,
|
IRIS_BATCH_RENDER,
|
||||||
|
|
Loading…
Reference in New Issue