diff options
author | Kenneth Graunke <[email protected]> | 2018-04-09 16:47:11 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2018-05-22 10:01:09 -0700 |
commit | c7259259d4c0df9ba339f4927891c855c7f91924 (patch) | |
tree | d830b6058d5fb8b74284ed22ac9aa47e1715c439 /src/mesa/drivers/dri/i965/brw_queryobj.c | |
parent | 417b9e5770436008a7f00cfaffe9ddf4c5a13502 (diff) |
i965: Introduce a "memory zone" concept on BO allocation.
We're planning to start managing the PPGTT in userspace in the near
future, rather than relying on the kernel to assign addresses. While
most buffers can go anywhere, some need to be restricted to within 4GB
of a base address.
This commit adds a "memory zone" parameter to the BO allocation
functions, which lets the caller specify which base address the BO will
be associated with, or BRW_MEMZONE_OTHER for the full 48-bit VMA.
Eventually, I hope to create a 4GB memory zone corresponding to each
state base address.
Reviewed-by: Scott D Phillips <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_queryobj.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_queryobj.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index 0015a4ee9d6..bc4b8c43e7b 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -287,7 +287,8 @@ brw_begin_query(struct gl_context *ctx, struct gl_query_object *q) * the system was doing other work, such as running other applications. */ brw_bo_unreference(query->bo); - query->bo = brw_bo_alloc(brw->bufmgr, "timer query", 4096); + query->bo = + brw_bo_alloc(brw->bufmgr, "timer query", 4096, BRW_MEMZONE_OTHER); brw_write_timestamp(brw, query->bo, 0); break; @@ -450,7 +451,7 @@ ensure_bo_has_space(struct gl_context *ctx, struct brw_query_object *query) brw_queryobj_get_results(ctx, query); } - query->bo = brw_bo_alloc(brw->bufmgr, "query", 4096); + query->bo = brw_bo_alloc(brw->bufmgr, "query", 4096, BRW_MEMZONE_OTHER); query->last_index = 0; } } @@ -530,7 +531,8 @@ brw_query_counter(struct gl_context *ctx, struct gl_query_object *q) assert(q->Target == GL_TIMESTAMP); brw_bo_unreference(query->bo); - query->bo = brw_bo_alloc(brw->bufmgr, "timestamp query", 4096); + query->bo = + brw_bo_alloc(brw->bufmgr, "timestamp query", 4096, BRW_MEMZONE_OTHER); brw_write_timestamp(brw, query->bo, 0); query->flushed = false; |